// Auto-generated by scripts/generate-api-spec-index.ts - DO NOT EDIT import type { ApiSpecDomainEnrichments, ApiSpecIndex, ApiSpecValidationResourceEntry } from "./api-spec-types"; export const API_SPEC_VERSION = "4.0.0"; export const API_SPEC_INDEX: ApiSpecIndex = { version: "4.0.0", timestamp: "2026-08-20T09:12:47+00:00", domains: [ { domain: "admin_console_and_ui", title: "Admin Console And Ui", description: "Dashboard customization through namespace-bounded asset libraries. Storage systems for branding resources, layout templates, and interactive widgets. Catalog organization with system object references tracking modification history and deployment status. Schema enforcement ensuring configuration validity across tenant hierarchies and environment boundaries.", descriptionShort: "Static UI components and console assets.", category: "Platform", pathCount: 6, schemaCount: 24, complexity: "simple", resources: [ { name: "ui_component", description: "UI component for console customization", schemaComponents: ["ui.static_component"], apiPaths: ["/api/web/namespaces/{namespace}/static_components","/api/web/namespaces/{namespace}/static_components/{name}"], tier: "Standard", icon: "🎨", descriptionShort: "UI component", supportsLogs: false, supportsMetrics: false, catalogCategories: ["static-components"] }, { name: "static_asset", description: "Static asset for UI resources", schemaComponents: ["ui.static_component"], apiPaths: ["/api/web/namespaces/{namespace}/static_components","/api/web/namespaces/{namespace}/static_components/{name}"], tier: "Standard", icon: "πŸ“", descriptionShort: "Static asset", supportsLogs: false, supportsMetrics: false, catalogCategories: ["static-components"] }, ], useCases: ["Manage static UI components for admin console","Deploy and retrieve UI assets within namespaces","Configure console interface elements","Manage custom UI component metadata"], relatedDomains: ["admin","system"], icon: "πŸ–₯️", descriptionMedium: "Namespace-scoped visual elements with versioning. Custom widget deployment and catalog management for portal surfaces.", requiresTier: "Standard", logoSvg: "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%238B5CF6'%3E%3Cpath d='M21 2H3c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h7v2H8v2h8v-2h-2v-2h7c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 14H3V4h18v12z'/%3E%3C/svg%3E", bestPractices: {"commonErrors":[{"code":400,"message":"Invalid request body","resolution":"Validate JSON structure and required fields before submission","prevention":"Use schema validation from OpenAPI spec"},{"code":401,"message":"Authentication failed","resolution":"Verify API token is valid and not expired","prevention":"Use environment variables for token management"},{"code":403,"message":"Permission denied","resolution":"Check user role and namespace permissions","prevention":"Verify RBAC policies before operations"},{"code":404,"message":"Resource not found","resolution":"Verify resource name and namespace exist","prevention":"List resources before attempting operations"},{"code":409,"message":"Resource already exists","resolution":"Use unique name or delete existing resource","prevention":"Check existence before creation"},{"code":429,"message":"Rate limit exceeded","resolution":"Implement exponential backoff and retry logic","prevention":"Batch operations and add delays between requests"}],"securityNotes":["Always use HTTPS for all API communications","Store API tokens securely, never in source code","Rotate API tokens regularly following security policies"],"performanceTips":["Use pagination for large result sets","Batch related operations when possible","Cache read-only responses appropriately"]}, }, { domain: "ai_services", title: "Ai Services", description: "Query handling through inference routing with production and test modes. Positive and negative quality markers with detailed categorization capture assistant performance. Streaming connections support authenticated access, subscription lifecycles, and feature flags. IP provisioning services allocate infrastructure resources for model workloads across distributed systems.", descriptionShort: "AI assistant queries and feedback collection.", category: "AI", pathCount: 11, schemaCount: 66, complexity: "simple", resources: [ { name: "ai_policy", description: "AI policy for generative AI traffic control", tier: "Advanced", icon: "πŸ€–", descriptionShort: "AI policy", supportsLogs: true, supportsMetrics: true }, { name: "ai_gateway", description: "AI gateway for LLM API management", tier: "Advanced", icon: "πŸš€", descriptionShort: "AI gateway", supportsLogs: true, supportsMetrics: true, dependencies: {"required":[],"optional":["ai_policy"]}, relationshipHints: ["ai_policy: Policy for AI traffic control"] }, ], useCases: ["Access AI-powered features","Configure AI assistant policies","Enable flow anomaly detection","Manage AI data collection"], icon: "πŸ€–", descriptionMedium: "Natural language processing with quality signals and anomaly monitoring. Token authentication for data stream subscriptions.", isPreview: true, requiresTier: "Advanced", logoSvg: "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%236366F1'%3E%3Cpath d='M21 10.12h-6.78l2.74-2.82c-2.73-2.7-7.15-2.8-9.88-.1-2.73 2.71-2.73 7.08 0 9.79s7.15 2.71 9.88 0C18.32 15.65 19 14.08 19 12.1h2c0 1.98-.88 4.55-2.64 6.29-3.51 3.48-9.21 3.48-12.72 0-3.5-3.47-3.53-9.11-.02-12.58s9.14-3.47 12.65 0L21 3v7.12zM12.5 8v4.25l3.5 2.08-.72 1.21L11 13V8h1.5z'/%3E%3C/svg%3E", bestPractices: {"commonErrors":[{"code":400,"message":"Invalid request body","resolution":"Validate JSON structure and required fields before submission","prevention":"Use schema validation from OpenAPI spec"},{"code":401,"message":"Authentication failed","resolution":"Verify API token is valid and not expired","prevention":"Use environment variables for token management"},{"code":403,"message":"Permission denied","resolution":"Check user role and namespace permissions","prevention":"Verify RBAC policies before operations"},{"code":404,"message":"Resource not found","resolution":"Verify resource name and namespace exist","prevention":"List resources before attempting operations"},{"code":409,"message":"Resource already exists","resolution":"Use unique name or delete existing resource","prevention":"Check existence before creation"},{"code":429,"message":"Rate limit exceeded","resolution":"Implement exponential backoff and retry logic","prevention":"Batch operations and add delays between requests"}],"securityNotes":["Always use HTTPS for all API communications","Store API tokens securely, never in source code","Rotate API tokens regularly following security policies"],"performanceTips":["Use pagination for large result sets","Batch related operations when possible","Cache read-only responses appropriately"]}, }, { domain: "api", title: "Api", description: "Structured classification systems with versioning support for contract evolution. Hierarchical groupings segment resources by operational role or security boundaries. Behavioral verification confirms authentication flows and permission constraints. Token and key safeguards protect sensitive credentials. Traffic inspection through connected load balancers and firewalls enables threat detection at network perimeters.", descriptionShort: "Interface definitions, schema validation, and grouping.", category: "Security", pathCount: 45, schemaCount: 274, complexity: "advanced", resources: [ { name: "api_definition", description: "API schema definition for discovery and protection", schemaComponents: ["views.api_definition"], apiPaths: ["/api/config/namespaces/{metadata.namespace}/api_definitions","/api/config/namespaces/{metadata.namespace}/api_definitions/{metadata.name}","/api/config/namespaces/{namespace}/api_definitions","/api/config/namespaces/{namespace}/api_definitions/{name}","/api/config/namespaces/{namespace}/api_definitions/{name}/loadbalancers","/api/config/namespaces/{namespace}/api_definitions/{name}/mark_as_non_api","/api/config/namespaces/{namespace}/api_definitions/{name}/move_to_inventory","/api/config/namespaces/{namespace}/api_definitions/{name}/remove_from_inventory","/api/config/namespaces/{namespace}/api_definitions/{name}/unmark_as_non_api"], tier: "Advanced", icon: "πŸ“„", descriptionShort: "API definition", supportsLogs: false, supportsMetrics: false, dependencies: {"required":[],"optional":["api_endpoint"]}, relationshipHints: ["api_endpoint: Endpoints defined by this API"], catalogCategories: ["api-definitions","loadbalancers","mark-as-non-api","move-to-inventory","remove-from-inventory","unmark-as-non-api"] }, { name: "api_endpoint", description: "Individual API endpoint configuration and protection", schemaComponents: ["api_group_element"], apiPaths: ["/api/web/namespaces/{namespace}/api_group_elements","/api/web/namespaces/{namespace}/api_group_elements/{name}"], tier: "Advanced", icon: "πŸ”Œ", descriptionShort: "API endpoint", supportsLogs: true, supportsMetrics: true, dependencies: {"required":[],"optional":["api_rate_limit"]}, relationshipHints: ["api_rate_limit: Rate limiting for this endpoint"], catalogCategories: ["api-group-elements"] }, { name: "api_rate_limit", description: "API rate limiting configuration for traffic control", tier: "Advanced", icon: "⏱️", descriptionShort: "API rate limit", supportsLogs: true, supportsMetrics: true }, ], useCases: ["Discover and catalog APIs","Test API security and behavior","Manage API credentials","Define API groups and testing policies"], relatedDomains: ["virtual","network_security"], icon: "πŸ”", descriptionMedium: "Resource cataloging with automatic classification and security profiling. Organizational hierarchies segment access by function or protection policy.", requiresTier: "Advanced", logoSvg: "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23EF4444'%3E%3Cpath d='M12 1L3 5v6c0 5.55 3.84 10.74 9 12 5.16-1.26 9-6.45 9-12V5l-9-4zm0 10.99h7c-.53 4.12-3.28 7.79-7 8.94V12H5V6.3l7-3.11v8.8z'/%3E%3C/svg%3E", cliMetadata: {"quickStart":{"command":"curl $F5XC_API_URL/api/config/namespaces/default/api_catalogs -H 'Authorization: APIToken $F5XC_API_TOKEN'","description":"List all API catalogs in default namespace","expectedOutput":"JSON array of API catalog objects"},"commonWorkflows":[{"name":"Protect API with Security Policy"}],"troubleshooting":[{}],"icon":"πŸ”"}, bestPractices: {"commonErrors":[{"code":400,"message":"Invalid request body","resolution":"Validate JSON structure and required fields before submission","prevention":"Use schema validation from OpenAPI spec"},{"code":401,"message":"Authentication failed","resolution":"Verify API token is valid and not expired","prevention":"Use environment variables for token management"},{"code":403,"message":"Permission denied","resolution":"Check user role and namespace permissions","prevention":"Verify RBAC policies before operations"},{"code":404,"message":"Resource not found","resolution":"Verify resource name and namespace exist","prevention":"List resources before attempting operations"},{"code":409,"message":"Resource already exists","resolution":"Use unique name or delete existing resource","prevention":"Check existence before creation"},{"code":429,"message":"Rate limit exceeded","resolution":"Implement exponential backoff and retry logic","prevention":"Batch operations and add delays between requests"}],"securityNotes":["Always use HTTPS for all API communications","Store API tokens securely, never in source code","Rotate API tokens regularly following security policies"],"performanceTips":["Use pagination for large result sets","Batch related operations when possible","Cache read-only responses appropriately"]}, }, { domain: "authentication", title: "Authentication", description: "Identity and access management providing APIs for configuring identity providers, access policies, and user credentials. Supports MFA, identity provider integration, and lifecycle operations for credential management across distributed deployments.", descriptionShort: "Identity provider and access policy configuration.", category: "Platform", pathCount: 14, schemaCount: 38, complexity: "simple", resources: [ { name: "authentication_policy", description: "Authentication policy for user and API access", tier: "Standard", icon: "πŸ”", descriptionShort: "Auth policy", supportsLogs: true, supportsMetrics: false }, { name: "token", description: "API token for programmatic access", tier: "Standard", icon: "🎫", descriptionShort: "Token", supportsLogs: false, supportsMetrics: false }, { name: "api_credential", description: "API credential for service authentication", schemaComponents: ["api_credential"], apiPaths: ["/api/web/namespaces/system/bulk_revoke/api_credentials","/api/web/namespaces/{namespace}/activate/api_credentials","/api/web/namespaces/{namespace}/api_credentials","/api/web/namespaces/{namespace}/api_credentials/{name}","/api/web/namespaces/{namespace}/renew/api_credentials","/api/web/namespaces/{namespace}/revoke/api_credentials"], tier: "Standard", icon: "πŸ”‘", descriptionShort: "API credential", supportsLogs: false, supportsMetrics: false, catalogCategories: ["bulk-revoke-api-credentials","api-credentials"] }, ], useCases: ["Configure authentication mechanisms","Manage OIDC and OAuth providers","Configure SCIM user provisioning","Manage API credentials and access","Configure account signup policies"], relatedDomains: ["system","users"], icon: "πŸ”‘", descriptionMedium: "Identity management with provider integration, access policies, and credential lifecycle control.", requiresTier: "Standard", logoSvg: "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23FBBF24'%3E%3Cpath d='M12.65 10C11.83 7.67 9.61 6 7 6c-3.31 0-6 2.69-6 6s2.69 6 6 6c2.61 0 4.83-1.67 5.65-4H17v4h4v-4h2v-4H12.65zM7 14c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z'/%3E%3C/svg%3E", bestPractices: {"commonErrors":[{"code":401,"message":"Token expired","resolution":"Refresh token or re-authenticate","prevention":"Implement automatic token refresh"},{"code":403,"message":"Insufficient permissions","resolution":"Request additional role assignments","prevention":"Verify permissions before operations"}],"securityNotes":["Use short-lived tokens with refresh capability","Enable MFA for administrative access","Implement least privilege access policies"],"performanceTips":["Cache authentication tokens appropriately","Use service accounts for automation","Implement token pooling for high-volume scenarios"]}, }, { domain: "bigip", title: "Bigip", description: "On-premises appliance connector enabling iRule lifecycle operations and data group replication. APM policy coordination, virtual server configuration binding, and CNE linkage. Telemetry aggregation and health status monitoring across hybrid infrastructure deployments.", descriptionShort: "iRules, data groups, and APM integration.", category: "Platform", pathCount: 24, schemaCount: 189, complexity: "moderate", resources: [ { name: "bigip_pool", description: "BIG-IP pool for load balancing integration", tier: "Advanced", icon: "🎯", descriptionShort: "BIG-IP pool", supportsLogs: false, supportsMetrics: true }, { name: "bigip_device", description: "BIG-IP device registration and management", tier: "Advanced", icon: "πŸ–₯️", descriptionShort: "BIG-IP device", supportsLogs: true, supportsMetrics: true }, ], useCases: ["Manage BigIP F5 appliances","Configure iRule scripts","Manage data groups","Integrate BigIP CNE"], relatedDomains: ["marketplace"], icon: "🏒", descriptionMedium: "Legacy device orchestration with iRule scripts and data group synchronization. Virtual server bindings and metrics collection.", requiresTier: "Advanced", logoSvg: "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23EF4444'%3E%3Cpath d='M12 7V3H2v18h20V7H12zM6 19H4v-2h2v2zm0-4H4v-2h2v2zm0-4H4V9h2v2zm0-4H4V5h2v2zm4 12H8v-2h2v2zm0-4H8v-2h2v2zm0-4H8V9h2v2zm0-4H8V5h2v2zm10 12h-8v-2h2v-2h-2v-2h2v-2h-2V9h8v10zm-2-8h-2v2h2v-2zm0 4h-2v2h2v-2z'/%3E%3C/svg%3E", bestPractices: {"commonErrors":[{"code":400,"message":"Invalid request body","resolution":"Validate JSON structure and required fields before submission","prevention":"Use schema validation from OpenAPI spec"},{"code":401,"message":"Authentication failed","resolution":"Verify API token is valid and not expired","prevention":"Use environment variables for token management"},{"code":403,"message":"Permission denied","resolution":"Check user role and namespace permissions","prevention":"Verify RBAC policies before operations"},{"code":404,"message":"Resource not found","resolution":"Verify resource name and namespace exist","prevention":"List resources before attempting operations"},{"code":409,"message":"Resource already exists","resolution":"Use unique name or delete existing resource","prevention":"Check existence before creation"},{"code":429,"message":"Rate limit exceeded","resolution":"Implement exponential backoff and retry logic","prevention":"Batch operations and add delays between requests"}],"securityNotes":["Always use HTTPS for all API communications","Store API tokens securely, never in source code","Rotate API tokens regularly following security policies"],"performanceTips":["Use pagination for large result sets","Batch related operations when possible","Cache read-only responses appropriately"]}, }, { domain: "billing_and_usage", title: "Billing And Usage", description: "Subscription lifecycle with plan transitions and billing states. Payment method hierarchies supporting primary and secondary configurations. Invoice generation with PDF downloads and custom listing. Resource quotas per namespace with limit definitions and consumption metrics. Contact types for billing notifications and tenant deletion workflows.", descriptionShort: "Subscription plans, payment methods, and quotas.", category: "Platform", pathCount: 26, schemaCount: 99, complexity: "moderate", resources: [ { name: "subscription", description: "Subscription for service entitlements", schemaComponents: ["subscription","usage.subscription"], apiPaths: ["/api/web/namespaces/{namespace}/subscriptions/custom_list"], tier: "Standard", icon: "πŸ’³", descriptionShort: "Subscription", supportsLogs: false, supportsMetrics: false, catalogCategories: ["custom-list"] }, { name: "quota", description: "Resource quota for usage limits", schemaComponents: ["quota"], apiPaths: ["/api/web/namespaces/{metadata.namespace}/quotas","/api/web/namespaces/{metadata.namespace}/quotas/{metadata.name}","/api/web/namespaces/{namespace}/quota/limits","/api/web/namespaces/{namespace}/quota/usage","/api/web/namespaces/{namespace}/quotas","/api/web/namespaces/{namespace}/quotas/{name}"], tier: "Standard", icon: "πŸ“Š", descriptionShort: "Quota", supportsLogs: false, supportsMetrics: false, catalogCategories: ["limits","usage","quotas"] }, { name: "usage_report", description: "Usage report for consumption tracking", schemaComponents: ["usage"], apiPaths: ["/api/web/namespaces/{namespace}/current_usage","/api/web/namespaces/{namespace}/hourly_usage_details","/api/web/namespaces/{namespace}/monthly_usage","/api/web/namespaces/{namespace}/usage_details"], tier: "Standard", icon: "πŸ“ˆ", descriptionShort: "Usage report", supportsLogs: false, supportsMetrics: false, catalogCategories: ["current-usage","hourly-usage-details","monthly-usage","usage-details"] }, ], useCases: ["Manage subscription plans and billing transitions","Configure payment methods and invoices","Track resource quota usage across namespaces","Monitor usage limits and capacity"], relatedDomains: ["system","users"], icon: "πŸ’³", descriptionMedium: "Plan transitions, invoicing, and resource consumption. Namespace-level quota limits and usage tracking.", requiresTier: "Standard", logoSvg: "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%2310B981'%3E%3Cpath d='M20 4H4c-1.11 0-1.99.89-1.99 2L2 18c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V6c0-1.11-.89-2-2-2zm0 14H4v-6h16v6zm0-10H4V6h16v2z'/%3E%3C/svg%3E", bestPractices: {"commonErrors":[{"code":400,"message":"Invalid request body","resolution":"Validate JSON structure and required fields before submission","prevention":"Use schema validation from OpenAPI spec"},{"code":401,"message":"Authentication failed","resolution":"Verify API token is valid and not expired","prevention":"Use environment variables for token management"},{"code":403,"message":"Permission denied","resolution":"Check user role and namespace permissions","prevention":"Verify RBAC policies before operations"},{"code":404,"message":"Resource not found","resolution":"Verify resource name and namespace exist","prevention":"List resources before attempting operations"},{"code":409,"message":"Resource already exists","resolution":"Use unique name or delete existing resource","prevention":"Check existence before creation"},{"code":429,"message":"Rate limit exceeded","resolution":"Implement exponential backoff and retry logic","prevention":"Batch operations and add delays between requests"}],"securityNotes":["Always use HTTPS for all API communications","Store API tokens securely, never in source code","Rotate API tokens regularly following security policies"],"performanceTips":["Use pagination for large result sets","Batch related operations when possible","Cache read-only responses appropriately"]}, }, { domain: "blindfold", title: "Blindfold", description: "Public key retrieval and secret policy enforcement for encrypted data handling. Policy rules govern access with configurable matching and transformation actions. VoltShare integration provides decryption services, access counting, and audit log aggregation. Namespace-scoped policies enable fine-grained control over sensitive information with administrative overrides.", descriptionShort: "Secret encryption, key policies, and audit trails.", category: "Security", pathCount: 27, schemaCount: 138, complexity: "moderate", resources: [ { name: "blindfold_secret", description: "Encrypted secret using Blindfold encryption", tier: "Standard", icon: "πŸ”", descriptionShort: "Blindfold secret", supportsLogs: false, supportsMetrics: false }, { name: "secret_policy", description: "Secret management policy configuration", schemaComponents: ["secret_policy"], apiPaths: ["/api/secret_management/namespaces/{metadata.namespace}/secret_policys","/api/secret_management/namespaces/{metadata.namespace}/secret_policys/{metadata.name}","/api/secret_management/namespaces/{namespace}/secret_policy/list_policy/{policy_state}","/api/secret_management/namespaces/{namespace}/secret_policy/{name}/recover","/api/secret_management/namespaces/{namespace}/secret_policy/{name}/softdelete","/api/secret_management/namespaces/{namespace}/secret_policys","/api/secret_management/namespaces/{namespace}/secret_policys/{name}"], tier: "Standard", icon: "πŸ“‹", descriptionShort: "Secret policy", supportsLogs: false, supportsMetrics: false, catalogCategories: ["secret-management-list-policy","secret-management-recover","secret-management-softdelete"] }, { name: "policy_document", description: "Policy document for access control definitions", schemaComponents: ["secret_management"], apiPaths: ["/api/secret_management/get_public_key","/api/secret_management/namespaces/{namespace}/secret_policys/{name}/get_policy_document"], tier: "Standard", icon: "πŸ“„", descriptionShort: "Policy document", supportsLogs: false, supportsMetrics: false, catalogCategories: ["secret-management-get-public-key","secret-management-get-policy-document"] }, ], useCases: ["Configure secret policies for encryption","Manage sensitive data encryption","Enforce data protection policies"], relatedDomains: ["client_side_defense","certificates"], icon: "πŸ”", descriptionMedium: "Encryption key management with policy-based access controls. Audit logging and secure data protection.", requiresTier: "Advanced", logoSvg: "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%236366F1'%3E%3Cpath d='M18 8h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6h2c0-1.66 1.34-3 3-3s3 1.34 3 3v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zm0 12H6V10h12v10zm-6-3c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2z'/%3E%3C/svg%3E", bestPractices: {"commonErrors":[{"code":400,"message":"Invalid request body","resolution":"Validate JSON structure and required fields before submission","prevention":"Use schema validation from OpenAPI spec"},{"code":401,"message":"Authentication failed","resolution":"Verify API token is valid and not expired","prevention":"Use environment variables for token management"},{"code":403,"message":"Permission denied","resolution":"Check user role and namespace permissions","prevention":"Verify RBAC policies before operations"},{"code":404,"message":"Resource not found","resolution":"Verify resource name and namespace exist","prevention":"List resources before attempting operations"},{"code":409,"message":"Resource already exists","resolution":"Use unique name or delete existing resource","prevention":"Check existence before creation"},{"code":429,"message":"Rate limit exceeded","resolution":"Implement exponential backoff and retry logic","prevention":"Batch operations and add delays between requests"}],"securityNotes":["Always use HTTPS for all API communications","Store API tokens securely, never in source code","Rotate API tokens regularly following security policies"],"performanceTips":["Use pagination for large result sets","Batch related operations when possible","Cache read-only responses appropriately"]}, }, { domain: "bot_and_threat_defense", title: "Bot And Threat Defense", description: "Behavioral fingerprinting identifies automated clients through request patterns, mouse movements, and JavaScript execution. Threat categories classify attacks by type including credential stuffing, scraping, and denial-of-service. Defense instances apply per-namespace policies with configurable sensitivity thresholds and challenge actions. Provisioning handles integration credentials for third-party threat intelligence feeds.", descriptionShort: "Bot detection, threat categories, and defense instances.", category: "Security", pathCount: 19, schemaCount: 74, complexity: "moderate", resources: [ { name: "bot_defense_instance", description: "Bot defense instance for deployment", schemaComponents: ["shape_bot_defense_instance"], apiPaths: ["/api/config/namespaces/{namespace}/shape_bot_defense_instances","/api/config/namespaces/{namespace}/shape_bot_defense_instances/{name}"], tier: "Advanced", icon: "πŸ€–", descriptionShort: "Bot defense instance", supportsLogs: true, supportsMetrics: true, catalogCategories: ["shape-bot-defense-instances"] }, { name: "threat_category", description: "Threat category for classification", schemaComponents: ["tpm_category"], apiPaths: ["/api/tpm/namespaces/{metadata.namespace}/tpm_categorys","/api/tpm/namespaces/{metadata.namespace}/tpm_categorys/{metadata.name}","/api/tpm/namespaces/{namespace}/tpm_categorys","/api/tpm/namespaces/{namespace}/tpm_categorys/{name}"], tier: "Advanced", icon: "🎯", descriptionShort: "Threat category", supportsLogs: false, supportsMetrics: false }, ], useCases: ["Configure bot defense instances per namespace","Manage TPM threat categories for classification","Provision API keys for automated defense systems","Integrate threat intelligence services"], relatedDomains: ["bot_defense","shape","virtual"], icon: "🦠", descriptionMedium: "Threat classification with behavioral analysis and signature matching. Automated blocking for malicious traffic patterns.", requiresTier: "Advanced", logoSvg: "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23EF4444'%3E%3Cpath d='M19.5 5.5 18 4l-1.5 1.5L18 7l1.5-1.5zM12 2v3m0 14v3m10-10h-3M5 12H2m15.5 6.5L18 20l1.5-1.5L18 17l-1.5 1.5zm-11 0L6 20l-1.5-1.5L6 17l-1.5 1.5zm0-11L6 4l-1.5 1.5L6 7 4.5 5.5zM12 7c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5zm0 8c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3z'/%3E%3C/svg%3E", bestPractices: {"commonErrors":[{"code":400,"message":"Invalid request body","resolution":"Validate JSON structure and required fields before submission","prevention":"Use schema validation from OpenAPI spec"},{"code":401,"message":"Authentication failed","resolution":"Verify API token is valid and not expired","prevention":"Use environment variables for token management"},{"code":403,"message":"Permission denied","resolution":"Check user role and namespace permissions","prevention":"Verify RBAC policies before operations"},{"code":404,"message":"Resource not found","resolution":"Verify resource name and namespace exist","prevention":"List resources before attempting operations"},{"code":409,"message":"Resource already exists","resolution":"Use unique name or delete existing resource","prevention":"Check existence before creation"},{"code":429,"message":"Rate limit exceeded","resolution":"Implement exponential backoff and retry logic","prevention":"Batch operations and add delays between requests"}],"securityNotes":["Always use HTTPS for all API communications","Store API tokens securely, never in source code","Rotate API tokens regularly following security policies"],"performanceTips":["Use pagination for large result sets","Batch related operations when possible","Cache read-only responses appropriately"]}, }, { domain: "cdn", title: "Cdn", description: "Content delivery networks with edge caching, geographic distribution, and cache management. Supports custom rules, asset purge operations, and performance analytics. Enables worldwide asset distribution, optimization, and delivery monitoring across regions and protocols.", descriptionShort: "Content delivery and edge caching networks.", category: "Networking", pathCount: 29, schemaCount: 528, complexity: "advanced", resources: [ { name: "cdn_loadbalancer", description: "Content delivery network load balancer for edge caching", schemaComponents: ["views.cdn_loadbalancer"], apiPaths: ["/api/cdn/namespaces/{namespace}/cdn_loadbalancer/access_logs","/api/cdn/namespaces/{namespace}/cdn_loadbalancer/access_logs/aggregation","/api/cdn/namespaces/{namespace}/cdn_loadbalancer/get-service-operation-status","/api/cdn/namespaces/{namespace}/cdn_loadbalancer/list-service-operations-status","/api/cdn/namespaces/{namespace}/cdn_loadbalancer/metrics","/api/cdn/namespaces/{namespace}/cdn_loadbalancer/{name}/cache-purge","/api/config/namespaces/{metadata.namespace}/cdn_loadbalancers","/api/config/namespaces/{metadata.namespace}/cdn_loadbalancers/{metadata.name}","/api/config/namespaces/{namespace}/cdn_loadbalancers","/api/config/namespaces/{namespace}/cdn_loadbalancers/get_security_config","/api/config/namespaces/{namespace}/cdn_loadbalancers/{name}","/api/config/namespaces/{namespace}/cdn_loadbalancers/{name}/dos_automitigation_rules","/api/config/namespaces/{namespace}/cdn_loadbalancers/{name}/dos_automitigation_rules/{dos_automitigation_rule_name}"], tier: "Standard", icon: "🌍", descriptionShort: "CDN load balancer", supportsLogs: true, supportsMetrics: true, dependencies: {"required":["cdn_origin_pool"],"optional":[]}, relationshipHints: ["cdn_origin_pool: Origin servers for CDN content"], catalogCategories: ["cdn-access-logs","cdn-access-logs-aggregation","cdn-get-service-operation-status","cdn-list-service-operations-status","cdn-metrics","cdn-cache-purge","cdn-loadbalancers","dos-automitigation-rules"] }, { name: "cdn_origin_pool", description: "Origin server pool for CDN content sourcing", tier: "Standard", icon: "🎯", descriptionShort: "CDN origin pool", supportsLogs: false, supportsMetrics: true }, ], useCases: ["Configure CDN load balancing","Manage content delivery network services","Configure caching policies","Manage data delivery and distribution"], relatedDomains: ["virtual"], icon: "πŸš€", descriptionMedium: "Global distribution with cache rules and purge operations. Performance monitoring and analytics.", requiresTier: "Advanced", logoSvg: "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23F97316'%3E%3Cpath d='M12 2.5s4.5 2.04 4.5 10c0 3.22-1.67 5.6-3.25 7.08L12 22l-1.25-2.42C9.17 18.1 7.5 15.72 7.5 12.5c0-7.96 4.5-10 4.5-10zm0 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zM5 14.5c0 1.22.57 2.36 1.44 3.22l1.76-1.76c-.43-.43-.7-1.01-.7-1.66 0-.25.04-.49.1-.72L5.21 12.1c-.13.77-.21 1.58-.21 2.4zm14 0c0-.82-.08-1.63-.21-2.4l-2.39 1.48c.06.23.1.47.1.72 0 .65-.27 1.23-.7 1.66l1.76 1.76c.87-.86 1.44-2 1.44-3.22z'/%3E%3C/svg%3E", bestPractices: {"commonErrors":[{"code":400,"message":"Invalid cache key configuration","resolution":"Review cache key parameters and syntax","prevention":"Use cache key templates for consistency"},{"code":409,"message":"CDN distribution already exists for origin","resolution":"Update existing distribution or delete first","prevention":"Check existing distributions before creation"},{"code":504,"message":"Origin server timeout","resolution":"Increase timeout values or fix origin performance","prevention":"Configure realistic timeout thresholds"}],"securityNotes":["Use signed URLs/cookies for private content","Configure origin access identity for S3 origins","Enable field-level encryption for sensitive data","Set appropriate CORS policies for cross-origin requests"],"performanceTips":["Configure optimal cache TTLs for content types","Enable compression for text-based content","Use edge computing for dynamic content personalization","Configure cache warming for popular content"]}, }, { domain: "ce_management", title: "Ce Management", description: "Customer edge node lifecycle through secure enrollment tokens and downloadable deployment images. Network connectivity options span exclusive, common, and administrative pathways with DHCP address pools supporting both IPv4 and IPv6. Bulk grouping consolidates configuration across distributed locations. Compatibility verification runs before software updates, with rollout tracking for version progression across the infrastructure.", descriptionShort: "Network interfaces, fleets, and site registration.", category: "Infrastructure", pathCount: 29, schemaCount: 236, complexity: "advanced", resources: [ { name: "site_config", description: "Site configuration for edge node settings", tier: "Standard", icon: "βš™οΈ", descriptionShort: "Site config", supportsLogs: false, supportsMetrics: false }, { name: "fleet_config", description: "Fleet configuration for multi-site management", schemaComponents: ["fleet"], apiPaths: ["/api/config/namespaces/{metadata.namespace}/fleets","/api/config/namespaces/{metadata.namespace}/fleets/{metadata.name}","/api/config/namespaces/{namespace}/fleets","/api/config/namespaces/{namespace}/fleets/{name}"], tier: "Standard", icon: "πŸš€", descriptionShort: "Fleet config", supportsLogs: false, supportsMetrics: false, catalogCategories: ["fleets"] }, { name: "registration_token", description: "Registration token for site onboarding", schemaComponents: ["registration"], apiPaths: ["/api/register/namespaces/system/get-image-download-url","/api/register/namespaces/system/get-registrations-by-token","/api/register/namespaces/system/suggest-values","/api/register/namespaces/{metadata.namespace}/registrations","/api/register/namespaces/{metadata.namespace}/registrations/{metadata.name}","/api/register/namespaces/{namespace}/listregistrationsbystate","/api/register/namespaces/{namespace}/registration/{name}/approve","/api/register/namespaces/{namespace}/registrations","/api/register/namespaces/{namespace}/registrations/{name}","/api/register/namespaces/{namespace}/registrations_by_site/{site_name}","/api/register/registerBootstrap","/api/register/requestConfig"], tier: "Standard", icon: "🎫", descriptionShort: "Registration token", supportsLogs: false, supportsMetrics: false, catalogCategories: ["register-get-image-download-url","register-get-registrations-by-token","register-suggest-values","register-approve","register","register-registerBootstrap","register-requestConfig"] }, ], useCases: ["Manage Customer Edge site lifecycle","Configure network interfaces and fleet settings","Handle site registration and token workflows","Execute site upgrades with pre-upgrade checks"], relatedDomains: ["customer_edge","sites"], icon: "πŸ”§", descriptionMedium: "Token-based provisioning with image downloads and pre-upgrade validation. Fleet grouping enables bulk operations across distributed locations.", requiresTier: "Standard", logoSvg: "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23F59E0B'%3E%3Cpath d='M22.7 19l-9.1-9.1c.9-2.3.4-5-1.5-6.9-2-2-5-2.4-7.4-1.3L9 6 6 9 1.6 4.7C.4 7.1.9 10.1 2.9 12.1c1.9 1.9 4.6 2.4 6.9 1.5l9.1 9.1c.4.4 1 .4 1.4 0l2.3-2.3c.5-.4.5-1.1.1-1.4z'/%3E%3C/svg%3E", bestPractices: {"commonErrors":[{"code":400,"message":"Invalid request body","resolution":"Validate JSON structure and required fields before submission","prevention":"Use schema validation from OpenAPI spec"},{"code":401,"message":"Authentication failed","resolution":"Verify API token is valid and not expired","prevention":"Use environment variables for token management"},{"code":403,"message":"Permission denied","resolution":"Check user role and namespace permissions","prevention":"Verify RBAC policies before operations"},{"code":404,"message":"Resource not found","resolution":"Verify resource name and namespace exist","prevention":"List resources before attempting operations"},{"code":409,"message":"Resource already exists","resolution":"Use unique name or delete existing resource","prevention":"Check existence before creation"},{"code":429,"message":"Rate limit exceeded","resolution":"Implement exponential backoff and retry logic","prevention":"Batch operations and add delays between requests"}],"securityNotes":["Always use HTTPS for all API communications","Store API tokens securely, never in source code","Rotate API tokens regularly following security policies"],"performanceTips":["Use pagination for large result sets","Batch related operations when possible","Cache read-only responses appropriately"]}, }, { domain: "certificates", title: "Certificates", description: "X.509 certificate chains with intermediate and root CA support. Trusted CA list bundles for client authentication and mTLS validation. CRL distribution points and OCSP stapling configuration. Certificate manifests link credentials to load balancers and gateways. Automatic expiration tracking and renewal notifications.", descriptionShort: "SSL/TLS chains, trusted CAs, and revocation lists.", category: "Security", pathCount: 16, schemaCount: 74, complexity: "moderate", resources: [ { name: "certificate", description: "TLS certificate for secure HTTPS connections", schemaComponents: ["certificate"], apiPaths: ["/api/config/namespaces/{metadata.namespace}/certificates","/api/config/namespaces/{metadata.namespace}/certificates/{metadata.name}","/api/config/namespaces/{namespace}/certificates","/api/config/namespaces/{namespace}/certificates/{name}"], tier: "Standard", icon: "πŸ“œ", descriptionShort: "Certificate", supportsLogs: false, supportsMetrics: false, catalogCategories: ["certificates"] }, { name: "ca_certificate", description: "Certificate authority certificate for trust chain", schemaComponents: ["trusted_ca_list"], apiPaths: ["/api/config/namespaces/{metadata.namespace}/trusted_ca_lists","/api/config/namespaces/{metadata.namespace}/trusted_ca_lists/{metadata.name}","/api/config/namespaces/{namespace}/trusted_ca_lists","/api/config/namespaces/{namespace}/trusted_ca_lists/{name}"], tier: "Standard", icon: "πŸ“œ", descriptionShort: "CA certificate", supportsLogs: false, supportsMetrics: false, catalogCategories: ["trusted-ca-lists"] }, { name: "certificate_chain", description: "Certificate chain for complete trust verification", schemaComponents: ["certificate_chain"], apiPaths: ["/api/config/namespaces/{metadata.namespace}/certificate_chains","/api/config/namespaces/{metadata.namespace}/certificate_chains/{metadata.name}","/api/config/namespaces/{namespace}/certificate_chains","/api/config/namespaces/{namespace}/certificate_chains/{name}"], tier: "Standard", icon: "πŸ”—", descriptionShort: "Certificate chain", supportsLogs: false, supportsMetrics: false, catalogCategories: ["certificate-chains"] }, ], useCases: ["Manage SSL/TLS certificates","Configure trusted CAs","Manage certificate revocation lists (CRL)","Configure certificate manifests"], relatedDomains: ["blindfold","system"], icon: "πŸ“œ", descriptionMedium: "Certificate chains and trusted CA bundles. Revocation list management and manifest configuration for PKI operations.", requiresTier: "Standard", logoSvg: "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%2314B8A6'%3E%3Cpath d='M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zm2 16H8v-2h8v2zm0-4H8v-2h8v2zm-3-5V3.5L18.5 9H13z'/%3E%3C/svg%3E", bestPractices: {"commonErrors":[{"code":400,"message":"Certificate chain incomplete","resolution":"Include intermediate certificates in chain","prevention":"Validate certificate chain before upload"},{"code":400,"message":"Private key mismatch","resolution":"Ensure private key matches certificate","prevention":"Verify key-cert pair before upload"},{"code":400,"message":"Certificate expired","resolution":"Renew certificate and upload new version","prevention":"Set up certificate expiry monitoring"}],"securityNotes":["Use certificates with at least 2048-bit RSA or 256-bit ECDSA keys","Enable OCSP stapling for revocation checking","Configure certificate transparency logging","Use separate certificates for different environments"],"performanceTips":["Use ECDSA certificates for faster TLS handshakes","Enable session resumption for repeat visitors","Configure OCSP stapling to reduce client latency"]}, }, { domain: "cloud_infrastructure", title: "Cloud Infrastructure", description: "Hyperscaler integration supporting Amazon Web Services, Microsoft Azure, and Google Cloud Platform environments. Virtual network attachment workflows enable elastic compute provisioning with automatic reattachment capabilities. Edge authentication secrets for provider access. Segment telemetry and cross-region link reapplication for distributed deployments. Autonomous path synchronization across peered networks with real-time topology updates.", descriptionShort: "AWS, Azure, GCP connectors and VPC attachments.", category: "Infrastructure", pathCount: 31, schemaCount: 208, complexity: "moderate", resources: [ { name: "aws_vpc_site", description: "AWS VPC site deployment with edge node provisioning", tier: "Standard", icon: "☁️", descriptionShort: "AWS VPC site", supportsLogs: true, supportsMetrics: true, dependencies: {"required":["cloud_credentials"],"optional":[]}, relationshipHints: ["cloud_credentials: AWS authentication for deployment"] }, { name: "azure_vnet_site", description: "Azure VNet site deployment with edge node provisioning", tier: "Standard", icon: "☁️", descriptionShort: "Azure VNet site", supportsLogs: true, supportsMetrics: true, dependencies: {"required":["cloud_credentials"],"optional":[]}, relationshipHints: ["cloud_credentials: Azure authentication for deployment"] }, { name: "gcp_vpc_site", description: "Google Cloud VPC site deployment with edge node provisioning", tier: "Standard", icon: "☁️", descriptionShort: "GCP VPC site", supportsLogs: true, supportsMetrics: true, dependencies: {"required":["cloud_credentials"],"optional":[]}, relationshipHints: ["cloud_credentials: GCP authentication for deployment"] }, { name: "cloud_credentials", description: "Cloud provider authentication credentials for site deployment", schemaComponents: ["cloud_credentials"], apiPaths: ["/api/config/namespaces/{metadata.namespace}/cloud_credentialss","/api/config/namespaces/{metadata.namespace}/cloud_credentialss/{metadata.name}","/api/config/namespaces/{namespace}/cloud_credentialss","/api/config/namespaces/{namespace}/cloud_credentialss/{name}"], tier: "Standard", icon: "πŸ”‘", descriptionShort: "Cloud credentials", supportsLogs: false, supportsMetrics: false, catalogCategories: ["cloud-credentialss"] }, ], useCases: ["Connect to cloud providers (AWS, Azure, GCP)","Manage cloud credentials and authentication","Configure cloud connectivity and elastic provisioning","Link and manage cloud regions"], relatedDomains: ["sites","customer_edge"], icon: "☁️", descriptionMedium: "Multi-cloud provider connections with gateway peering and network path configuration. Credential vault integration and subnet enumeration.", requiresTier: "Standard", logoSvg: "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%2306B6D4'%3E%3Cpath d='M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96z'/%3E%3C/svg%3E", bestPractices: {"commonErrors":[{"code":400,"message":"Invalid request body","resolution":"Validate JSON structure and required fields before submission","prevention":"Use schema validation from OpenAPI spec"},{"code":401,"message":"Authentication failed","resolution":"Verify API token is valid and not expired","prevention":"Use environment variables for token management"},{"code":403,"message":"Permission denied","resolution":"Check user role and namespace permissions","prevention":"Verify RBAC policies before operations"},{"code":404,"message":"Resource not found","resolution":"Verify resource name and namespace exist","prevention":"List resources before attempting operations"},{"code":409,"message":"Resource already exists","resolution":"Use unique name or delete existing resource","prevention":"Check existence before creation"},{"code":429,"message":"Rate limit exceeded","resolution":"Implement exponential backoff and retry logic","prevention":"Batch operations and add delays between requests"}],"securityNotes":["Always use HTTPS for all API communications","Store API tokens securely, never in source code","Rotate API tokens regularly following security policies"],"performanceTips":["Use pagination for large result sets","Batch related operations when possible","Cache read-only responses appropriately"]}, }, { domain: "container_services", title: "Container Services", description: "Namespaced isolation with configurable limits and autoscaling policies. vK8s abstracts operational overhead while providing scheduling, persistent storage, and service mesh integration. Compute profiles specify CPU, memory, and GPU allocations for reproducible environments. Telemetry tracks consumption patterns across geographically distributed infrastructure nodes.", descriptionShort: "Containerized workloads and virtual Kubernetes clusters.", category: "Infrastructure", pathCount: 13, schemaCount: 157, complexity: "moderate", resources: [ { name: "virtual_k8s", description: "Virtual Kubernetes namespace for container workloads", schemaComponents: ["virtual_k8s"], apiPaths: ["/api/config/namespaces/{metadata.namespace}/virtual_k8ss","/api/config/namespaces/{metadata.namespace}/virtual_k8ss/{metadata.name}","/api/config/namespaces/{namespace}/virtual_k8ss","/api/config/namespaces/{namespace}/virtual_k8ss/{name}"], tier: "Advanced", icon: "☸️", descriptionShort: "Virtual K8s", supportsLogs: true, supportsMetrics: true, dependencies: {"required":[],"optional":["workload"]}, relationshipHints: ["workload: Container workloads in this namespace"], catalogCategories: ["virtual-k8ss"] }, { name: "workload", description: "Container workload deployment configuration", schemaComponents: ["views.workload"], apiPaths: ["/api/config/namespaces/{metadata.namespace}/workloads","/api/config/namespaces/{metadata.namespace}/workloads/{metadata.name}","/api/config/namespaces/{namespace}/workloads","/api/config/namespaces/{namespace}/workloads/{name}","/api/data/namespaces/{namespace}/workloads/usage"], tier: "Advanced", icon: "πŸ“¦", descriptionShort: "Workload", supportsLogs: true, supportsMetrics: true, dependencies: {"required":["virtual_k8s"],"optional":[]}, relationshipHints: ["virtual_k8s: Namespace for workload deployment"], catalogCategories: ["workloads","usage"] }, { name: "pod_security_policy", description: "Pod security policy for container runtime constraints", tier: "Advanced", icon: "πŸ”’", descriptionShort: "Pod security policy", supportsLogs: false, supportsMetrics: false }, ], useCases: ["Deploy XCCS (Container Services) namespaces for multi-tenant workloads","Manage container workloads with simplified orchestration","Configure distributed edge container deployments","Run containerized applications without full K8s complexity"], relatedDomains: ["managed_kubernetes","sites","service_mesh"], icon: "πŸ“¦", descriptionMedium: "Pod orchestration without full cluster complexity. Edge site execution, quota enforcement, and standardized compute profiles for distributed apps.", requiresTier: "Advanced", logoSvg: "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%238B5CF6'%3E%3Cpath d='M21 16.5c0 .38-.21.71-.53.88l-7.9 4.44c-.16.12-.36.18-.57.18s-.41-.06-.57-.18l-7.9-4.44A.991.991 0 0 1 3 16.5v-9c0-.38.21-.71.53-.88l7.9-4.44c.16-.12.36-.18.57-.18s.41.06.57.18l7.9 4.44c.32.17.53.5.53.88v9zM12 4.15L5 8.09v7.82l7 3.94 7-3.94V8.09l-7-3.94z'/%3E%3C/svg%3E", bestPractices: {"commonErrors":[{"code":400,"message":"Invalid request body","resolution":"Validate JSON structure and required fields before submission","prevention":"Use schema validation from OpenAPI spec"},{"code":401,"message":"Authentication failed","resolution":"Verify API token is valid and not expired","prevention":"Use environment variables for token management"},{"code":403,"message":"Permission denied","resolution":"Check user role and namespace permissions","prevention":"Verify RBAC policies before operations"},{"code":404,"message":"Resource not found","resolution":"Verify resource name and namespace exist","prevention":"List resources before attempting operations"},{"code":409,"message":"Resource already exists","resolution":"Use unique name or delete existing resource","prevention":"Check existence before creation"},{"code":429,"message":"Rate limit exceeded","resolution":"Implement exponential backoff and retry logic","prevention":"Batch operations and add delays between requests"}],"securityNotes":["Always use HTTPS for all API communications","Store API tokens securely, never in source code","Rotate API tokens regularly following security policies"],"performanceTips":["Use pagination for large result sets","Batch related operations when possible","Cache read-only responses appropriately"]}, }, { domain: "data_and_privacy_security", title: "Data And Privacy Security", description: "Pattern-based detection for personally identifiable information across request and response payloads. Custom data type definitions enable organization-specific classification beyond built-in PII categories. Regional log and metrics aggregation with Clickhouse, Elasticsearch, and Kafka export options. Geo-configuration policies enforce data residency requirements and jurisdiction-specific privacy regulations.", descriptionShort: "PII detection, data types, and regional compliance.", category: "Security", pathCount: 11, schemaCount: 65, complexity: "simple", resources: [ { name: "sensitive_data_policy", description: "Sensitive data policy for PII protection", schemaComponents: ["sensitive_data_policy"], apiPaths: ["/api/config/namespaces/{metadata.namespace}/sensitive_data_policys","/api/config/namespaces/{metadata.namespace}/sensitive_data_policys/{metadata.name}","/api/config/namespaces/{namespace}/sensitive_data_policys","/api/config/namespaces/{namespace}/sensitive_data_policys/{name}"], tier: "Advanced", icon: "πŸ”", descriptionShort: "Sensitive data policy", supportsLogs: true, supportsMetrics: false, catalogCategories: ["sensitive-data-policys"] }, { name: "data_classification", description: "Data classification for content categorization", schemaComponents: ["data_type"], apiPaths: ["/api/config/namespaces/{metadata.namespace}/data_types","/api/config/namespaces/{metadata.namespace}/data_types/{metadata.name}","/api/config/namespaces/{namespace}/data_types","/api/config/namespaces/{namespace}/data_types/{name}"], tier: "Advanced", icon: "🏷️", descriptionShort: "Data classification", supportsLogs: false, supportsMetrics: false, catalogCategories: ["data-types"] }, ], useCases: ["Configure sensitive data detection policies","Define custom data types for PII classification","Manage LMA region configurations","Integrate geo-configurations for compliance"], relatedDomains: ["blindfold","client_side_defense"], icon: "πŸ”", descriptionMedium: "Sensitive data policies with custom classification rules. LMA region configuration and geo-based compliance controls.", requiresTier: "Advanced", logoSvg: "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23EF4444'%3E%3Cpath d='M12 1L3 5v6c0 5.55 3.84 10.74 9 12 5.16-1.26 9-6.45 9-12V5l-9-4zm0 10.99h7c-.53 4.12-3.28 7.79-7 8.94V12H5V6.3l7-3.11v8.8z'/%3E%3C/svg%3E", bestPractices: {"commonErrors":[{"code":400,"message":"Invalid request body","resolution":"Validate JSON structure and required fields before submission","prevention":"Use schema validation from OpenAPI spec"},{"code":401,"message":"Authentication failed","resolution":"Verify API token is valid and not expired","prevention":"Use environment variables for token management"},{"code":403,"message":"Permission denied","resolution":"Check user role and namespace permissions","prevention":"Verify RBAC policies before operations"},{"code":404,"message":"Resource not found","resolution":"Verify resource name and namespace exist","prevention":"List resources before attempting operations"},{"code":409,"message":"Resource already exists","resolution":"Use unique name or delete existing resource","prevention":"Check existence before creation"},{"code":429,"message":"Rate limit exceeded","resolution":"Implement exponential backoff and retry logic","prevention":"Batch operations and add delays between requests"}],"securityNotes":["Always use HTTPS for all API communications","Store API tokens securely, never in source code","Rotate API tokens regularly following security policies"],"performanceTips":["Use pagination for large result sets","Batch related operations when possible","Cache read-only responses appropriately"]}, }, { domain: "data_intelligence", title: "Data Intelligence", description: "APIs for configuring classification policies and resource management. Supports data classification, insight generation, and integration with security services across deployments.", descriptionShort: "Classification, insights, and policy management.", category: "Operations", pathCount: 15, schemaCount: 72, complexity: "simple", resources: [ { name: "analytics_query", description: "Analytics query for data analysis", schemaComponents: ["shape.data_delivery"], apiPaths: ["/api/data-intelligence/namespaces/system/dataSets","/api/data-intelligence/namespaces/system/datadictionary/{dataset}","/api/data-intelligence/namespaces/system/init-request","/api/data-intelligence/namespaces/{namespace}/data-dictionary/datasets","/api/data-intelligence/namespaces/{namespace}/di/flowlabels","/api/data-intelligence/namespaces/{namespace}/di/summary","/api/data-intelligence/namespaces/{namespace}/receivers/{id}/status","/api/data-intelligence/namespaces/{namespace}/receivers/{id}/test","/api/data-intelligence/namespaces/{namespace}/suggest-values"], tier: "Standard", icon: "πŸ“Š", descriptionShort: "Analytics query", supportsLogs: false, supportsMetrics: false, catalogCategories: ["data-intelligence-dataSets","data-intelligence-datadictionary","data-intelligence-init-request","data-intelligence-datasets","data-intelligence-flowlabels","data-intelligence-summary","data-intelligence-status","data-intelligence-test"] }, { name: "data_export", description: "Data export configuration for reporting", schemaComponents: ["shape.data_delivery.receiver"], apiPaths: ["/api/data-intelligence/namespaces/{metadata.namespace}/receivers","/api/data-intelligence/namespaces/{metadata.namespace}/receivers/{metadata.name}","/api/data-intelligence/namespaces/{namespace}/receivers","/api/data-intelligence/namespaces/{namespace}/receivers/{name}"], tier: "Standard", icon: "πŸ“€", descriptionShort: "Data export", supportsLogs: false, supportsMetrics: false, catalogCategories: ["data-intelligence"] }, ], useCases: ["Analyze security and traffic data","Generate intelligent insights from logs","Configure data analytics policies"], relatedDomains: ["statistics","observability"], icon: "🧠", descriptionMedium: "Classification rules, resource policies, and insight generation for data analysis workflows.", requiresTier: "Standard", logoSvg: "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23A855F7'%3E%3Cpath d='M15.5 14l-1.34-4H9.84L8.5 14H6.09l4.01-10h3.8l4.01 10H15.5zm-4.5-5.4h2l.9-2.35.8 2.35h1.8l-1.45 1.05.55 1.7-1.4-1.02-1.4 1.02.55-1.7L11 8.6z'/%3E%3C/svg%3E", bestPractices: {"commonErrors":[{"code":400,"message":"Invalid request body","resolution":"Validate JSON structure and required fields before submission","prevention":"Use schema validation from OpenAPI spec"},{"code":401,"message":"Authentication failed","resolution":"Verify API token is valid and not expired","prevention":"Use environment variables for token management"},{"code":403,"message":"Permission denied","resolution":"Check user role and namespace permissions","prevention":"Verify RBAC policies before operations"},{"code":404,"message":"Resource not found","resolution":"Verify resource name and namespace exist","prevention":"List resources before attempting operations"},{"code":409,"message":"Resource already exists","resolution":"Use unique name or delete existing resource","prevention":"Check existence before creation"},{"code":429,"message":"Rate limit exceeded","resolution":"Implement exponential backoff and retry logic","prevention":"Batch operations and add delays between requests"}],"securityNotes":["Always use HTTPS for all API communications","Store API tokens securely, never in source code","Rotate API tokens regularly following security policies"],"performanceTips":["Use pagination for large result sets","Batch related operations when possible","Cache read-only responses appropriately"]}, }, { domain: "ddos", title: "Ddos", description: "Network perimeter hardening through deny list configurations, rule group hierarchies, and encrypted tunnel endpoints. Attack signature detection identifies flood patterns while throttling mechanisms block anomalous traffic bursts. Tunnel health checks verify coverage across distributed segments. Priority ordering governs policy application for multi-layered screening approaches.", descriptionShort: "Volumetric attack mitigation and traffic scrubbing.", category: "Security", pathCount: 65, schemaCount: 262, complexity: "advanced", resources: [ { name: "ddos_protection", description: "DDoS protection configuration for traffic scrubbing", schemaComponents: ["infraprotect"], apiPaths: ["/api/data/namespaces/{namespace}/infraprotect/bgp_peer_status","/api/data/namespaces/{namespace}/infraprotect/transit_usage","/api/infraprotect/namespaces/system/infraprotect/access","/api/infraprotect/namespaces/{namespace}/infraprotect/alert/{alert_id}","/api/infraprotect/namespaces/{namespace}/infraprotect/alert/{alert_id}/to_event","/api/infraprotect/namespaces/{namespace}/infraprotect/alerts","/api/infraprotect/namespaces/{namespace}/infraprotect/event/{event_id}","/api/infraprotect/namespaces/{namespace}/infraprotect/event/{event_id}/alerts","/api/infraprotect/namespaces/{namespace}/infraprotect/event/{event_id}/attachments","/api/infraprotect/namespaces/{namespace}/infraprotect/event/{event_id}/detail/{event_detail_id}","/api/infraprotect/namespaces/{namespace}/infraprotect/event/{event_id}/details","/api/infraprotect/namespaces/{namespace}/infraprotect/event/{event_id}/mitigation_annotations","/api/infraprotect/namespaces/{namespace}/infraprotect/events","/api/infraprotect/namespaces/{namespace}/infraprotect/events_summary","/api/infraprotect/namespaces/{namespace}/infraprotect/mitigation/{mitigation_id}","/api/infraprotect/namespaces/{namespace}/infraprotect/mitigation/{mitigation_id}/annotations","/api/infraprotect/namespaces/{namespace}/infraprotect/mitigation/{mitigation_id}/countermeasures","/api/infraprotect/namespaces/{namespace}/infraprotect/mitigation/{mitigation_id}/ips","/api/infraprotect/namespaces/{namespace}/infraprotect/mitigations","/api/infraprotect/namespaces/{namespace}/infraprotect/networks","/api/infraprotect/namespaces/{namespace}/infraprotect/report/{report_id}","/api/infraprotect/namespaces/{namespace}/infraprotect/reports","/api/infraprotect/namespaces/{namespace}/suggest-values"], tier: "Advanced", icon: "πŸ›‘οΈ", descriptionShort: "DDoS protection", supportsLogs: true, supportsMetrics: true, dependencies: {"required":[],"optional":["ddos_mitigation_rule"]}, relationshipHints: ["ddos_mitigation_rule: Custom mitigation rules"], catalogCategories: ["bgp-peer-status","transit-usage","infraprotect-infraprotect-access","infraprotect-alert","infraprotect-alert-to-event","infraprotect-alerts","infraprotect-event","infraprotect-event-alerts","infraprotect-event-attachments","infraprotect-event-detail","infraprotect-event-details","infraprotect-event-mitigation-annotations","infraprotect-events","infraprotect-events-summary","infraprotect-mitigation","infraprotect-mitigation-annotations","infraprotect-mitigation-countermeasures","infraprotect-mitigation-ips","infraprotect-mitigations","infraprotect-networks","infraprotect-report","infraprotect-reports"] }, { name: "ddos_mitigation_rule", description: "DDoS mitigation rule for attack response", schemaComponents: ["infraprotect_firewall_rule"], apiPaths: ["/api/infraprotect/namespaces/{metadata.namespace}/infraprotect_firewall_rules","/api/infraprotect/namespaces/{metadata.namespace}/infraprotect_firewall_rules/{metadata.name}","/api/infraprotect/namespaces/{namespace}/infraprotect_firewall_rules","/api/infraprotect/namespaces/{namespace}/infraprotect_firewall_rules/{name}"], tier: "Advanced", icon: "πŸ“‹", descriptionShort: "DDoS mitigation rule", supportsLogs: true, supportsMetrics: false }, ], useCases: ["Configure DDoS protection policies","Monitor and analyze DDoS threats","Configure infrastructure protection"], relatedDomains: ["network_security","virtual"], icon: "πŸ›‘", descriptionMedium: "Deny lists, firewall rule groups, and tunnel-based safeguards. Rate limiting and pattern analysis for network perimeter security.", requiresTier: "Advanced", logoSvg: "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23DC2626'%3E%3Cpath d='M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm5 11H7v-2h10v2z'/%3E%3C/svg%3E", bestPractices: {"commonErrors":[{"code":400,"message":"Invalid request body","resolution":"Validate JSON structure and required fields before submission","prevention":"Use schema validation from OpenAPI spec"},{"code":401,"message":"Authentication failed","resolution":"Verify API token is valid and not expired","prevention":"Use environment variables for token management"},{"code":403,"message":"Permission denied","resolution":"Check user role and namespace permissions","prevention":"Verify RBAC policies before operations"},{"code":404,"message":"Resource not found","resolution":"Verify resource name and namespace exist","prevention":"List resources before attempting operations"},{"code":409,"message":"Resource already exists","resolution":"Use unique name or delete existing resource","prevention":"Check existence before creation"},{"code":429,"message":"Rate limit exceeded","resolution":"Implement exponential backoff and retry logic","prevention":"Batch operations and add delays between requests"}],"securityNotes":["Always use HTTPS for all API communications","Store API tokens securely, never in source code","Rotate API tokens regularly following security policies"],"performanceTips":["Use pagination for large result sets","Batch related operations when possible","Cache read-only responses appropriately"]}, }, { domain: "dns", title: "Dns", description: "Name infrastructure with authoritative zones, A/AAAA/CNAME record types, and zone management. Supports zone transfers, security extensions, health-based routing, and delegation. Enables reliable name resolution, geographic load balancing, and name-based traffic steering across distributed environments.", descriptionShort: "Authoritative zones and record management.", category: "Networking", pathCount: 51, schemaCount: 288, complexity: "advanced", resources: [ { name: "dns_zone", description: "Authoritative DNS zone with record management capabilities", schemaComponents: ["dns_zone"], apiPaths: ["/api/config/dns/namespaces/system/dns_zone/clone_from_dns_domain","/api/config/dns/namespaces/system/dns_zone/import","/api/config/dns/namespaces/system/dns_zone/import_axfr","/api/config/dns/namespaces/system/dns_zone/import_bind_create","/api/config/dns/namespaces/system/dns_zone/import_bind_validate","/api/config/dns/namespaces/system/dns_zone/initiate_zone_transfer","/api/config/dns/namespaces/{metadata.namespace}/dns_zones","/api/config/dns/namespaces/{metadata.namespace}/dns_zones/{metadata.name}","/api/config/dns/namespaces/{namespace}/dns_zone/{dns_zone_name}/local_zone_file","/api/config/dns/namespaces/{namespace}/dns_zone/{dns_zone_name}/local_zone_record_names","/api/config/dns/namespaces/{namespace}/dns_zone/{dns_zone_name}/remote_zone_file","/api/config/dns/namespaces/{namespace}/dns_zone/{dns_zone_name}/zone_file/export","/api/config/dns/namespaces/{namespace}/dns_zones","/api/config/dns/namespaces/{namespace}/dns_zones/{name}","/api/data/namespaces/{namespace}/dns_zones/metrics","/api/data/namespaces/{namespace}/dns_zones/request_logs"], tier: "Standard", icon: "🌐", descriptionShort: "DNS zone", supportsLogs: true, supportsMetrics: true, dependencies: {"required":[],"optional":["dns_load_balancer"]}, relationshipHints: ["dns_load_balancer: Geographic or weighted DNS routing"], catalogCategories: ["dns-dns-zone-clone-from-dns-domain","dns-dns-zone-import","dns-dns-zone-import-axfr","dns-dns-zone-import-bind-create","dns-dns-zone-import-bind-validate","dns-dns-zone-initiate-zone-transfer","dns-local-zone-file","dns-local-zone-record-names","dns-remote-zone-file","dns-zone-file-export","request-logs"] }, { name: "dns_domain", description: "DNS domain delegation and configuration settings", schemaComponents: ["dns_domain"], apiPaths: ["/api/config/namespaces/{metadata.namespace}/dns_domains","/api/config/namespaces/{metadata.namespace}/dns_domains/{metadata.name}","/api/config/namespaces/{namespace}/dns_domain/{name}/verify","/api/config/namespaces/{namespace}/dns_domains","/api/config/namespaces/{namespace}/dns_domains/{name}"], tier: "Standard", icon: "πŸ”—", descriptionShort: "DNS domain", supportsLogs: false, supportsMetrics: false, catalogCategories: ["verify","dns-domains"] }, { name: "dns_load_balancer", description: "DNS-based traffic distribution with geographic routing and failover", schemaComponents: ["dns_load_balancer"], apiPaths: ["/api/config/dns/namespaces/{metadata.namespace}/dns_load_balancers","/api/config/dns/namespaces/{metadata.namespace}/dns_load_balancers/{metadata.name}","/api/config/dns/namespaces/{namespace}/dns_load_balancers","/api/config/dns/namespaces/{namespace}/dns_load_balancers/{name}","/api/data/namespaces/{namespace}/dns_load_balancers/health_status","/api/data/namespaces/{namespace}/dns_load_balancers/pool_members_health_status","/api/data/namespaces/{namespace}/dns_load_balancers/{dns_lb_name}/dns_lb_pools/{dns_lb_pool_name}/health_status","/api/data/namespaces/{namespace}/dns_load_balancers/{dns_lb_name}/dns_lb_pools/{dns_lb_pool_name}/pool_members/{pool_member_address}/health_status_change_events","/api/data/namespaces/{namespace}/dns_load_balancers/{name}/health_status"], tier: "Standard", icon: "βš–οΈ", descriptionShort: "DNS load balancer", supportsLogs: true, supportsMetrics: true, dependencies: {"required":["dns_zone"],"optional":[]}, relationshipHints: ["dns_zone: Parent zone for DNS records"], catalogCategories: ["pool-members-health-status","dns-lb-pools-health-status","dns-lb-pools-pool-members-health-status-change-events"] }, ], useCases: ["Configure DNS load balancing","Manage DNS zones and domains","Configure DNS compliance policies","Manage resource record sets (RRSets)"], relatedDomains: ["virtual","network"], icon: "🌐", descriptionMedium: "Name resolution with zone transfers and health checks. Record types and delegation support.", requiresTier: "Standard", logoSvg: "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%232563EB'%3E%3Cpath d='M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-1 17.93c-3.95-.49-7-3.85-7-7.93 0-.62.08-1.21.21-1.79L9 15v1c0 1.1.9 2 2 2v1.93zm6.9-2.54c-.26-.81-1-1.39-1.9-1.39h-1v-3c0-.55-.45-1-1-1H8v-2h2c.55 0 1-.45 1-1V7h2c1.1 0 2-.9 2-2v-.41c2.93 1.19 5 4.06 5 7.41 0 2.08-.8 3.97-2.1 5.39z'/%3E%3C/svg%3E", cliMetadata: {"quickStart":{"command":"curl $F5XC_API_URL/api/config/namespaces/default/dns_domains -H 'Authorization: APIToken $F5XC_API_TOKEN'","description":"List all DNS domains configured in default namespace","expectedOutput":"JSON array of DNS domain objects"},"commonWorkflows":[{"name":"Create DNS Domain"}],"troubleshooting":[{}],"icon":"🌐"}, bestPractices: {"commonErrors":[{"code":400,"message":"Invalid DNS record format","resolution":"Validate record syntax (e.g., IP format for A records)","prevention":"Use DNS record validation before submission"},{"code":409,"message":"DNS zone already exists","resolution":"Use existing zone or delete before recreation","prevention":"Check zone existence before creation"},{"code":400,"message":"DNSSEC signing failed","resolution":"Verify DNSSEC key configuration and chain","prevention":"Test DNSSEC in staging before production"}],"securityNotes":["Enable DNSSEC for zone authentication","Use CAA records to restrict certificate issuance","Configure DNS query logging for security monitoring","Implement rate limiting on DNS responses"],"performanceTips":["Set appropriate TTL values based on change frequency","Use GeoDNS for global load distribution","Configure health-based failover for high availability","Enable DNS prefetching hints for faster resolution"]}, }, { domain: "managed_kubernetes", title: "Managed Kubernetes", description: "Role-based access controls with cluster-scoped permissions and namespace bindings. Pod security admission levels enforce baseline, restricted, or privileged profiles. Container registry credentials support private image pulls across hybrid deployments. Policy rules define resource verbs, groups, and non-resource URL access patterns.", descriptionShort: "Cluster RBAC, pod security, and container registries.", category: "Infrastructure", pathCount: 20, schemaCount: 94, complexity: "moderate", resources: [ { name: "mk8s_cluster", description: "Managed Kubernetes cluster configuration", tier: "Advanced", icon: "☸️", descriptionShort: "MK8s cluster", supportsLogs: true, supportsMetrics: true, dependencies: {"required":[],"optional":["k8s_cluster_role"]}, relationshipHints: ["k8s_cluster_role: RBAC roles for cluster access"] }, { name: "k8s_cluster_role", description: "Kubernetes cluster RBAC role configuration", schemaComponents: ["k8s_cluster_role"], apiPaths: ["/api/config/namespaces/{metadata.namespace}/k8s_cluster_roles","/api/config/namespaces/{metadata.namespace}/k8s_cluster_roles/{metadata.name}","/api/config/namespaces/{namespace}/k8s_cluster_roles","/api/config/namespaces/{namespace}/k8s_cluster_roles/{name}"], tier: "Advanced", icon: "πŸ‘€", descriptionShort: "K8s cluster role", supportsLogs: false, supportsMetrics: false, catalogCategories: ["k8s-cluster-roles"] }, { name: "container_registry", description: "Container image registry for workload images", schemaComponents: ["container_registry"], apiPaths: ["/api/config/namespaces/{metadata.namespace}/container_registrys","/api/config/namespaces/{metadata.namespace}/container_registrys/{metadata.name}","/api/config/namespaces/{namespace}/container_registrys","/api/config/namespaces/{namespace}/container_registrys/{name}"], tier: "Advanced", icon: "πŸ“¦", descriptionShort: "Container registry", supportsLogs: false, supportsMetrics: false, catalogCategories: ["container-registrys"] }, ], useCases: ["Manage XCKS (Managed Kubernetes) cluster RBAC and security","Configure pod security policies and admission controllers","Manage container registries for enterprise deployments","Integrate with external Kubernetes clusters (EKS, AKS, GKE)"], relatedDomains: ["container_services","sites","service_mesh"], icon: "βš™οΈ", descriptionMedium: "Kubernetes role bindings and admission policies. Registry integration for EKS, AKS, and GKE workloads.", requiresTier: "Advanced", logoSvg: "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%2364748B'%3E%3Cpath d='M19.14 12.94c.04-.31.06-.63.06-.94 0-.31-.02-.63-.06-.94l2.03-1.58a.49.49 0 0 0 .12-.61l-1.92-3.32a.488.488 0 0 0-.59-.22l-2.39.96c-.5-.38-1.03-.7-1.62-.94l-.36-2.54a.484.484 0 0 0-.48-.41h-3.84c-.24 0-.43.17-.47.41l-.36 2.54c-.59.24-1.13.57-1.62.94l-2.39-.96c-.22-.08-.47 0-.59.22L2.74 8.87c-.12.21-.08.47.12.61l2.03 1.58c-.04.31-.06.63-.06.94s.02.63.06.94l-2.03 1.58a.49.49 0 0 0-.12.61l1.92 3.32c.12.22.37.29.59.22l2.39-.96c.5.38 1.03.7 1.62.94l.36 2.54c.05.24.24.41.48.41h3.84c.24 0 .44-.17.47-.41l.36-2.54c.59-.24 1.13-.56 1.62-.94l2.39.96c.22.08.47 0 .59-.22l1.92-3.32c.12-.22.07-.47-.12-.61l-2.01-1.58zM12 15.6c-1.98 0-3.6-1.62-3.6-3.6s1.62-3.6 3.6-3.6 3.6 1.62 3.6 3.6-1.62 3.6-3.6 3.6z'/%3E%3C/svg%3E", bestPractices: {"commonErrors":[{"code":400,"message":"Invalid request body","resolution":"Validate JSON structure and required fields before submission","prevention":"Use schema validation from OpenAPI spec"},{"code":401,"message":"Authentication failed","resolution":"Verify API token is valid and not expired","prevention":"Use environment variables for token management"},{"code":403,"message":"Permission denied","resolution":"Check user role and namespace permissions","prevention":"Verify RBAC policies before operations"},{"code":404,"message":"Resource not found","resolution":"Verify resource name and namespace exist","prevention":"List resources before attempting operations"},{"code":409,"message":"Resource already exists","resolution":"Use unique name or delete existing resource","prevention":"Check existence before creation"},{"code":429,"message":"Rate limit exceeded","resolution":"Implement exponential backoff and retry logic","prevention":"Batch operations and add delays between requests"}],"securityNotes":["Always use HTTPS for all API communications","Store API tokens securely, never in source code","Rotate API tokens regularly following security policies"],"performanceTips":["Use pagination for large result sets","Batch related operations when possible","Cache read-only responses appropriately"]}, }, { domain: "marketplace", title: "Marketplace", description: "External connector infrastructure supporting direct, GRE, and encrypted tunnel modes with IKE parameter configuration and dead peer detection intervals. Cloud provider instances for Terraform automation and vendor partnerships. Service catalog entries with per-namespace activation flags, resource quotas, and administrative dashboard tile arrangement for operational workflows.", descriptionShort: "Add-on services, connectors, and TPM policies.", category: "Platform", pathCount: 36, schemaCount: 172, complexity: "moderate", resources: [ { name: "marketplace_item", description: "Marketplace item for service catalog", schemaComponents: ["pbac.addon_service"], apiPaths: ["/api/web/custom/namespaces/shared/addon_services/{name}","/api/web/namespaces/system/addon_services/{addon_service}/activation-status","/api/web/namespaces/system/addon_services/{addon_service}/all-activation-status","/api/web/namespaces/{namespace}/addon_services","/api/web/namespaces/{namespace}/addon_services/{name}"], tier: "Standard", icon: "πŸ›’", descriptionShort: "Marketplace item", supportsLogs: false, supportsMetrics: false, catalogCategories: ["custom-addon-services","addon-services-activation-status","addon-services-all-activation-status","addon-services"] }, { name: "subscription", description: "Subscription for service entitlements", schemaComponents: ["pbac.addon_subscription"], apiPaths: ["/api/web/namespaces/{metadata.namespace}/addon_subscriptions","/api/web/namespaces/{metadata.namespace}/addon_subscriptions/{metadata.name}","/api/web/namespaces/{namespace}/addon_subscriptions","/api/web/namespaces/{namespace}/addon_subscriptions/{name}"], tier: "Standard", icon: "πŸ’³", descriptionShort: "Subscription", supportsLogs: false, supportsMetrics: false, catalogCategories: ["addon-subscriptions"] }, ], useCases: ["Access third-party integrations and add-ons","Manage marketplace extensions","Configure Terraform and external integrations","Manage TPM policies"], relatedDomains: ["bigip","admin"], icon: "πŸͺ", descriptionMedium: "Third-party GRE and IPSec tunnel provisioning with DPD timers. Shared resource allocation across namespaces with tile placement controls.", requiresTier: "Advanced", logoSvg: "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23F97316'%3E%3Cpath d='M18.36 9l.6 3H5.04l.6-3h12.72M20 4H4v2h16V4zm0 3H4l-1 5v2h1v6h10v-6h4v6h2v-6h1v-2l-1-5zM6 18v-4h6v4H6z'/%3E%3C/svg%3E", bestPractices: {"commonErrors":[{"code":400,"message":"Invalid request body","resolution":"Validate JSON structure and required fields before submission","prevention":"Use schema validation from OpenAPI spec"},{"code":401,"message":"Authentication failed","resolution":"Verify API token is valid and not expired","prevention":"Use environment variables for token management"},{"code":403,"message":"Permission denied","resolution":"Check user role and namespace permissions","prevention":"Verify RBAC policies before operations"},{"code":404,"message":"Resource not found","resolution":"Verify resource name and namespace exist","prevention":"List resources before attempting operations"},{"code":409,"message":"Resource already exists","resolution":"Use unique name or delete existing resource","prevention":"Check existence before creation"},{"code":429,"message":"Rate limit exceeded","resolution":"Implement exponential backoff and retry logic","prevention":"Batch operations and add delays between requests"}],"securityNotes":["Always use HTTPS for all API communications","Store API tokens securely, never in source code","Rotate API tokens regularly following security policies"],"performanceTips":["Use pagination for large result sets","Batch related operations when possible","Cache read-only responses appropriately"]}, }, { domain: "network", title: "Network", description: "Routing table manipulation via peer state machines and path selection algorithms. Secure conduits between locations using IKE handshakes, cipher suites, and key exchanges. Segment attachments bridge hybrid topologies spanning cloud providers and on-premises infrastructure. SRv6 addressing, CIDR block matching, and advertisement controls direct traffic flows across distributed deployments with granular policy enforcement.", descriptionShort: "BGP peering, IPsec tunnels, and segment policies.", category: "Networking", pathCount: 81, schemaCount: 436, complexity: "advanced", resources: [ { name: "virtual_network", description: "Virtual network for site connectivity and segmentation", schemaComponents: ["virtual_network"], apiPaths: ["/api/config/namespaces/{metadata.namespace}/virtual_networks","/api/config/namespaces/{metadata.namespace}/virtual_networks/{metadata.name}","/api/config/namespaces/{namespace}/virtual_networks","/api/config/namespaces/{namespace}/virtual_networks/{name}"], tier: "Standard", icon: "πŸ”—", descriptionShort: "Virtual network", supportsLogs: false, supportsMetrics: false, dependencies: {"required":[],"optional":["network_connector"]}, relationshipHints: ["network_connector: Connect to external networks"], catalogCategories: ["virtual-networks"] }, { name: "network_connector", description: "Network connector for site-to-site or cloud connectivity", schemaComponents: ["network_connector"], apiPaths: ["/api/config/namespaces/{metadata.namespace}/network_connectors","/api/config/namespaces/{metadata.namespace}/network_connectors/{metadata.name}","/api/config/namespaces/{namespace}/network_connectors","/api/config/namespaces/{namespace}/network_connectors/{name}"], tier: "Advanced", icon: "πŸ”Œ", descriptionShort: "Network connector", supportsLogs: false, supportsMetrics: true, dependencies: {"required":["virtual_network"],"optional":[]}, relationshipHints: ["virtual_network: Network to connect"], catalogCategories: ["network-connectors"] }, { name: "site_mesh_group", description: "Mesh connectivity configuration between multiple sites", tier: "Advanced", icon: "πŸ•ΈοΈ", descriptionShort: "Site mesh group", supportsLogs: false, supportsMetrics: true, dependencies: {"required":["site"],"optional":[]}, relationshipHints: ["site: Sites to include in mesh connectivity"] }, ], useCases: ["Configure BGP routing and ASN management","Manage IPsec tunnels and IKE phases","Configure network connectors and routes","Manage SRv6 and subnetting","Define segment connections and policies","Configure IP prefix sets"], relatedDomains: ["virtual","network_security","dns"], icon: "πŸ”Œ", descriptionMedium: "Border gateway protocol with ASN management and autonomous system relationships. Site-to-site VPN linking datacenters through encrypted channels.", requiresTier: "Advanced", logoSvg: "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%233B82F6'%3E%3Cpath d='M16 9v4.66l-3.5 3.51V19h-1v-1.83L8 13.65V9h8m0-6h-2v4h-4V3H8v4H6v6.5l3.5 3.5v5h5v-5l3.5-3.5V7h-2V3z'/%3E%3C/svg%3E", bestPractices: {"commonErrors":[{"code":400,"message":"Overlapping IP ranges","resolution":"Review CIDR blocks for conflicts","prevention":"Plan IP addressing before network creation"},{"code":409,"message":"Network already attached to site","resolution":"Detach network before deletion or reassignment","prevention":"Check network attachments before operations"}],"securityNotes":["Use network segmentation for security isolation","Configure network policies for east-west traffic","Enable encryption for inter-site traffic"],"performanceTips":["Plan network topology to minimize latency","Use direct connect for high-bandwidth workloads","Configure appropriate MTU values"]}, }, { domain: "network_security", title: "Network Security", description: "Perimeter defense through firewall configurations, address translation, and ingress/egress policies. Traffic steering directs packets according to defined criteria including origin, target, and service type. Segment boundaries create workload isolation zones while HTTP intermediaries manage client requests to external destinations. Port mappings employ static and dynamic address pools for flexible translation scenarios across multi-tenant environments.", descriptionShort: "NAT policies, firewalls, and segment connections.", category: "Security", pathCount: 62, schemaCount: 339, complexity: "advanced", resources: [ { name: "network_policy", description: "Network security policy for traffic filtering", schemaComponents: ["network_policy"], apiPaths: ["/api/config/namespaces/{metadata.namespace}/network_policys","/api/config/namespaces/{metadata.namespace}/network_policys/{metadata.name}","/api/config/namespaces/{namespace}/network_policys","/api/config/namespaces/{namespace}/network_policys/{name}","/api/data/namespaces/{namespace}/network_policy/hits"], tier: "Standard", icon: "πŸ”’", descriptionShort: "Network policy", supportsLogs: true, supportsMetrics: false, catalogCategories: ["network-policys"] }, { name: "forward_proxy_policy", description: "Forward proxy policy for outbound traffic control", schemaComponents: ["views.forward_proxy_policy"], apiPaths: ["/api/config/namespaces/{metadata.namespace}/forward_proxy_policys","/api/config/namespaces/{metadata.namespace}/forward_proxy_policys/{metadata.name}","/api/config/namespaces/{namespace}/forward_proxy_policys","/api/config/namespaces/{namespace}/forward_proxy_policys/{name}","/api/data/namespaces/{namespace}/forward_proxy_policy/hits"], tier: "Advanced", icon: "➑️", descriptionShort: "Forward proxy policy", supportsLogs: true, supportsMetrics: true, catalogCategories: ["forward-proxy-policys"] }, { name: "network_firewall", description: "Network firewall for layer 3/4 traffic protection", schemaComponents: ["network_firewall"], apiPaths: ["/api/config/namespaces/{metadata.namespace}/network_firewalls","/api/config/namespaces/{metadata.namespace}/network_firewalls/{metadata.name}","/api/config/namespaces/{namespace}/network_firewalls","/api/config/namespaces/{namespace}/network_firewalls/{name}"], tier: "Standard", icon: "🧱", descriptionShort: "Network firewall", supportsLogs: true, supportsMetrics: true, catalogCategories: ["network-firewalls"] }, ], useCases: ["Configure network firewall and ACL policies","Manage NAT policies and port forwarding","Configure policy-based routing","Define network segments and policies","Configure forward proxy policies"], relatedDomains: ["virtual","api","network"], icon: "πŸ”’", descriptionMedium: "Firewall rules with routing decisions based on source, destination, or protocol. Segmentation isolates workloads while outbound proxies govern access.", requiresTier: "Advanced", logoSvg: "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23F59E0B'%3E%3Cpath d='M18 8h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zm-6 9c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zm3.1-9H8.9V6c0-1.71 1.39-3.1 3.1-3.1 1.71 0 3.1 1.39 3.1 3.1v2z'/%3E%3C/svg%3E", bestPractices: {"commonErrors":[{"code":400,"message":"Invalid request body","resolution":"Validate JSON structure and required fields before submission","prevention":"Use schema validation from OpenAPI spec"},{"code":401,"message":"Authentication failed","resolution":"Verify API token is valid and not expired","prevention":"Use environment variables for token management"},{"code":403,"message":"Permission denied","resolution":"Check user role and namespace permissions","prevention":"Verify RBAC policies before operations"},{"code":404,"message":"Resource not found","resolution":"Verify resource name and namespace exist","prevention":"List resources before attempting operations"},{"code":409,"message":"Resource already exists","resolution":"Use unique name or delete existing resource","prevention":"Check existence before creation"},{"code":429,"message":"Rate limit exceeded","resolution":"Implement exponential backoff and retry logic","prevention":"Batch operations and add delays between requests"}],"securityNotes":["Always use HTTPS for all API communications","Store API tokens securely, never in source code","Rotate API tokens regularly following security policies"],"performanceTips":["Use pagination for large result sets","Batch related operations when possible","Cache read-only responses appropriately"]}, }, { domain: "nginx_one", title: "Nginx One", description: "Dataplane server registration with health status tracking and location awareness. Service discovery bindings for dynamic upstream resolution. Cloud service gateway integration for hybrid deployments. WAF policy attachment and instance-level security controls.", descriptionShort: "NGINX Plus instances and dataplane servers.", category: "Platform", pathCount: 13, schemaCount: 59, complexity: "simple", resources: [ { name: "nginx_config", description: "NGINX configuration for proxy settings", schemaComponents: ["nginx.one.nginx_csg"], apiPaths: ["/api/config/namespaces/{namespace}/nginx_csgs","/api/config/namespaces/{namespace}/nginx_csgs/{name}"], tier: "Advanced", icon: "βš™οΈ", descriptionShort: "NGINX config", supportsLogs: true, supportsMetrics: true, dependencies: {"required":[],"optional":["nginx_upstream"]}, relationshipHints: ["nginx_upstream: Backend server configuration"], catalogCategories: ["nginx-csgs"] }, { name: "nginx_upstream", description: "NGINX upstream for backend server pools", tier: "Advanced", icon: "🎯", descriptionShort: "NGINX upstream", supportsLogs: false, supportsMetrics: true }, ], useCases: ["Manage NGINX One platform integrations","Configure NGINX Plus instances","Integrate NGINX configuration management"], relatedDomains: ["marketplace"], icon: "🟒", descriptionMedium: "Instance discovery, WAF integration, and service mesh connectivity. Subscription lifecycle and configuration synchronization.", requiresTier: "Advanced", logoSvg: "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%2322C55E'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3C/svg%3E", bestPractices: {"commonErrors":[{"code":400,"message":"Invalid request body","resolution":"Validate JSON structure and required fields before submission","prevention":"Use schema validation from OpenAPI spec"},{"code":401,"message":"Authentication failed","resolution":"Verify API token is valid and not expired","prevention":"Use environment variables for token management"},{"code":403,"message":"Permission denied","resolution":"Check user role and namespace permissions","prevention":"Verify RBAC policies before operations"},{"code":404,"message":"Resource not found","resolution":"Verify resource name and namespace exist","prevention":"List resources before attempting operations"},{"code":409,"message":"Resource already exists","resolution":"Use unique name or delete existing resource","prevention":"Check existence before creation"},{"code":429,"message":"Rate limit exceeded","resolution":"Implement exponential backoff and retry logic","prevention":"Batch operations and add delays between requests"}],"securityNotes":["Always use HTTPS for all API communications","Store API tokens securely, never in source code","Rotate API tokens regularly following security policies"],"performanceTips":["Use pagination for large result sets","Batch related operations when possible","Cache read-only responses appropriately"]}, }, { domain: "object_storage", title: "Object Storage", description: "Blob management for application component delivery across namespaces. Time-limited download links with cryptographic signing protect asset retrieval. Version-controlled packages organized by operating system type support artifact discovery. Query filtering by name, type, and release number enables programmatic access to integrator libraries and protection modules for mobile deployments.", descriptionShort: "Mobile SDK assets, versioned binaries, and app shield files.", category: "Platform", pathCount: 9, schemaCount: 17, complexity: "simple", resources: [ { name: "object_store", description: "Object store for blob storage management", schemaComponents: ["stored_object"], apiPaths: ["/api/object_store/namespaces/{namespace}/stored_objects/mobile-app-shield","/api/object_store/namespaces/{namespace}/stored_objects/mobile-app-shield/{name}/{version}","/api/object_store/namespaces/{namespace}/stored_objects/mobile-integrator","/api/object_store/namespaces/{namespace}/stored_objects/mobile-integrator/{name}/{version}","/api/object_store/namespaces/{namespace}/stored_objects/mobile-sdk-self-serve","/api/object_store/namespaces/{namespace}/stored_objects/mobile-sdk-self-serve/{name}/{version}","/api/object_store/namespaces/{namespace}/stored_objects/{object_type}","/api/object_store/namespaces/{namespace}/stored_objects/{object_type}/{name}","/api/object_store/namespaces/{namespace}/stored_objects/{object_type}/{name}/{version}"], tier: "Standard", icon: "πŸ’Ύ", descriptionShort: "Object store", supportsLogs: true, supportsMetrics: true, dependencies: {"required":[],"optional":["bucket"]}, relationshipHints: ["bucket: Storage buckets in this store"], catalogCategories: ["object-store-mobile-app-shield","object-store-mobile-integrator","object-store-mobile-sdk-self-serve","object-store"] }, { name: "bucket", description: "Storage bucket for object storage", tier: "Standard", icon: "πŸ“¦", descriptionShort: "Bucket", supportsLogs: true, supportsMetrics: true, dependencies: {"required":["object_store"],"optional":[]}, relationshipHints: ["object_store: Parent object store"] }, ], useCases: ["Manage object storage services","Configure stored objects and buckets","Manage storage policies"], relatedDomains: ["marketplace"], icon: "πŸ—„οΈ", descriptionMedium: "Versioned library distribution for mobile app integrators. Presigned URLs enable secure downloads with OS-specific builds for iOS and Android.", requiresTier: "Advanced", logoSvg: "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%2378716C'%3E%3Cpath d='M20 2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM8 20H4v-8h4v8zm6 0h-4v-8h4v8zm6 0h-4v-8h4v8zm0-10H4V4h16v6z'/%3E%3C/svg%3E", bestPractices: {"commonErrors":[{"code":400,"message":"Invalid request body","resolution":"Validate JSON structure and required fields before submission","prevention":"Use schema validation from OpenAPI spec"},{"code":401,"message":"Authentication failed","resolution":"Verify API token is valid and not expired","prevention":"Use environment variables for token management"},{"code":403,"message":"Permission denied","resolution":"Check user role and namespace permissions","prevention":"Verify RBAC policies before operations"},{"code":404,"message":"Resource not found","resolution":"Verify resource name and namespace exist","prevention":"List resources before attempting operations"},{"code":409,"message":"Resource already exists","resolution":"Use unique name or delete existing resource","prevention":"Check existence before creation"},{"code":429,"message":"Rate limit exceeded","resolution":"Implement exponential backoff and retry logic","prevention":"Batch operations and add delays between requests"}],"securityNotes":["Always use HTTPS for all API communications","Store API tokens securely, never in source code","Rotate API tokens regularly following security policies"],"performanceTips":["Use pagination for large result sets","Batch related operations when possible","Cache read-only responses appropriately"]}, }, { domain: "observability", title: "Observability", description: "Telemetry systems execute scheduled availability checks from distributed AWS locations worldwide. Response code validation and timing metrics feed into historical trend analysis. DNS resolution accuracy verification ensures name service reliability. Certificate lifecycle tracking generates expiration warnings before outages occur. Regional probe distribution provides geographic coverage insights. Health summaries aggregate results into actionable dashboards with configurable alerting thresholds.", descriptionShort: "Synthetic health checks and DNS resolution validation.", category: "Operations", pathCount: 56, schemaCount: 143, complexity: "moderate", resources: [ { name: "log_receiver", description: "Log receiver for centralized log collection", tier: "Standard", icon: "πŸ“", descriptionShort: "Log receiver", supportsLogs: false, supportsMetrics: false }, { name: "metrics_receiver", description: "Metrics receiver for centralized metrics collection", tier: "Standard", icon: "πŸ“Š", descriptionShort: "Metrics receiver", supportsLogs: false, supportsMetrics: false }, { name: "alert_policy", description: "Alert policy for monitoring and notification", tier: "Standard", icon: "πŸ””", descriptionShort: "Alert policy", supportsLogs: false, supportsMetrics: false }, ], useCases: ["Configure synthetic monitoring","Define monitoring and testing policies","Manage observability dashboards"], relatedDomains: ["statistics","support"], icon: "πŸ“Š", descriptionMedium: "HTTP availability probes with latency measurement. Certificate expiration alerts and global status dashboards for infrastructure health.", requiresTier: "Standard", logoSvg: "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%233B82F6'%3E%3Cpath d='M5 9.2h3V19H5V9.2zM10.6 5h2.8v14h-2.8V5zm5.6 8H19v6h-2.8v-6z'/%3E%3C/svg%3E", bestPractices: {"commonErrors":[{"code":400,"message":"Invalid request body","resolution":"Validate JSON structure and required fields before submission","prevention":"Use schema validation from OpenAPI spec"},{"code":401,"message":"Authentication failed","resolution":"Verify API token is valid and not expired","prevention":"Use environment variables for token management"},{"code":403,"message":"Permission denied","resolution":"Check user role and namespace permissions","prevention":"Verify RBAC policies before operations"},{"code":404,"message":"Resource not found","resolution":"Verify resource name and namespace exist","prevention":"List resources before attempting operations"},{"code":409,"message":"Resource already exists","resolution":"Use unique name or delete existing resource","prevention":"Check existence before creation"},{"code":429,"message":"Rate limit exceeded","resolution":"Implement exponential backoff and retry logic","prevention":"Batch operations and add delays between requests"}],"securityNotes":["Always use HTTPS for all API communications","Store API tokens securely, never in source code","Rotate API tokens regularly following security policies"],"performanceTips":["Use pagination for large result sets","Batch related operations when possible","Cache read-only responses appropriately"]}, }, { domain: "other", title: "Other", description: "F5 Distributed Cloud Other", descriptionShort: "Other", category: "Other", pathCount: 4, schemaCount: 38, complexity: "simple", resources: [ ], useCases: [], icon: "πŸ“", descriptionMedium: "F5 Distributed Cloud Other", requiresTier: "Standard", logoSvg: "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%2364748B'%3E%3Cpath d='M19.14 12.94c.04-.31.06-.63.06-.94 0-.31-.02-.63-.06-.94l2.03-1.58a.49.49 0 0 0 .12-.61l-1.92-3.32a.488.488 0 0 0-.59-.22l-2.39.96c-.5-.38-1.03-.7-1.62-.94l-.36-2.54a.484.484 0 0 0-.48-.41h-3.84c-.24 0-.43.17-.47.41l-.36 2.54c-.59.24-1.13.57-1.62.94l-2.39-.96c-.22-.08-.47 0-.59.22L2.74 8.87c-.12.21-.08.47.12.61l2.03 1.58c-.04.31-.06.63-.06.94s.02.63.06.94l-2.03 1.58a.49.49 0 0 0-.12.61l1.92 3.32c.12.22.37.29.59.22l2.39-.96c.5.38 1.03.7 1.62.94l.36 2.54c.05.24.24.41.48.41h3.84c.24 0 .44-.17.47-.41l.36-2.54c.59-.24 1.13-.56 1.62-.94l2.39.96c.22.08.47 0 .59-.22l1.92-3.32c.12-.22.07-.47-.12-.61l-2.01-1.58zM12 15.6c-1.98 0-3.6-1.62-3.6-3.6s1.62-3.6 3.6-3.6 3.6 1.62 3.6 3.6-1.62 3.6-3.6 3.6z'/%3E%3C/svg%3E", bestPractices: {"commonErrors":[{"code":400,"message":"Invalid request body","resolution":"Validate JSON structure and required fields before submission","prevention":"Use schema validation from OpenAPI spec"},{"code":401,"message":"Authentication failed","resolution":"Verify API token is valid and not expired","prevention":"Use environment variables for token management"},{"code":403,"message":"Permission denied","resolution":"Check user role and namespace permissions","prevention":"Verify RBAC policies before operations"},{"code":404,"message":"Resource not found","resolution":"Verify resource name and namespace exist","prevention":"List resources before attempting operations"},{"code":409,"message":"Resource already exists","resolution":"Use unique name or delete existing resource","prevention":"Check existence before creation"},{"code":429,"message":"Rate limit exceeded","resolution":"Implement exponential backoff and retry logic","prevention":"Batch operations and add delays between requests"}],"securityNotes":["Always use HTTPS for all API communications","Store API tokens securely, never in source code","Rotate API tokens regularly following security policies"],"performanceTips":["Use pagination for large result sets","Batch related operations when possible","Cache read-only responses appropriately"]}, }, { domain: "rate_limiting", title: "Rate Limiting", description: "Threshold-based request blocking using sliding window calculations. Burst smoothing algorithms maintain sustained throughput without exceeding defined maximums. Per-connection controls apply granular restrictions by protocol type. Automatic block actions trigger when request counts surpass configured limits within specified intervals.", descriptionShort: "Request throttling, quotas, and policer rules.", category: "Networking", pathCount: 12, schemaCount: 70, complexity: "simple", resources: [ { name: "rate_limiter", description: "Rate limiter for traffic throttling and protection", schemaComponents: ["rate_limiter"], apiPaths: ["/api/config/namespaces/{metadata.namespace}/rate_limiters","/api/config/namespaces/{metadata.namespace}/rate_limiters/{metadata.name}","/api/config/namespaces/{namespace}/rate_limiters","/api/config/namespaces/{namespace}/rate_limiters/{name}"], tier: "Standard", icon: "⏱️", descriptionShort: "Rate limiter", supportsLogs: true, supportsMetrics: true, dependencies: {"required":[],"optional":["rate_limiter_policy"]}, relationshipHints: ["rate_limiter_policy: Detailed rate limiting rules"], catalogCategories: ["rate-limiters"] }, { name: "rate_limiter_policy", description: "Rate limiter policy with detailed throttling rules", schemaComponents: ["policer"], apiPaths: ["/api/config/namespaces/{metadata.namespace}/policers","/api/config/namespaces/{metadata.namespace}/policers/{metadata.name}","/api/config/namespaces/{namespace}/policers","/api/config/namespaces/{namespace}/policers/{name}"], tier: "Standard", icon: "πŸ“‹", descriptionShort: "Rate limiter policy", supportsLogs: true, supportsMetrics: true, catalogCategories: ["policers"] }, { name: "rate_limit_threshold", description: "Rate limit threshold configuration for traffic control", schemaComponents: ["protocol_policer"], apiPaths: ["/api/config/namespaces/{metadata.namespace}/protocol_policers","/api/config/namespaces/{metadata.namespace}/protocol_policers/{metadata.name}","/api/config/namespaces/{namespace}/protocol_policers","/api/config/namespaces/{namespace}/protocol_policers/{name}"], tier: "Standard", icon: "πŸ“Š", descriptionShort: "Rate limit threshold", supportsLogs: false, supportsMetrics: true, catalogCategories: ["protocol-policers"] }, ], useCases: ["Configure rate limiter policies","Manage policer configurations","Control traffic flow and queuing"], relatedDomains: ["virtual","network_security"], icon: "⏱️", descriptionMedium: "Time-based quota enforcement with configurable windows in hours, minutes, or seconds. Protocol-specific controls for traffic shaping.", requiresTier: "Advanced", logoSvg: "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23F97316'%3E%3Cpath d='M15 1H9v2h6V1zm-4 13h2V8h-2v6zm8.03-6.61 1.42-1.42c-.43-.51-.9-.99-1.41-1.41l-1.42 1.42C16.07 4.74 14.12 4 12 4c-4.97 0-9 4.03-9 9s4.02 9 9 9 9-4.03 9-9c0-2.12-.74-4.07-1.97-5.61zM12 20c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7z'/%3E%3C/svg%3E", bestPractices: {"commonErrors":[{"code":400,"message":"Invalid request body","resolution":"Validate JSON structure and required fields before submission","prevention":"Use schema validation from OpenAPI spec"},{"code":401,"message":"Authentication failed","resolution":"Verify API token is valid and not expired","prevention":"Use environment variables for token management"},{"code":403,"message":"Permission denied","resolution":"Check user role and namespace permissions","prevention":"Verify RBAC policies before operations"},{"code":404,"message":"Resource not found","resolution":"Verify resource name and namespace exist","prevention":"List resources before attempting operations"},{"code":409,"message":"Resource already exists","resolution":"Use unique name or delete existing resource","prevention":"Check existence before creation"},{"code":429,"message":"Rate limit exceeded","resolution":"Implement exponential backoff and retry logic","prevention":"Batch operations and add delays between requests"}],"securityNotes":["Always use HTTPS for all API communications","Store API tokens securely, never in source code","Rotate API tokens regularly following security policies"],"performanceTips":["Use pagination for large result sets","Batch related operations when possible","Cache read-only responses appropriately"]}, }, { domain: "secops_and_incident_response", title: "Secops And Incident Response", description: "User threat assessment with configurable risk thresholds and mitigation rules. Detection covers high, medium, and low threat levels with corresponding actions like blocking, rate limiting, or alerting. Mitigation policies link to load balancers for real-time enforcement against identified bad actors.", descriptionShort: "Threat detection, user risk scoring, and automated blocking.", category: "Security", pathCount: 4, schemaCount: 32, complexity: "simple", resources: [ { name: "mitigation_policy", description: "Mitigation policy for incident response", schemaComponents: ["malicious_user_mitigation"], apiPaths: ["/api/config/namespaces/{metadata.namespace}/malicious_user_mitigations","/api/config/namespaces/{metadata.namespace}/malicious_user_mitigations/{metadata.name}","/api/config/namespaces/{namespace}/malicious_user_mitigations","/api/config/namespaces/{namespace}/malicious_user_mitigations/{name}"], tier: "Advanced", icon: "πŸ›‘οΈ", descriptionShort: "Mitigation policy", supportsLogs: true, supportsMetrics: false, catalogCategories: ["malicious-user-mitigations"] }, { name: "malicious_user_rule", description: "Malicious user rule for threat mitigation", schemaComponents: ["malicious_user_mitigation"], apiPaths: ["/api/config/namespaces/{metadata.namespace}/malicious_user_mitigations","/api/config/namespaces/{metadata.namespace}/malicious_user_mitigations/{metadata.name}","/api/config/namespaces/{namespace}/malicious_user_mitigations","/api/config/namespaces/{namespace}/malicious_user_mitigations/{name}"], tier: "Advanced", icon: "🚨", descriptionShort: "Malicious user rule", supportsLogs: true, supportsMetrics: false, catalogCategories: ["malicious-user-mitigations"] }, ], useCases: ["Configure automated threat mitigation policies","Define rules for malicious user detection","Manage incident response workflows","Apply blocking or rate limiting to threats"], relatedDomains: ["bot_defense","virtual","network_security"], icon: "🚨", descriptionMedium: "Malicious user mitigation with threat level classification. Automated response actions for suspicious behavior patterns.", requiresTier: "Advanced", logoSvg: "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23DC2626'%3E%3Cpath d='M12 2L4 5v6.09c0 5.05 3.41 9.76 8 10.91 4.59-1.15 8-5.86 8-10.91V5l-8-3zm6 9.09c0 4-2.55 7.7-6 8.83-3.45-1.13-6-4.82-6-8.83V6.31l6-2.25 6 2.25v4.78zM11 7h2v6h-2zm0 8h2v2h-2z'/%3E%3C/svg%3E", bestPractices: {"commonErrors":[{"code":400,"message":"Invalid request body","resolution":"Validate JSON structure and required fields before submission","prevention":"Use schema validation from OpenAPI spec"},{"code":401,"message":"Authentication failed","resolution":"Verify API token is valid and not expired","prevention":"Use environment variables for token management"},{"code":403,"message":"Permission denied","resolution":"Check user role and namespace permissions","prevention":"Verify RBAC policies before operations"},{"code":404,"message":"Resource not found","resolution":"Verify resource name and namespace exist","prevention":"List resources before attempting operations"},{"code":409,"message":"Resource already exists","resolution":"Use unique name or delete existing resource","prevention":"Check existence before creation"},{"code":429,"message":"Rate limit exceeded","resolution":"Implement exponential backoff and retry logic","prevention":"Batch operations and add delays between requests"}],"securityNotes":["Always use HTTPS for all API communications","Store API tokens securely, never in source code","Rotate API tokens regularly following security policies"],"performanceTips":["Use pagination for large result sets","Batch related operations when possible","Cache read-only responses appropriately"]}, }, { domain: "service_mesh", title: "Service Mesh", description: "NFV service lifecycle and software version tracking. Machine learning-driven classification with security risk assessment and PII detection. Override management for application behavior customization. Sidecar proxy orchestration with automatic mTLS certificate rotation and policy enforcement across distributed workloads.", descriptionShort: "Microservice routing and sidecar configuration.", category: "Infrastructure", pathCount: 38, schemaCount: 238, complexity: "advanced", resources: [ { name: "endpoint", description: "Service mesh endpoint for traffic routing", schemaComponents: ["endpoint"], apiPaths: ["/api/config/namespaces/{metadata.namespace}/endpoints","/api/config/namespaces/{metadata.namespace}/endpoints/{metadata.name}","/api/config/namespaces/{namespace}/endpoints","/api/config/namespaces/{namespace}/endpoints/{name}"], tier: "Advanced", icon: "🎯", descriptionShort: "Endpoint", supportsLogs: true, supportsMetrics: true, catalogCategories: ["endpoints"] }, { name: "origin_pool", description: "Backend server group for load balancer traffic distribution", tier: "Standard", icon: "🎯", descriptionShort: "Origin pool", supportsLogs: false, supportsMetrics: true, dependencies: {"required":[],"optional":["healthcheck"]}, relationshipHints: ["healthcheck: Monitor origin server health"] }, { name: "service_discovery", description: "Service discovery configuration for dynamic endpoints", tier: "Advanced", icon: "πŸ”", descriptionShort: "Service discovery", supportsLogs: false, supportsMetrics: false }, ], useCases: ["Configure service mesh connectivity","Manage endpoint discovery and routing","Configure NFV services","Define application settings and types"], relatedDomains: ["managed_kubernetes","container_services","virtual"], icon: "πŸ•ΈοΈ", descriptionMedium: "Application type definitions with discovery and learned schema analysis. Traffic pattern inference for intelligent request handling.", requiresTier: "Advanced", logoSvg: "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23A855F7'%3E%3Cpath d='M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-1 17.93c-3.95-.49-7-3.85-7-7.93 0-.62.08-1.21.21-1.79L9 15v1c0 1.1.9 2 2 2v1.93zm6.9-2.54c-.26-.81-1-1.39-1.9-1.39h-1v-3c0-.55-.45-1-1-1H8v-2h2c.55 0 1-.45 1-1V7h2c1.1 0 2-.9 2-2v-.41c2.93 1.19 5 4.06 5 7.41 0 2.08-.8 3.97-2.1 5.39z'/%3E%3C/svg%3E", bestPractices: {"commonErrors":[{"code":400,"message":"Invalid request body","resolution":"Validate JSON structure and required fields before submission","prevention":"Use schema validation from OpenAPI spec"},{"code":401,"message":"Authentication failed","resolution":"Verify API token is valid and not expired","prevention":"Use environment variables for token management"},{"code":403,"message":"Permission denied","resolution":"Check user role and namespace permissions","prevention":"Verify RBAC policies before operations"},{"code":404,"message":"Resource not found","resolution":"Verify resource name and namespace exist","prevention":"List resources before attempting operations"},{"code":409,"message":"Resource already exists","resolution":"Use unique name or delete existing resource","prevention":"Check existence before creation"},{"code":429,"message":"Rate limit exceeded","resolution":"Implement exponential backoff and retry logic","prevention":"Batch operations and add delays between requests"}],"securityNotes":["Always use HTTPS for all API communications","Store API tokens securely, never in source code","Rotate API tokens regularly following security policies"],"performanceTips":["Use pagination for large result sets","Batch related operations when possible","Cache read-only responses appropriately"]}, }, { domain: "shape", title: "Shape", description: "Bot infrastructure policies with deployment tracking and subscription management. SafeAP protection against credential stuffing and account takeover. Mobile application shielding through SDK integration with OS-specific configurations. Real-time threat intelligence updates and automated response actions based on risk scoring and traffic patterns.", descriptionShort: "Bot defense, fraud prevention, and client integrity.", category: "Security", pathCount: 287, schemaCount: 876, complexity: "advanced", resources: [ { name: "shape_app_firewall", description: "Shape application firewall for advanced protection", tier: "Advanced", icon: "πŸ›‘οΈ", descriptionShort: "Shape WAF", supportsLogs: true, supportsMetrics: true }, { name: "shape_recognizer", description: "Shape recognizer for traffic pattern analysis", schemaComponents: ["shape.recognize"], apiPaths: ["/api/shape/recognize/namespaces/system/recognize/addon/dashboard/channel","/api/shape/recognize/namespaces/system/recognize/addon/dashboard/conversion","/api/shape/recognize/namespaces/system/recognize/addon/dashboard/enjoy","/api/shape/recognize/namespaces/system/recognize/addon/dashboard/friction_aggregation","/api/shape/recognize/namespaces/system/recognize/addon/dashboard/friction_histogram","/api/shape/recognize/namespaces/system/recognize/addon/dashboard/health","/api/shape/recognize/namespaces/system/recognize/addon/dashboard/lift","/api/shape/recognize/namespaces/system/recognize/addon/dashboard/rescue","/api/shape/recognize/namespaces/system/recognize/addon/dashboard/top_reason_code","/api/shape/recognize/namespaces/system/recognize/addon/provision","/api/shape/recognize/namespaces/system/recognize/addon/state","/api/shape/recognize/namespaces/system/recognize/addon/subscribe","/api/shape/recognize/namespaces/system/recognize/addon/unsubscribe","/api/shape/recognize/namespaces/system/recognize/addon/validate/src_tag_injection"], tier: "Advanced", icon: "πŸ”", descriptionShort: "Shape recognizer", supportsLogs: true, supportsMetrics: true, catalogCategories: ["shape-recognize-recognize-addon-dashboard-channel","shape-recognize-recognize-addon-dashboard-conversion","shape-recognize-recognize-addon-dashboard-enjoy","shape-recognize-recognize-addon-dashboard-friction-aggregation","shape-recognize-recognize-addon-dashboard-friction-histogram","shape-recognize-recognize-addon-dashboard-health","shape-recognize-recognize-addon-dashboard-lift","shape-recognize-recognize-addon-dashboard-rescue","shape-recognize-recognize-addon-dashboard-top-reason-code","shape-recognize-recognize-addon-provision","shape-recognize-recognize-addon-state","shape-recognize-recognize-addon-subscribe","shape-recognize-recognize-addon-unsubscribe","shape-recognize-recognize-addon-validate-src-tag-injection"] }, ], useCases: ["Configure Shape Security policies","Manage bot and threat prevention","Configure SafeAP policies","Enable threat recognition"], relatedDomains: ["bot_defense","virtual"], icon: "🎭", descriptionMedium: "Threat recognition with behavioral analysis and device fingerprinting. Mobile SDK integration for application shielding.", requiresTier: "Advanced", logoSvg: "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23A855F7'%3E%3Cpath d='M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm-5-9c.83 0 1.5-.67 1.5-1.5S7.83 8 7 8s-1.5.67-1.5 1.5S6.17 11 7 11zm10 0c.83 0 1.5-.67 1.5-1.5S17.83 8 17 8s-1.5.67-1.5 1.5.67 1.5 1.5 1.5zM12 17.5c2.33 0 4.31-1.46 5.11-3.5H6.89c.8 2.04 2.78 3.5 5.11 3.5z'/%3E%3C/svg%3E", bestPractices: {"commonErrors":[{"code":400,"message":"Invalid request body","resolution":"Validate JSON structure and required fields before submission","prevention":"Use schema validation from OpenAPI spec"},{"code":401,"message":"Authentication failed","resolution":"Verify API token is valid and not expired","prevention":"Use environment variables for token management"},{"code":403,"message":"Permission denied","resolution":"Check user role and namespace permissions","prevention":"Verify RBAC policies before operations"},{"code":404,"message":"Resource not found","resolution":"Verify resource name and namespace exist","prevention":"List resources before attempting operations"},{"code":409,"message":"Resource already exists","resolution":"Use unique name or delete existing resource","prevention":"Check existence before creation"},{"code":429,"message":"Rate limit exceeded","resolution":"Implement exponential backoff and retry logic","prevention":"Batch operations and add delays between requests"}],"securityNotes":["Always use HTTPS for all API communications","Store API tokens securely, never in source code","Rotate API tokens regularly following security policies"],"performanceTips":["Use pagination for large result sets","Batch related operations when possible","Cache read-only responses appropriately"]}, }, { domain: "sites", title: "Sites", description: "Multi-cloud node provisioning spanning major public cloud environments including TGW, VNet, and VPC architectures. VPN tunnel configuration handles secure connectivity while IP prefix management controls address allocation. Customer edge deployments support external container orchestration platforms. Geographic distribution with resource sharing enables consistent policy enforcement across deployment points.", descriptionShort: "Cloud and edge node deployments.", category: "Infrastructure", pathCount: 133, schemaCount: 940, complexity: "advanced", resources: [ { name: "site", description: "Physical or cloud deployment location for edge services", schemaComponents: ["graph.site","site"], apiPaths: ["/api/config/namespaces/{metadata.namespace}/sites/{metadata.name}","/api/config/namespaces/{namespace}/sites","/api/config/namespaces/{namespace}/sites/{name}","/api/config/namespaces/{namespace}/sites/{name}/local-kubeconfig","/api/config/namespaces/{namespace}/sites/{name}/local-kubeconfigs","/api/config/namespaces/{namespace}/sites/{name}/upgrade_os","/api/config/namespaces/{namespace}/sites/{name}/upgrade_sw","/api/config/namespaces/{namespace}/sites/{site}/global_networks","/api/config/namespaces/{namespace}/sites/{site}/interface","/api/config/namespaces/{namespace}/sites/{site}/segments","/api/data/namespaces/system/site/{name}/status","/api/data/namespaces/system/site/{site}/api/v1/configmaps","/api/data/namespaces/system/site/{site}/api/v1/endpoints","/api/data/namespaces/system/site/{site}/api/v1/namespaces","/api/data/namespaces/system/site/{site}/api/v1/namespaces/{namespace}/configmaps","/api/data/namespaces/system/site/{site}/api/v1/namespaces/{namespace}/endpoints","/api/data/namespaces/system/site/{site}/api/v1/namespaces/{namespace}/persistentvolumeclaims","/api/data/namespaces/system/site/{site}/api/v1/namespaces/{namespace}/pods","/api/data/namespaces/system/site/{site}/api/v1/namespaces/{namespace}/secrets","/api/data/namespaces/system/site/{site}/api/v1/namespaces/{namespace}/services","/api/data/namespaces/system/site/{site}/api/v1/nodes","/api/data/namespaces/system/site/{site}/api/v1/persistentvolumeclaims","/api/data/namespaces/system/site/{site}/api/v1/persistentvolumes","/api/data/namespaces/system/site/{site}/api/v1/pods","/api/data/namespaces/system/site/{site}/api/v1/secrets","/api/data/namespaces/system/site/{site}/api/v1/services","/api/data/namespaces/system/site/{site}/apis/apps/v1/daemonsets","/api/data/namespaces/system/site/{site}/apis/apps/v1/deployments","/api/data/namespaces/system/site/{site}/apis/apps/v1/namespaces/{namespace}/daemonsets","/api/data/namespaces/system/site/{site}/apis/apps/v1/namespaces/{namespace}/deployments","/api/data/namespaces/system/site/{site}/apis/apps/v1/namespaces/{namespace}/replicasets","/api/data/namespaces/system/site/{site}/apis/apps/v1/namespaces/{namespace}/statefulsets","/api/data/namespaces/system/site/{site}/apis/apps/v1/replicasets","/api/data/namespaces/system/site/{site}/apis/apps/v1/statefulsets","/api/data/namespaces/system/site/{site}/apis/batch/v1/jobs","/api/data/namespaces/system/site/{site}/apis/batch/v1/namespaces/{namespace}/jobs","/api/data/namespaces/system/site/{site}/apis/batch/v1beta1/cronjobs","/api/data/namespaces/system/site/{site}/apis/batch/v1beta1/namespaces/{namespace}/cronjobs","/api/data/namespaces/system/site/{site}/namespaces/{namespace}/pods/metrics","/api/data/namespaces/system/site/{site}/namespaces/{namespace}/virtualmachineinstances/metrics","/api/data/namespaces/system/site/{site}/pods/metrics","/api/data/namespaces/system/site/{site}/virtualmachineinstances/metrics","/api/data/namespaces/{namespace}/graph/site","/api/data/namespaces/{namespace}/graph/site/edge","/api/data/namespaces/{namespace}/graph/site/node","/api/data/namespaces/{namespace}/site/{site}/status/metrics","/api/register/namespaces/{namespace}/site/{name}/state","/api/web/namespaces/system/sites/{site}/global-kubeconfigs"], tier: "Standard", icon: "🏒", descriptionShort: "Site", supportsLogs: true, supportsMetrics: true, dependencies: {"required":[],"optional":["virtual_site"]}, relationshipHints: ["virtual_site: Logical grouping of physical sites"], catalogCategories: ["sites","local-kubeconfig","local-kubeconfigs","upgrade-os","upgrade-sw","global-networks","interface","site-status","site-v1-configmaps","site-v1-endpoints","site-v1","site-v1-nodes","site-v1-persistentvolumeclaims","site-v1-persistentvolumes","site-v1-pods","site-v1-secrets","site-v1-services","site-apis-apps-v1-daemonsets","site-apis-apps-v1-deployments","site-apis-apps-v1","site-apis-apps-v1-replicasets","site-apis-apps-v1-statefulsets","site-apis-batch-v1-jobs","site-apis-batch-v1","site-apis-batch-v1beta1-cronjobs","site-apis-batch-v1beta1","site-metrics","site-pods-metrics","site-virtualmachineinstances-metrics","site","site-edge","site-node","status-metrics","register-state","sites-global-kubeconfigs"] }, { name: "virtual_site", description: "Logical grouping of sites using label selectors", schemaComponents: ["virtual_site"], apiPaths: ["/api/config/namespaces/{metadata.namespace}/virtual_sites","/api/config/namespaces/{metadata.namespace}/virtual_sites/{metadata.name}","/api/config/namespaces/{namespace}/virtual_sites","/api/config/namespaces/{namespace}/virtual_sites/{name}","/api/config/namespaces/{namespace}/virtual_sites/{name}/selectees"], tier: "Standard", icon: "🏷️", descriptionShort: "Virtual site", supportsLogs: false, supportsMetrics: false, catalogCategories: ["virtual-sites","selectees"] }, { name: "site_mesh_group", description: "Mesh connectivity configuration between multiple sites", tier: "Advanced", icon: "πŸ•ΈοΈ", descriptionShort: "Site mesh group", supportsLogs: false, supportsMetrics: true, dependencies: {"required":["site"],"optional":[]}, relationshipHints: ["site: Sites to include in mesh connectivity"] }, ], useCases: ["Deploy F5 XC across cloud providers (AWS, Azure, GCP)","Manage XCKS (Managed Kubernetes) site deployments (formerly AppStack)","Deploy Secure Mesh sites for networking-focused edge deployments","Integrate external Kubernetes clusters as Customer Edge","Configure AWS VPC, Azure VNet, and GCP VPC sites","Manage virtual sites and site policies"], relatedDomains: ["cloud_infrastructure","customer_edge","managed_kubernetes"], icon: "🌍", descriptionMedium: "AWS, Azure, GCP VPC integration with transit gateways. Label-based selection for policy application across regions.", requiresTier: "Standard", logoSvg: "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%2310B981'%3E%3Cpath d='M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-1 17.93c-3.95-.49-7-3.85-7-7.93 0-.62.08-1.21.21-1.79L9 15v1c0 1.1.9 2 2 2v1.93zm6.9-2.54c-.26-.81-1-1.39-1.9-1.39h-1v-3c0-.55-.45-1-1-1H8v-2h2c.55 0 1-.45 1-1V7h2c1.1 0 2-.9 2-2v-.41c2.93 1.19 5 4.06 5 7.41 0 2.08-.8 3.97-2.1 5.39z'/%3E%3C/svg%3E", cliMetadata: {"quickStart":{"command":"curl $F5XC_API_URL/api/config/namespaces/default/sites -H 'Authorization: APIToken $F5XC_API_TOKEN'","description":"List all configured sites in default namespace","expectedOutput":"JSON array of site objects with deployment status"},"commonWorkflows":[{"name":"Deploy AWS Cloud Site"}],"troubleshooting":[{}],"icon":"🌍"}, bestPractices: {"commonErrors":[{"code":400,"message":"Site registration token invalid","resolution":"Generate new registration token and retry","prevention":"Use tokens within validity period"},{"code":504,"message":"Site not responding","resolution":"Check site connectivity and agent status","prevention":"Configure monitoring for site health"},{"code":400,"message":"Expanded Secure Mesh interfaces lack authoritative evidence","resolution":"Keep optional roles unconfigured and collect the sanitized CE evidence matrix","prevention":"Bind roles by Azure NIC position, MAC, IP configuration, subnet, and control-plane reference; never by guest interface name"}],"securityNotes":["Rotate site tokens after initial registration","Configure site-level firewall policies","Enable audit logging for site operations","Treat guest interface names as diagnostics only; they are not stable configuration identities"],"performanceTips":["Deploy sites close to workloads for low latency","Configure appropriate resource allocation","Use site mesh for efficient inter-site communication","Schedule interface additions or removals in a maintenance window because CE data-plane services restart"]}, }, { domain: "statistics", title: "Statistics", description: "Alert policies with custom matchers, label groupings, and notification parameters. Log receivers for centralized collection with confirmation and verification workflows. Flow analytics, historical trend data, and namespace-scoped dashboards. Topology discovery and site-level health indicators for operational visibility.", descriptionShort: "Alerts, logs, flow analytics, and reporting.", category: "Operations", pathCount: 77, schemaCount: 520, complexity: "advanced", resources: [ { name: "dashboard", description: "Dashboard for metrics visualization", tier: "Standard", icon: "πŸ“Š", descriptionShort: "Dashboard", supportsLogs: false, supportsMetrics: false, dependencies: {"required":[],"optional":["saved_query"]}, relationshipHints: ["saved_query: Queries displayed on dashboard"] }, { name: "saved_query", description: "Saved query for metrics and log analysis", tier: "Standard", icon: "πŸ”", descriptionShort: "Saved query", supportsLogs: false, supportsMetrics: false }, ], useCases: ["Access flow statistics and analytics","Manage alerts and alerting policies","View logs and log receivers","Generate reports and graphs","Track topology and service discovery","Monitor status at sites"], relatedDomains: ["observability","support"], icon: "πŸ“ˆ", descriptionMedium: "Alerting policies with receiver integrations. Log aggregation, topology views, and site health tracking.", requiresTier: "Standard", logoSvg: "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%2310B981'%3E%3Cpath d='M3.5 18.49l6-6.01 4 4L22 6.92l-1.41-1.41-7.09 7.97-4-4L2 16.99z'/%3E%3C/svg%3E", bestPractices: {"commonErrors":[{"code":400,"message":"Invalid request body","resolution":"Validate JSON structure and required fields before submission","prevention":"Use schema validation from OpenAPI spec"},{"code":401,"message":"Authentication failed","resolution":"Verify API token is valid and not expired","prevention":"Use environment variables for token management"},{"code":403,"message":"Permission denied","resolution":"Check user role and namespace permissions","prevention":"Verify RBAC policies before operations"},{"code":404,"message":"Resource not found","resolution":"Verify resource name and namespace exist","prevention":"List resources before attempting operations"},{"code":409,"message":"Resource already exists","resolution":"Use unique name or delete existing resource","prevention":"Check existence before creation"},{"code":429,"message":"Rate limit exceeded","resolution":"Implement exponential backoff and retry logic","prevention":"Batch operations and add delays between requests"}],"securityNotes":["Always use HTTPS for all API communications","Store API tokens securely, never in source code","Rotate API tokens regularly following security policies"],"performanceTips":["Use pagination for large result sets","Batch related operations when possible","Cache read-only responses appropriately"]}, }, { domain: "support", title: "Support", description: "Case management workflows including submission, commentary, and closure paths. Urgency adjustments and routing for time-sensitive incidents. Tax exemption verification requests. Site-level tcpdump operationsβ€”initiation, enumeration, and terminationβ€”for low-level network troubleshooting and protocol analysis.", descriptionShort: "Tickets, escalations, and network diagnostics.", category: "Operations", pathCount: 53, schemaCount: 165, complexity: "moderate", resources: [ { name: "support_case", description: "Support case for issue tracking and resolution", schemaComponents: ["customer_support"], apiPaths: ["/api/web/namespaces/system/child_tenant/support_tickets","/api/web/namespaces/system/customer_support/tax_exempt_request","/api/web/namespaces/system/customer_support/{name}/comment/{comment_id}/attachment/{attachment_id}","/api/web/namespaces/{metadata.namespace}/customer_supports","/api/web/namespaces/{namespace}/admin/customer_supports","/api/web/namespaces/{namespace}/customer_support/{name}/close","/api/web/namespaces/{namespace}/customer_support/{name}/comment","/api/web/namespaces/{namespace}/customer_support/{name}/escalate","/api/web/namespaces/{namespace}/customer_support/{name}/priority","/api/web/namespaces/{namespace}/customer_support/{name}/reopen","/api/web/namespaces/{namespace}/customer_supports","/api/web/namespaces/{namespace}/customer_supports/{name}"], tier: "Standard", icon: "🎫", descriptionShort: "Support case", supportsLogs: false, supportsMetrics: false, catalogCategories: ["child-tenant-support-tickets","customer-support-tax-exempt-request","customer-support-comment-attachment","customer-supports","close","comment","escalate","priority","reopen"] }, { name: "alert", description: "System alert for operational notifications", tier: "Standard", icon: "πŸ””", descriptionShort: "Alert", supportsLogs: false, supportsMetrics: false }, { name: "audit_log", description: "Audit log for compliance and security tracking", tier: "Standard", icon: "πŸ“", descriptionShort: "Audit log", supportsLogs: false, supportsMetrics: false }, ], useCases: ["Submit and manage support tickets","Track customer support requests","Access operational support documentation"], relatedDomains: ["statistics","observability"], icon: "🎫", descriptionMedium: "Issue lifecycle with comments, severity changes, and resolution tracking. Packet capture for connection analysis.", requiresTier: "Standard", logoSvg: "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%2314B8A6'%3E%3Cpath d='M22 10V6c0-1.11-.9-2-2-2H4c-1.1 0-1.99.89-1.99 2v4c1.1 0 1.99.9 1.99 2s-.89 2-2 2v4c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2v-4c-1.1 0-2-.9-2-2s.9-2 2-2zm-2-1.46c-1.19.69-2 1.99-2 3.46s.81 2.77 2 3.46V18H4v-2.54c1.19-.69 2-1.99 2-3.46 0-1.48-.8-2.77-1.99-3.46L4 6h16v2.54z'/%3E%3C/svg%3E", bestPractices: {"commonErrors":[{"code":400,"message":"Invalid request body","resolution":"Validate JSON structure and required fields before submission","prevention":"Use schema validation from OpenAPI spec"},{"code":401,"message":"Authentication failed","resolution":"Verify API token is valid and not expired","prevention":"Use environment variables for token management"},{"code":403,"message":"Permission denied","resolution":"Check user role and namespace permissions","prevention":"Verify RBAC policies before operations"},{"code":404,"message":"Resource not found","resolution":"Verify resource name and namespace exist","prevention":"List resources before attempting operations"},{"code":409,"message":"Resource already exists","resolution":"Use unique name or delete existing resource","prevention":"Check existence before creation"},{"code":429,"message":"Rate limit exceeded","resolution":"Implement exponential backoff and retry logic","prevention":"Batch operations and add delays between requests"}],"securityNotes":["Always use HTTPS for all API communications","Store API tokens securely, never in source code","Rotate API tokens regularly following security policies"],"performanceTips":["Use pagination for large result sets","Batch related operations when possible","Cache read-only responses appropriately"]}, }, { domain: "telemetry_and_insights", title: "Telemetry And Insights", description: "APIs for configuring collection endpoints, metrics storage, and insight generation. Supports log aggregation, performance monitoring, and alerting integration across deployments.", descriptionShort: "Metrics collection, analysis, and visualization.", category: "Operations", pathCount: 27, schemaCount: 184, complexity: "moderate", resources: [ { name: "telemetry_receiver", description: "Telemetry receiver for data collection", tier: "Standard", icon: "πŸ“‘", descriptionShort: "Telemetry receiver", supportsLogs: false, supportsMetrics: false }, { name: "insight_query", description: "Insight query for analytics", tier: "Standard", icon: "πŸ”", descriptionShort: "Insight query", supportsLogs: false, supportsMetrics: false }, ], useCases: ["Collect and analyze telemetry data","Generate actionable insights from metrics","Configure telemetry collection policies"], relatedDomains: ["observability","statistics"], icon: "πŸ“‰", descriptionMedium: "Collection endpoints, metrics storage, and insight generation for observability workflows.", requiresTier: "Standard", logoSvg: "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23F59E0B'%3E%3Cpath d='M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z'/%3E%3C/svg%3E", bestPractices: {"commonErrors":[{"code":400,"message":"Invalid request body","resolution":"Validate JSON structure and required fields before submission","prevention":"Use schema validation from OpenAPI spec"},{"code":401,"message":"Authentication failed","resolution":"Verify API token is valid and not expired","prevention":"Use environment variables for token management"},{"code":403,"message":"Permission denied","resolution":"Check user role and namespace permissions","prevention":"Verify RBAC policies before operations"},{"code":404,"message":"Resource not found","resolution":"Verify resource name and namespace exist","prevention":"List resources before attempting operations"},{"code":409,"message":"Resource already exists","resolution":"Use unique name or delete existing resource","prevention":"Check existence before creation"},{"code":429,"message":"Rate limit exceeded","resolution":"Implement exponential backoff and retry logic","prevention":"Batch operations and add delays between requests"}],"securityNotes":["Always use HTTPS for all API communications","Store API tokens securely, never in source code","Rotate API tokens regularly following security policies"],"performanceTips":["Use pagination for large result sets","Batch related operations when possible","Cache read-only responses appropriately"]}, }, { domain: "tenant_and_identity", title: "Tenant And Identity", description: "Profile images and display customizations for personalized dashboard experiences. Federated authentication toggles controlling SSO behavior across organizational boundaries. Session lifecycle tracking with real-time visibility into active connections and timeout policies. Support ticket workflows including attachment handling and closure procedures for managed client escalations. Initial access provisioning sequences for new user onboarding.", descriptionShort: "User profiles, sessions, and OTP settings.", category: "Platform", pathCount: 184, schemaCount: 509, complexity: "advanced", resources: [ { name: "user_profile", description: "User profile with personal settings", schemaComponents: ["user.setting"], apiPaths: ["/api/web/namespaces/system/user/admin_notifications","/api/web/namespaces/system/user/admin_notifications/unset","/api/web/namespaces/system/user/combined_notifications","/api/web/namespaces/system/user/notifications","/api/web/namespaces/system/user/notifications/unset","/api/web/namespaces/system/user/otp/admin_reset","/api/web/namespaces/system/user/sessions","/api/web/namespaces/system/user/settings","/api/web/namespaces/system/user/settings/idm/disable","/api/web/namespaces/system/user/settings/idm/enable","/api/web/namespaces/system/user/settings/image","/api/web/namespaces/system/user/settings/request_initial_access","/api/web/namespaces/system/user/settings/view_preference"], tier: "Standard", icon: "πŸ‘€", descriptionShort: "User profile", supportsLogs: false, supportsMetrics: false, catalogCategories: ["user-admin-notifications","user-admin-notifications-unset","user-combined-notifications","user-notifications","user-notifications-unset","user-otp-admin-reset","user-sessions","user-settings","user-settings-idm-disable","user-settings-idm-enable","user-settings-image","user-settings-request-initial-access","user-settings-view-preference"] }, { name: "session", description: "User session for authentication state", schemaComponents: ["user.setting"], tier: "Standard", icon: "πŸ”‘", descriptionShort: "Session", supportsLogs: true, supportsMetrics: false }, { name: "otp_policy", description: "OTP policy for multi-factor authentication", tier: "Standard", icon: "πŸ”", descriptionShort: "OTP policy", supportsLogs: false, supportsMetrics: false }, ], useCases: ["Manage user profiles and notification preferences","Configure session controls and OTP settings","Handle identity management operations","Process initial user access requests"], relatedDomains: ["users","authentication","system"], icon: "πŸͺͺ", descriptionMedium: "Account view configurations and admin alert channels. One-time password resets, provisioning flows, and active connection monitoring.", requiresTier: "Standard", logoSvg: "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%2306B6D4'%3E%3Cpath d='M20 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm-9 3.5c1.38 0 2.5 1.12 2.5 2.5S12.38 12.5 11 12.5 8.5 11.38 8.5 10s1.12-2.5 2.5-2.5zm5 10.5H6v-1.25c0-1.66 3.33-2.5 5-2.5s5 .84 5 2.5V18zm2-4h-4v-2h4v2zm0-4h-4V8h4v2z'/%3E%3C/svg%3E", bestPractices: {"commonErrors":[{"code":400,"message":"Invalid request body","resolution":"Validate JSON structure and required fields before submission","prevention":"Use schema validation from OpenAPI spec"},{"code":401,"message":"Authentication failed","resolution":"Verify API token is valid and not expired","prevention":"Use environment variables for token management"},{"code":403,"message":"Permission denied","resolution":"Check user role and namespace permissions","prevention":"Verify RBAC policies before operations"},{"code":404,"message":"Resource not found","resolution":"Verify resource name and namespace exist","prevention":"List resources before attempting operations"},{"code":409,"message":"Resource already exists","resolution":"Use unique name or delete existing resource","prevention":"Check existence before creation"},{"code":429,"message":"Rate limit exceeded","resolution":"Implement exponential backoff and retry logic","prevention":"Batch operations and add delays between requests"}],"securityNotes":["Always use HTTPS for all API communications","Store API tokens securely, never in source code","Rotate API tokens regularly following security policies"],"performanceTips":["Use pagination for large result sets","Batch related operations when possible","Cache read-only responses appropriately"]}, }, { domain: "threat_campaign", title: "Threat Campaign", description: "APIs for configuring detection policies and attack tracking. Supports campaign analysis, risk assessment, and automated mitigation rule generation across security domains.", descriptionShort: "Attack detection, tracking, and mitigation rules.", category: "Security", pathCount: 1, schemaCount: 112, complexity: "moderate", resources: [ { name: "threat_campaign_policy", description: "Threat campaign detection and mitigation policy", schemaComponents: ["app_security"], apiPaths: ["/api/waf/threat_campaign/{id}"], tier: "Advanced", icon: "🎯", descriptionShort: "Threat campaign policy", supportsLogs: true, supportsMetrics: true, catalogCategories: ["waf-threat-campaign"] }, ], useCases: ["Track and analyze threat campaigns","Monitor active threats and attack patterns","Configure threat intelligence integration"], relatedDomains: ["bot_defense","ddos"], icon: "⚠️", descriptionMedium: "Detection policies, attack tracking, and automated mitigation rule generation for security operations.", requiresTier: "Standard", logoSvg: "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23FBBF24'%3E%3Cpath d='M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z'/%3E%3C/svg%3E", bestPractices: {"commonErrors":[{"code":400,"message":"Invalid request body","resolution":"Validate JSON structure and required fields before submission","prevention":"Use schema validation from OpenAPI spec"},{"code":401,"message":"Authentication failed","resolution":"Verify API token is valid and not expired","prevention":"Use environment variables for token management"},{"code":403,"message":"Permission denied","resolution":"Check user role and namespace permissions","prevention":"Verify RBAC policies before operations"},{"code":404,"message":"Resource not found","resolution":"Verify resource name and namespace exist","prevention":"List resources before attempting operations"},{"code":409,"message":"Resource already exists","resolution":"Use unique name or delete existing resource","prevention":"Check existence before creation"},{"code":429,"message":"Rate limit exceeded","resolution":"Implement exponential backoff and retry logic","prevention":"Batch operations and add delays between requests"}],"securityNotes":["Always use HTTPS for all API communications","Store API tokens securely, never in source code","Rotate API tokens regularly following security policies"],"performanceTips":["Use pagination for large result sets","Batch related operations when possible","Cache read-only responses appropriately"]}, }, { domain: "users", title: "Users", description: "Token lifecycle governs automated site onboarding through cloud-init integration with configurable validity periods. Explicit category keys establish permitted classification hierarchies enforced across deployments. Inferred attributes attach automatically based on object characteristics and placement context. Namespace-scoped operations handle credential generation, revocation, and state transitions for streamlined provisioning workflows.", descriptionShort: "Account tokens, labels, and cloud-init config.", category: "Platform", pathCount: 13, schemaCount: 50, complexity: "simple", resources: [ { name: "user", description: "User account for platform access", tier: "Standard", icon: "πŸ‘€", descriptionShort: "User", supportsLogs: false, supportsMetrics: false, dependencies: {"required":[],"optional":["user_role"]}, relationshipHints: ["user_role: Role assignment for user permissions"] }, { name: "user_role", description: "User role for permission management", tier: "Standard", icon: "πŸ‘”", descriptionShort: "User role", supportsLogs: false, supportsMetrics: false }, { name: "namespace_role", description: "Namespace-scoped role for fine-grained permissions", tier: "Standard", icon: "πŸ“", descriptionShort: "Namespace role", supportsLogs: false, supportsMetrics: false }, ], useCases: ["Manage user accounts and tokens","Configure user identification","Manage user settings and preferences","Configure implicit and known labels"], relatedDomains: ["system","admin"], icon: "πŸ‘₯", descriptionMedium: "Site enrollment credentials with automatic expiration. Taxonomy keys define allowed categorization while auto-derived tags apply dynamically.", requiresTier: "Standard", logoSvg: "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%236366F1'%3E%3Cpath d='M16 11c1.66 0 2.99-1.34 2.99-3S17.66 5 16 5c-1.66 0-3 1.34-3 3s1.34 3 3 3zm-8 0c1.66 0 2.99-1.34 2.99-3S9.66 5 8 5C6.34 5 5 6.34 5 8s1.34 3 3 3zm0 2c-2.33 0-7 1.17-7 3.5V19h14v-2.5c0-2.33-4.67-3.5-7-3.5zm8 0c-.29 0-.62.02-.97.05 1.16.84 1.97 1.97 1.97 3.45V19h6v-2.5c0-2.33-4.67-3.5-7-3.5z'/%3E%3C/svg%3E", bestPractices: {"commonErrors":[{"code":400,"message":"Invalid request body","resolution":"Validate JSON structure and required fields before submission","prevention":"Use schema validation from OpenAPI spec"},{"code":401,"message":"Authentication failed","resolution":"Verify API token is valid and not expired","prevention":"Use environment variables for token management"},{"code":403,"message":"Permission denied","resolution":"Check user role and namespace permissions","prevention":"Verify RBAC policies before operations"},{"code":404,"message":"Resource not found","resolution":"Verify resource name and namespace exist","prevention":"List resources before attempting operations"},{"code":409,"message":"Resource already exists","resolution":"Use unique name or delete existing resource","prevention":"Check existence before creation"},{"code":429,"message":"Rate limit exceeded","resolution":"Implement exponential backoff and retry logic","prevention":"Batch operations and add delays between requests"}],"securityNotes":["Always use HTTPS for all API communications","Store API tokens securely, never in source code","Rotate API tokens regularly following security policies"],"performanceTips":["Use pagination for large result sets","Batch related operations when possible","Cache read-only responses appropriately"]}, }, { domain: "virtual", 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.", descriptionShort: "HTTP, TCP, UDP load balancing with origin pools.", category: "Networking", pathCount: 133, schemaCount: 837, complexity: "advanced", resources: [ { name: "http_loadbalancer", description: "Layer 7 HTTP/HTTPS load balancer for application traffic distribution", schemaComponents: ["views.http_loadbalancer"], apiPaths: ["/api/config/namespaces/{metadata.namespace}/http_loadbalancers","/api/config/namespaces/{metadata.namespace}/http_loadbalancers/{metadata.name}","/api/config/namespaces/{namespace}/http_loadbalancers","/api/config/namespaces/{namespace}/http_loadbalancers/get_security_config","/api/config/namespaces/{namespace}/http_loadbalancers/{name}","/api/config/namespaces/{namespace}/http_loadbalancers/{name}/api_definitions/assign","/api/config/namespaces/{namespace}/http_loadbalancers/{name}/api_definitions/available","/api/config/namespaces/{namespace}/http_loadbalancers/{name}/dos_automitigation_rules","/api/config/namespaces/{namespace}/http_loadbalancers/{name}/dos_automitigation_rules/{dos_automitigation_rule_name}","/api/config/namespaces/{namespace}/http_loadbalancers/{name}/get-dns-info","/api/config/namespaces/{namespace}/http_loadbalancers/{name}/l7ddos_rps_threshold","/api/ml/data/namespaces/{namespace}/http_loadbalancers/{name}/api_endpoints","/api/ml/data/namespaces/{namespace}/http_loadbalancers/{name}/api_endpoints/swagger_spec","/api/ml/data/namespaces/{namespace}/http_loadbalancers/{name}/api_inventory/api_endpoints/get_schema_updates","/api/ml/data/namespaces/{namespace}/http_loadbalancers/{name}/api_inventory/api_endpoints/update_schemas"], tier: "Standard", icon: "🌐", descriptionShort: "HTTP load balancer", supportsLogs: true, supportsMetrics: true, dependencies: {"required":["origin_pool"],"optional":["healthcheck","app_firewall","certificate","rate_limiter","service_policy","bot_defense_policy"]}, relationshipHints: ["origin_pool: Backend servers for traffic distribution","app_firewall: WAF protection (requires WAAP subscription)","healthcheck: Monitor backend availability","certificate: TLS termination for HTTPS","rate_limiter: Protect against traffic spikes"], catalogCategories: ["http-loadbalancers","api-definitions-assign","api-definitions-available","get-dns-info","l7ddos-rps-threshold","api-endpoints","api-inventory-api-endpoints-get-schema-updates","api-inventory-api-endpoints-update-schemas"] }, { name: "tcp_loadbalancer", description: "Layer 4 TCP/UDP load balancer for non-HTTP protocol traffic", schemaComponents: ["views.tcp_loadbalancer"], apiPaths: ["/api/config/namespaces/{metadata.namespace}/tcp_loadbalancers","/api/config/namespaces/{metadata.namespace}/tcp_loadbalancers/{metadata.name}","/api/config/namespaces/{namespace}/tcp_loadbalancers","/api/config/namespaces/{namespace}/tcp_loadbalancers/{name}","/api/config/namespaces/{namespace}/tcp_loadbalancers/{name}/get-dns-info"], tier: "Standard", icon: "πŸ”Œ", descriptionShort: "TCP load balancer", supportsLogs: true, supportsMetrics: true, dependencies: {"required":["origin_pool"],"optional":["healthcheck"]}, relationshipHints: ["origin_pool: Backend servers for TCP/UDP traffic","healthcheck: Monitor origin server health"], catalogCategories: ["tcp-loadbalancers"] }, { name: "origin_pool", description: "Backend server group for load balancer traffic distribution", schemaComponents: ["views.origin_pool"], apiPaths: ["/api/config/namespaces/{metadata.namespace}/origin_pools","/api/config/namespaces/{metadata.namespace}/origin_pools/{metadata.name}","/api/config/namespaces/{namespace}/origin_pools","/api/config/namespaces/{namespace}/origin_pools/{name}"], tier: "Standard", icon: "🎯", descriptionShort: "Origin pool", supportsLogs: false, supportsMetrics: true, dependencies: {"required":[],"optional":["healthcheck"]}, relationshipHints: ["healthcheck: Monitor origin server health"], catalogCategories: ["origin-pools"] }, { name: "healthcheck", description: "Health monitoring configuration for origin server availability", schemaComponents: ["healthcheck"], apiPaths: ["/api/config/namespaces/{metadata.namespace}/healthchecks","/api/config/namespaces/{metadata.namespace}/healthchecks/{metadata.name}","/api/config/namespaces/{namespace}/healthchecks","/api/config/namespaces/{namespace}/healthchecks/{name}"], tier: "Standard", icon: "πŸ’“", descriptionShort: "Health check", supportsLogs: false, supportsMetrics: true, catalogCategories: ["healthchecks"] }, { name: "app_firewall", description: "Web Application Firewall policy for HTTP traffic protection", schemaComponents: ["app_firewall"], apiPaths: ["/api/config/namespaces/{metadata.namespace}/app_firewalls","/api/config/namespaces/{metadata.namespace}/app_firewalls/{metadata.name}","/api/config/namespaces/{namespace}/app_firewalls","/api/config/namespaces/{namespace}/app_firewalls/{name}","/api/data/namespaces/system/app_firewall/all_ns_metrics","/api/data/namespaces/{namespace}/app_firewall/metrics"], tier: "Advanced", icon: "πŸ›‘οΈ", descriptionShort: "WAF policy", supportsLogs: true, supportsMetrics: true, dependencies: {"required":[],"optional":["service_policy"]}, relationshipHints: ["service_policy: Fine-grained access control rules"], catalogCategories: ["app-firewalls","app-firewall-all-ns-metrics","metrics"] }, { name: "service_policy", description: "Service-level access control and traffic management rules", schemaComponents: ["service_policy"], apiPaths: ["/api/config/namespaces/{metadata.namespace}/service_policys","/api/config/namespaces/{metadata.namespace}/service_policys/{metadata.name}","/api/config/namespaces/{namespace}/service_policys","/api/config/namespaces/{namespace}/service_policys/{name}"], tier: "Advanced", icon: "πŸ“‹", descriptionShort: "Service policy", supportsLogs: true, supportsMetrics: false, catalogCategories: ["service-policys"] }, { name: "malicious_user_detection", description: "Automated detection and mitigation of malicious user behavior", tier: "Advanced", icon: "🚨", descriptionShort: "Malicious user detection", supportsLogs: true, supportsMetrics: true }, ], useCases: ["Configure HTTP/TCP/UDP load balancers","Manage origin pools and services","Configure virtual hosts and routing","Define rate limiter and service policies","Manage geo-location-based routing","Configure proxy and forwarding policies","Manage malware protection and threat campaigns","Configure health checks and endpoint monitoring"], relatedDomains: ["dns","service_policy","network"], icon: "βš–οΈ", descriptionMedium: "Traffic distribution across regions with routing rules. Health checks and failover policies.", requiresTier: "Advanced", logoSvg: "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%234F46E5'%3E%3Cpath d='M12 3c-1.27 0-2.4.8-2.82 2H3v2h1.95L2 14c-.47 2 1 4 4 4s4.47-2 4-4L7.05 7H9.1c.42 1.2 1.55 2 2.9 2s2.4-.8 2.82-2h2.13L14 14c-.47 2 1 4 4 4s4.47-2 4-4l-2.95-7H21V5h-6.18c-.42-1.2-1.55-2-2.82-2zm-6 12.5c-.73 0-1.45-.3-1.97-.82L6 10l1.97 4.68c-.52.52-1.24.82-1.97.82zm12 0c-.73 0-1.45-.3-1.97-.82L18 10l1.97 4.68c-.52.52-1.24.82-1.97.82z'/%3E%3C/svg%3E", cliMetadata: {"quickStart":{"command":"curl $F5XC_API_URL/api/config/namespaces/default/http_loadbalancers -H 'Authorization: APIToken $F5XC_API_TOKEN'","description":"List all HTTP load balancers in default namespace","expectedOutput":"JSON array of load balancer objects with status"},"commonWorkflows":[{"name":"Create HTTP Load Balancer"}],"troubleshooting":[{}],"icon":"βš–οΈ"}, bestPractices: {"commonErrors":[{"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"}],"securityNotes":["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"],"performanceTips":["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"]}, }, { domain: "vpm_and_node_management", title: "Vpm And Node Management", description: "APIs for configuring node policies, fleet management, and lifecycle operations. Supports node registration, configuration deployment, and status monitoring across distributed infrastructure.", descriptionShort: "Node lifecycle, fleet grouping, and orchestration.", category: "Platform", pathCount: 1, schemaCount: 2, complexity: "simple", resources: [ { name: "node_config", description: "Node configuration for edge device settings", tier: "Standard", icon: "πŸ–₯️", descriptionShort: "Node config", supportsLogs: false, supportsMetrics: false }, { name: "vpm_config", description: "VPM configuration for virtual platform management", tier: "Standard", icon: "βš™οΈ", descriptionShort: "VPM config", supportsLogs: false, supportsMetrics: false }, ], useCases: ["Manage Virtual Private Mesh (VPM) configuration","Configure node lifecycle and management","Monitor VPM and node status"], relatedDomains: ["sites","system"], icon: "πŸ–₯️", descriptionMedium: "Lifecycle control, fleet configuration, and deployment policies for distributed node management.", requiresTier: "Standard", logoSvg: "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%2364748B'%3E%3Cpath d='M20 13H4c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h16c.55 0 1-.45 1-1v-6c0-.55-.45-1-1-1zM7 19c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zM20 3H4c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h16c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1zM7 9c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z'/%3E%3C/svg%3E", bestPractices: {"commonErrors":[{"code":400,"message":"Invalid request body","resolution":"Validate JSON structure and required fields before submission","prevention":"Use schema validation from OpenAPI spec"},{"code":401,"message":"Authentication failed","resolution":"Verify API token is valid and not expired","prevention":"Use environment variables for token management"},{"code":403,"message":"Permission denied","resolution":"Check user role and namespace permissions","prevention":"Verify RBAC policies before operations"},{"code":404,"message":"Resource not found","resolution":"Verify resource name and namespace exist","prevention":"List resources before attempting operations"},{"code":409,"message":"Resource already exists","resolution":"Use unique name or delete existing resource","prevention":"Check existence before creation"},{"code":429,"message":"Rate limit exceeded","resolution":"Implement exponential backoff and retry logic","prevention":"Batch operations and add delays between requests"}],"securityNotes":["Always use HTTPS for all API communications","Store API tokens securely, never in source code","Rotate API tokens regularly following security policies"],"performanceTips":["Use pagination for large result sets","Batch related operations when possible","Cache read-only responses appropriately"]}, }, ], criticalResources: [ "http_loadbalancer", "tcp_loadbalancer", "origin_pool", "healthcheck", "app_firewall", "service_policy", "network_policy", "dns_zone", "dns_load_balancer", "certificate", "namespace", "virtual_site", "aws_vpc_site", "azure_vnet_site", "gcp_vpc_site" ], guidedWorkflows: { "version": "1.0.0", "total_workflows": 10, "domains": [ "virtual", "waf", "dns", "cdn", "origin_pool", "sites", "authentication" ], "workflows": [ { "id": "create_and_use_api_token", "name": "Create and Use an API Token", "description": "Create an API token in the console via guided browser automation, then call the F5 XC API with it", "complexity": "low", "estimated_steps": 3, "prerequisites": [ "Logged in to the F5 XC console", "User role: admin (access to Personal Management > Credentials)" ], "steps": [ { "order": 1, "action": "create_api_token", "name": "Create API Token", "description": "In Administration > Personal Management > Credentials, click Add Credentials, set Credential Type to API Token, enter a Credential Name and Expiry Date, then Generate", "resource": "api_credential", "required_fields": [ "credential_name", "credential_type", "expiry_date" ], "tips": [ "Set Credential Type to API Token. The default is API Certificate, which produces a P12 file, not a bearer token.", "The token string is shown only once on the reveal panel. Capture it immediately, before dismissing the panel." ] }, { "order": 2, "action": "capture_token", "name": "Capture the Generated Token", "description": "Read the one-time token value from the reveal panel", "depends_on": [ 1 ], "verification": [ "Token value captured before the reveal panel is dismissed" ] }, { "order": 3, "action": "call_api_with_token", "name": "Call the F5 XC API with the Token", "description": "Use the captured token in an XC-API call with header Authorization APIToken to confirm it works, for example list namespaces", "depends_on": [ 2 ], "verification": [ "XC-API GET /api/web/namespaces returns HTTP 200 with the tenant namespaces" ] } ], "domain": "authentication" }, { "id": "enable_cdn_distribution", "name": "Enable CDN Distribution", "description": "Configure CDN for content delivery", "complexity": "medium", "estimated_steps": 5, "prerequisites": [ "Existing origin server or load balancer", "Content cacheable via HTTP headers" ], "steps": [ { "order": 1, "action": "create_origin", "name": "Define Origin", "description": "Configure origin server for CDN", "resource": "cdn_origin", "required_fields": [ "name", "origin_address" ] }, { "order": 2, "action": "configure_cache_rules", "name": "Configure Cache Rules", "description": "Define caching behavior per content type", "tips": [ "Set longer TTL for static assets", "Use vary headers appropriately" ] }, { "order": 3, "action": "create_distribution", "name": "Create Distribution", "description": "Configure CDN distribution", "resource": "cdn_distribution", "depends_on": [ 1 ] }, { "order": 4, "action": "configure_ssl", "name": "Configure SSL", "description": "Set up HTTPS for CDN endpoints", "optional": true }, { "order": 5, "action": "verify_caching", "name": "Verify Caching", "description": "Test CDN cache behavior", "verification": [ "Check X-Cache headers", "Verify content delivery from edge" ] } ], "domain": "cdn" }, { "id": "configure_dns_zone", "name": "Configure DNS Zone", "description": "Set up authoritative DNS zone with records", "complexity": "low", "estimated_steps": 4, "prerequisites": [ "Domain name ownership", "NS delegation configured at registrar" ], "steps": [ { "order": 1, "action": "create_dns_zone", "name": "Create DNS Zone", "description": "Create authoritative zone for domain", "resource": "dns_zone", "required_fields": [ "name", "domain" ] }, { "order": 2, "action": "add_dns_records", "name": "Add DNS Records", "description": "Create A, CNAME, and other records", "resource": "dns_record", "depends_on": [ 1 ], "tips": [ "Use appropriate TTL values", "Add MX records for email" ] }, { "order": 3, "action": "enable_dnssec", "name": "Enable DNSSEC", "description": "Configure DNS security extensions", "optional": true, "depends_on": [ 1 ] }, { "order": 4, "action": "verify_resolution", "name": "Verify DNS Resolution", "description": "Test DNS queries", "verification": [ "Query records from public DNS", "Verify propagation" ] } ], "domain": "dns" }, { "id": "configure_origin_pool", "name": "Configure Origin Pool", "description": "Set up backend server pool with health checks", "complexity": "low", "estimated_steps": 3, "prerequisites": [ "Backend server addresses", "Network connectivity to origins" ], "steps": [ { "order": 1, "action": "create_origin_pool", "name": "Create Origin Pool", "description": "Define backend servers", "resource": "origin_pool", "required_fields": [ "name", "origin_servers", "port" ] }, { "order": 2, "action": "add_healthcheck", "name": "Add Health Check", "description": "Configure health monitoring", "resource": "healthcheck", "optional": true }, { "order": 3, "action": "verify_connectivity", "name": "Verify Connectivity", "description": "Test origin pool health", "verification": [ "All origins showing healthy", "Connection pooling working" ] } ], "domain": "origin_pool" }, { "id": "register_site", "name": "Register Customer Edge Site", "description": "Register and configure a CE site", "complexity": "high", "estimated_steps": 6, "prerequisites": [ "Site hardware or VM provisioned", "Network connectivity to F5 XC", "Registration token generated" ], "steps": [ { "order": 1, "action": "generate_token", "name": "Generate Registration Token", "description": "Create site registration token", "resource": "site_token" }, { "order": 2, "action": "configure_site", "name": "Configure Site Settings", "description": "Define site parameters", "resource": "site", "required_fields": [ "name", "site_type" ] }, { "order": 3, "action": "install_software", "name": "Install CE Software", "description": "Deploy F5 XC software on site", "depends_on": [ 1 ] }, { "order": 4, "action": "complete_registration", "name": "Complete Registration", "description": "Finalize site registration", "depends_on": [ 2, 3 ] }, { "order": 5, "action": "configure_network", "name": "Configure Site Network", "description": "Set up site networking", "depends_on": [ 4 ] }, { "order": 6, "action": "verify_site", "name": "Verify Site Status", "description": "Confirm site is operational", "verification": [ "Site shows online status", "Tunnel connectivity established", "Services deployed successfully" ] } ], "domain": "sites" }, { "id": "evidence_gated_secure_mesh_interfaces", "name": "Configure Evidence-Gated Secure Mesh Site v2 Interfaces", "description": "Configure the mandatory SLO first and enable optional interface roles only after authoritative Azure and CE evidence agrees.", "complexity": "high", "estimated_steps": 5, "prerequisites": [ "Three-node HA topology with identical declared role and VRF shape", "Sanitized Azure and CE evidence including a replacement registration observation", "Approved maintenance window for any interface addition or removal" ], "steps": [ { "order": 1, "action": "inventory_cloud_nics", "name": "Inventory Azure NICs", "description": "Record each node hostname, NIC position, MAC, IP configuration, subnet, and control-plane interface reference.", "resource": "securemesh_site_v2" }, { "order": 2, "action": "collect_runtime_evidence", "name": "Collect CE Evidence", "description": "Normalize supported CE diagnostics by MAC, IP, subnet, and control-plane role without using guest interface names as keys.", "resource": "securemesh_site_v2", "depends_on": [ 1 ] }, { "order": 3, "action": "validate_role_mapping", "name": "Validate Role Mapping", "description": "Require authoritative mapping confidence and provenance before optional roles become bindable.", "resource": "securemesh_site_v2", "depends_on": [ 2 ] }, { "order": 4, "action": "configure_slo", "name": "Configure SLO", "description": "Bind the first Azure NIC to the required Site Local Outside role; BGP may bind only to this role.", "resource": "securemesh_site_v2", "depends_on": [ 3 ] }, { "order": 5, "action": "enable_optional_roles", "name": "Enable Approved Optional Roles", "description": "During the maintenance window, configure external or SLI only where the approved contract declares their network option and VRF.", "resource": "securemesh_site_v2", "depends_on": [ 4 ], "verification": [ "Every HA node has the same role and VRF shape", "BGP binds only to the SLO role", "Evidence provenance is retained without credentials or raw diagnostics" ] } ], "domain": "sites" }, { "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" ] } ], "domain": "virtual" }, { "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" ] } ], "domain": "virtual" }, { "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" ] } ], "domain": "virtual" }, { "id": "enable_waf_protection", "name": "Enable WAF Protection", "description": "Add web application firewall to existing load balancer", "complexity": "medium", "estimated_steps": 4, "prerequisites": [ "Existing HTTP load balancer", "Understanding of application traffic patterns" ], "steps": [ { "order": 1, "action": "create_app_firewall", "name": "Create Application Firewall", "description": "Define WAF policy with rule sets", "resource": "app_firewall", "required_fields": [ "name", "blocking" ], "tips": [ "Start in monitoring mode for tuning", "Select rules based on application stack" ] }, { "order": 2, "action": "configure_exclusions", "name": "Configure Exclusions", "description": "Add bypass rules for false positives", "optional": true, "tips": [ "Exclude trusted internal IPs", "Add API endpoint exclusions if needed" ] }, { "order": 3, "action": "attach_to_loadbalancer", "name": "Attach to Load Balancer", "description": "Apply WAF policy to load balancer", "depends_on": [ 1 ] }, { "order": 4, "action": "monitor_and_tune", "name": "Monitor and Tune", "description": "Review WAF logs and adjust rules", "verification": [ "Check security event logs", "Verify no legitimate traffic blocked", "Adjust rules as needed" ] } ], "domain": "waf" } ] }, errorResolution: { "version": "1.0.0", "http_errors": { "400": { "code": 400, "name": "Bad Request", "description": "The request was malformed or contains invalid data", "common_causes": [ "Invalid JSON syntax in request body", "Missing required fields", "Invalid field values or formats", "Malformed resource references" ], "diagnostic_steps": [ { "step": 1, "action": "Validate JSON syntax", "description": "Check if request body is valid JSON", "command": "echo '$REQUEST_BODY' | jq ." }, { "step": 2, "action": "Check required fields", "description": "Verify all required fields from OpenAPI spec are present" }, { "step": 3, "action": "Validate field formats", "description": "Check string patterns, enum values, and data types" }, { "step": 4, "action": "Verify references", "description": "Ensure referenced resources exist and are properly formatted" } ], "prevention": [ "Use schema validation before submission", "Validate JSON with jq or similar tools", "Reference OpenAPI spec for required fields and formats" ], "related_errors": [ 422 ] }, "401": { "code": 401, "name": "Unauthorized", "description": "Authentication credentials are missing or invalid", "common_causes": [ "Missing Authorization header", "Expired API token", "Invalid API token format", "Token revoked or disabled" ], "diagnostic_steps": [ { "step": 1, "action": "Check Authorization header", "description": "Verify Authorization header is present and uses correct format" }, { "step": 2, "action": "Validate token format", "description": "Ensure token starts with correct prefix (APIToken, Bearer)" }, { "step": 3, "action": "Check token expiry", "description": "Verify token has not expired", "command": "Check token creation date in console" }, { "step": 4, "action": "Test with fresh token", "description": "Generate new API token and retry" } ], "prevention": [ "Store tokens securely in environment variables", "Implement token refresh logic", "Monitor token expiry dates", "Use service accounts for automation" ], "related_errors": [ 403 ] }, "403": { "code": 403, "name": "Forbidden", "description": "Authentication succeeded but authorization denied", "common_causes": [ "Insufficient role permissions", "Resource outside allowed namespaces", "Operation not permitted for user type", "Tenant-level restrictions" ], "diagnostic_steps": [ { "step": 1, "action": "Check user roles", "description": "Verify current user's role assignments", "command": "GET /api/web/custom/namespaces/{namespace}/whoami" }, { "step": 2, "action": "Verify namespace access", "description": "Confirm user has access to target namespace" }, { "step": 3, "action": "Check resource permissions", "description": "Verify user has permission for specific resource type" }, { "step": 4, "action": "Review RBAC policies", "description": "Audit role-based access control configuration" } ], "prevention": [ "Request appropriate role assignments", "Verify RBAC policies before operations", "Use least privilege access principles" ], "related_errors": [ 401 ] }, "404": { "code": 404, "name": "Not Found", "description": "The requested resource does not exist", "common_causes": [ "Resource was deleted", "Incorrect resource name or ID", "Wrong namespace specified", "Typo in resource path" ], "diagnostic_steps": [ { "step": 1, "action": "List resources", "description": "List all resources of this type to verify existence", "command": "GET /api/.../namespaces/{namespace}/{resource_type}" }, { "step": 2, "action": "Check namespace", "description": "Verify operating in correct namespace" }, { "step": 3, "action": "Verify resource name", "description": "Check for typos in resource name" }, { "step": 4, "action": "Check deletion status", "description": "Verify resource was not recently deleted" } ], "prevention": [ "List resources before attempting operations", "Use tab completion or autocomplete", "Implement existence checks in scripts" ], "related_errors": [ 410 ] }, "409": { "code": 409, "name": "Conflict", "description": "The request conflicts with current resource state", "common_causes": [ "Resource with same name already exists", "Concurrent modification detected", "Resource in transitional state", "Dependency conflict" ], "diagnostic_steps": [ { "step": 1, "action": "Check resource existence", "description": "Verify if resource already exists", "command": "GET /api/.../namespaces/{namespace}/{resource_type}/{name}" }, { "step": 2, "action": "Check resource state", "description": "Verify resource is not in a transitional state" }, { "step": 3, "action": "Review dependencies", "description": "Check for conflicting dependent resources" }, { "step": 4, "action": "Use unique naming", "description": "Try with a different resource name" } ], "prevention": [ "Check existence before creation", "Use unique naming conventions", "Implement retry logic with backoff", "Add timestamps or UUIDs to names" ], "related_errors": [ 423 ] }, "422": { "code": 422, "name": "Unprocessable Entity", "description": "The request is well-formed but contains semantic errors", "common_causes": [ "Business logic validation failure", "Invalid resource configuration", "Incompatible field combinations", "Referenced resources don't meet requirements" ], "diagnostic_steps": [ { "step": 1, "action": "Review error details", "description": "Check response body for specific validation errors" }, { "step": 2, "action": "Validate configuration", "description": "Compare configuration against documentation requirements" }, { "step": 3, "action": "Check dependencies", "description": "Verify referenced resources meet all requirements" }, { "step": 4, "action": "Review constraints", "description": "Check field-level constraints and requirements" } ], "prevention": [ "Use configuration templates", "Validate against OpenAPI spec", "Review minimum configuration requirements" ], "related_errors": [ 400 ] }, "429": { "code": 429, "name": "Too Many Requests", "description": "Rate limit exceeded", "common_causes": [ "Too many requests in time window", "Batch operations without delays", "Parallel operations exceeding limits", "Shared rate limit pool exhausted" ], "diagnostic_steps": [ { "step": 1, "action": "Check Retry-After header", "description": "Note the suggested wait time from response headers" }, { "step": 2, "action": "Review request rate", "description": "Count requests made in recent time window" }, { "step": 3, "action": "Implement backoff", "description": "Add exponential backoff between requests" } ], "prevention": [ "Implement exponential backoff", "Add delays between batch operations", "Use parallel request limits", "Cache responses where appropriate" ], "related_errors": [ 503 ] }, "500": { "code": 500, "name": "Internal Server Error", "description": "An unexpected server error occurred", "common_causes": [ "Temporary service issue", "Bug in request handling", "Backend service failure", "Resource constraint", "Client-Side Defense enabled on an http_loadbalancer without a protected_domain registered in the same namespace ('Failed to get CSD JS Configuration ... ensure the domain to protect is configured')" ], "diagnostic_steps": [ { "step": 1, "action": "Retry request", "description": "Wait a moment and retry the request" }, { "step": 2, "action": "Check service status", "description": "Verify F5 XC service health status" }, { "step": 3, "action": "Simplify request", "description": "Try with minimal configuration" }, { "step": 4, "action": "Client-Side Defense: verify prerequisite", "description": "If the error mentions 'CSD JS Configuration', register a protected_domain (eTLD+1) in the load balancer's OWN namespace before enabling client_side_defense (see the http_loadbalancer spec.client_side_defense x-f5xc-requires)", "command": "GET /api/shape/csd/namespaces/{namespace}/js_configuration" }, { "step": 5, "action": "Contact support", "description": "If persistent, open support ticket with request ID" } ], "prevention": [ "Implement retry logic", "Monitor service status pages", "Use health check endpoints", "For Client-Side Defense: register a protected_domain (eTLD+1) in the load balancer's namespace before enabling client_side_defense" ], "related_errors": [ 502, 503 ] }, "502": { "code": 502, "name": "Bad Gateway", "description": "Upstream service returned invalid response", "common_causes": [ "Upstream service unavailable", "Network connectivity issues", "Timeout from backend services" ], "diagnostic_steps": [ { "step": 1, "action": "Retry request", "description": "Wait and retry the request" }, { "step": 2, "action": "Check connectivity", "description": "Verify network connectivity to API endpoint" }, { "step": 3, "action": "Check service status", "description": "Verify F5 XC service availability" } ], "prevention": [ "Implement retry logic with backoff", "Use multiple endpoints for redundancy" ], "related_errors": [ 500, 503 ] }, "503": { "code": 503, "name": "Service Unavailable", "description": "Service is temporarily unavailable", "common_causes": [ "Service maintenance", "Overload condition", "Deployment in progress", "Regional outage" ], "diagnostic_steps": [ { "step": 1, "action": "Check Retry-After header", "description": "Note suggested retry time if present" }, { "step": 2, "action": "Wait and retry", "description": "Implement exponential backoff" }, { "step": 3, "action": "Check status page", "description": "Verify service status for maintenance windows" } ], "prevention": [ "Implement circuit breaker pattern", "Subscribe to status page updates", "Build in retry logic with backoff" ], "related_errors": [ 500, 502 ] }, "504": { "code": 504, "name": "Gateway Timeout", "description": "Request timed out waiting for response", "common_causes": [ "Long-running operation", "Backend overloaded", "Network latency issues", "Large payload processing" ], "diagnostic_steps": [ { "step": 1, "action": "Reduce payload size", "description": "Try with smaller request payload" }, { "step": 2, "action": "Check operation status", "description": "For async operations, check status separately" }, { "step": 3, "action": "Retry with longer timeout", "description": "If client-controlled, increase timeout" } ], "prevention": [ "Use pagination for large requests", "Break large operations into smaller batches", "Use async operation patterns" ], "related_errors": [ 408, 503 ] } }, "resource_errors": { "dns_zone": [ { "error_code": 400, "pattern": "invalid record", "resolution": "Verify DNS record format matches record type requirements" }, { "error_code": 409, "pattern": "zone exists", "resolution": "Use existing zone or delete before recreation" } ], "http_loadbalancer": [ { "error_code": 400, "pattern": "origin_pool.*not found", "resolution": "Create the referenced origin pool before creating the load balancer" }, { "error_code": 400, "pattern": "certificate.*invalid", "resolution": "Verify certificate format and upload a valid certificate first" }, { "error_code": 409, "pattern": "already exists", "resolution": "Use a unique name or delete the existing load balancer" } ], "origin_pool": [ { "error_code": 400, "pattern": "invalid port", "resolution": "Specify a valid port number between 1-65535" }, { "error_code": 400, "pattern": "invalid.*address", "resolution": "Verify IP address format or DNS name resolution" } ], "waf": [ { "error_code": 400, "pattern": "invalid rule", "resolution": "Validate WAF rule syntax against rule specification" }, { "error_code": 409, "pattern": "already attached", "resolution": "Detach existing WAF policy before attaching new one" } ] } }, acronyms: { "version": "1.0.0", "categories": [ "Networking", "Security", "Load Balancing", "Cloud & Infrastructure", "F5 Specific", "Standards & Formats", "Protocols", "Other" ], "acronyms": [ { "acronym": "TCP", "expansion": "Transmission Control Protocol", "category": "Networking" }, { "acronym": "UDP", "expansion": "User Datagram Protocol", "category": "Networking" }, { "acronym": "HTTP", "expansion": "Hypertext Transfer Protocol", "category": "Networking" }, { "acronym": "HTTPS", "expansion": "Hypertext Transfer Protocol Secure", "category": "Networking" }, { "acronym": "DNS", "expansion": "Domain Name System", "category": "Networking" }, { "acronym": "IP", "expansion": "Internet Protocol", "category": "Networking" }, { "acronym": "IPv4", "expansion": "Internet Protocol version 4", "category": "Networking" }, { "acronym": "IPv6", "expansion": "Internet Protocol version 6", "category": "Networking" }, { "acronym": "BGP", "expansion": "Border Gateway Protocol", "category": "Networking" }, { "acronym": "OSPF", "expansion": "Open Shortest Path First", "category": "Networking" }, { "acronym": "VLAN", "expansion": "Virtual Local Area Network", "category": "Networking" }, { "acronym": "VPN", "expansion": "Virtual Private Network", "category": "Networking" }, { "acronym": "CIDR", "expansion": "Classless Inter-Domain Routing", "category": "Networking" }, { "acronym": "NAT", "expansion": "Network Address Translation", "category": "Networking" }, { "acronym": "SNAT", "expansion": "Source Network Address Translation", "category": "Networking" }, { "acronym": "DNAT", "expansion": "Destination Network Address Translation", "category": "Networking" }, { "acronym": "MAC", "expansion": "Media Access Control", "category": "Networking" }, { "acronym": "ARP", "expansion": "Address Resolution Protocol", "category": "Networking" }, { "acronym": "NIC", "expansion": "Network Interface Card", "category": "Networking" }, { "acronym": "MTU", "expansion": "Maximum Transmission Unit", "category": "Networking" }, { "acronym": "QoS", "expansion": "Quality of Service", "category": "Networking" }, { "acronym": "MPLS", "expansion": "Multiprotocol Label Switching", "category": "Networking" }, { "acronym": "GRE", "expansion": "Generic Routing Encapsulation", "category": "Networking" }, { "acronym": "VXLAN", "expansion": "Virtual Extensible LAN", "category": "Networking" }, { "acronym": "IPsec", "expansion": "Internet Protocol Security", "category": "Networking" }, { "acronym": "SSL", "expansion": "Secure Sockets Layer", "category": "Networking" }, { "acronym": "TLS", "expansion": "Transport Layer Security", "category": "Networking" }, { "acronym": "SNI", "expansion": "Server Name Indication", "category": "Networking" }, { "acronym": "mTLS", "expansion": "Mutual Transport Layer Security", "category": "Networking" }, { "acronym": "FQDN", "expansion": "Fully Qualified Domain Name", "category": "Networking" }, { "acronym": "VIP", "expansion": "Virtual IP Address", "category": "Networking" }, { "acronym": "ASN", "expansion": "Autonomous System Number", "category": "Networking" }, { "acronym": "WAF", "expansion": "Web Application Firewall", "category": "Security" }, { "acronym": "DDoS", "expansion": "Distributed Denial of Service", "category": "Security" }, { "acronym": "XSS", "expansion": "Cross-Site Scripting", "category": "Security" }, { "acronym": "CSRF", "expansion": "Cross-Site Request Forgery", "category": "Security" }, { "acronym": "SQLi", "expansion": "SQL Injection", "category": "Security" }, { "acronym": "OWASP", "expansion": "Open Web Application Security Project", "category": "Security" }, { "acronym": "CVE", "expansion": "Common Vulnerabilities and Exposures", "category": "Security" }, { "acronym": "JWT", "expansion": "JSON Web Token", "category": "Security" }, { "acronym": "OAuth", "expansion": "Open Authorization", "category": "Security" }, { "acronym": "OIDC", "expansion": "OpenID Connect", "category": "Security" }, { "acronym": "SAML", "expansion": "Security Assertion Markup Language", "category": "Security" }, { "acronym": "LDAP", "expansion": "Lightweight Directory Access Protocol", "category": "Security" }, { "acronym": "AD", "expansion": "Active Directory", "category": "Security" }, { "acronym": "ACL", "expansion": "Access Control List", "category": "Security" }, { "acronym": "RBAC", "expansion": "Role-Based Access Control", "category": "Security" }, { "acronym": "MFA", "expansion": "Multi-Factor Authentication", "category": "Security" }, { "acronym": "SSO", "expansion": "Single Sign-On", "category": "Security" }, { "acronym": "PKI", "expansion": "Public Key Infrastructure", "category": "Security" }, { "acronym": "CA", "expansion": "Certificate Authority", "category": "Security" }, { "acronym": "CRL", "expansion": "Certificate Revocation List", "category": "Security" }, { "acronym": "LB", "expansion": "Load Balancer", "category": "Load Balancing" }, { "acronym": "SLB", "expansion": "Server Load Balancer", "category": "Load Balancing" }, { "acronym": "GLB", "expansion": "Global Load Balancer", "category": "Load Balancing" }, { "acronym": "GSLB", "expansion": "Global Server Load Balancing", "category": "Load Balancing" }, { "acronym": "ADC", "expansion": "Application Delivery Controller", "category": "Load Balancing" }, { "acronym": "NLB", "expansion": "Network Load Balancer", "category": "Load Balancing" }, { "acronym": "ALB", "expansion": "Application Load Balancer", "category": "Load Balancing" }, { "acronym": "ELB", "expansion": "Elastic Load Balancer", "category": "Load Balancing" }, { "acronym": "AWS", "expansion": "Amazon Web Services", "category": "Cloud & Infrastructure" }, { "acronym": "GCP", "expansion": "Google Cloud Platform", "category": "Cloud & Infrastructure" }, { "acronym": "Azure", "expansion": "Microsoft Azure", "category": "Cloud & Infrastructure" }, { "acronym": "VPC", "expansion": "Virtual Private Cloud", "category": "Cloud & Infrastructure" }, { "acronym": "VNet", "expansion": "Virtual Network", "category": "Cloud & Infrastructure" }, { "acronym": "EC2", "expansion": "Elastic Compute Cloud", "category": "Cloud & Infrastructure" }, { "acronym": "EKS", "expansion": "Elastic Kubernetes Service", "category": "Cloud & Infrastructure" }, { "acronym": "AKS", "expansion": "Azure Kubernetes Service", "category": "Cloud & Infrastructure" }, { "acronym": "GKE", "expansion": "Google Kubernetes Engine", "category": "Cloud & Infrastructure" }, { "acronym": "VM", "expansion": "Virtual Machine", "category": "Cloud & Infrastructure" }, { "acronym": "K8s", "expansion": "Kubernetes", "category": "Cloud & Infrastructure" }, { "acronym": "API", "expansion": "Application Programming Interface", "category": "Cloud & Infrastructure" }, { "acronym": "REST", "expansion": "Representational State Transfer", "category": "Cloud & Infrastructure" }, { "acronym": "gRPC", "expansion": "gRPC Remote Procedure Call", "category": "Cloud & Infrastructure" }, { "acronym": "SDK", "expansion": "Software Development Kit", "category": "Cloud & Infrastructure" }, { "acronym": "CLI", "expansion": "Command Line Interface", "category": "Cloud & Infrastructure" }, { "acronym": "CDN", "expansion": "Content Delivery Network", "category": "Cloud & Infrastructure" }, { "acronym": "SaaS", "expansion": "Software as a Service", "category": "Cloud & Infrastructure" }, { "acronym": "PaaS", "expansion": "Platform as a Service", "category": "Cloud & Infrastructure" }, { "acronym": "IaaS", "expansion": "Infrastructure as a Service", "category": "Cloud & Infrastructure" }, { "acronym": "CRD", "expansion": "Custom Resource Definition", "category": "Cloud & Infrastructure" }, { "acronym": "XC", "expansion": "Distributed Cloud", "category": "F5 Specific" }, { "acronym": "F5", "expansion": "F5 Networks", "category": "F5 Specific" }, { "acronym": "BIG-IP", "expansion": "BIG-IP Application Delivery Controller", "category": "F5 Specific" }, { "acronym": "NGINX", "expansion": "NGINX Web Server", "category": "F5 Specific" }, { "acronym": "RE", "expansion": "Regional Edge", "category": "F5 Specific" }, { "acronym": "CE", "expansion": "Customer Edge", "category": "F5 Specific" }, { "acronym": "POP", "expansion": "Point of Presence", "category": "F5 Specific" }, { "acronym": "VES", "expansion": "Volterra Edge Services", "category": "F5 Specific" }, { "acronym": "JSON", "expansion": "JavaScript Object Notation", "category": "Standards & Formats" }, { "acronym": "XML", "expansion": "Extensible Markup Language", "category": "Standards & Formats" }, { "acronym": "YAML", "expansion": "YAML Ain't Markup Language", "category": "Standards & Formats" }, { "acronym": "CSV", "expansion": "Comma-Separated Values", "category": "Standards & Formats" }, { "acronym": "HTML", "expansion": "Hypertext Markup Language", "category": "Standards & Formats" }, { "acronym": "CSS", "expansion": "Cascading Style Sheets", "category": "Standards & Formats" }, { "acronym": "URL", "expansion": "Uniform Resource Locator", "category": "Standards & Formats" }, { "acronym": "URI", "expansion": "Uniform Resource Identifier", "category": "Standards & Formats" }, { "acronym": "UUID", "expansion": "Universally Unique Identifier", "category": "Standards & Formats" }, { "acronym": "RFC", "expansion": "Request for Comments", "category": "Standards & Formats" }, { "acronym": "ISO", "expansion": "International Organization for Standardization", "category": "Standards & Formats" }, { "acronym": "UTC", "expansion": "Coordinated Universal Time", "category": "Standards & Formats" }, { "acronym": "TTL", "expansion": "Time to Live", "category": "Standards & Formats" }, { "acronym": "SMTP", "expansion": "Simple Mail Transfer Protocol", "category": "Protocols" }, { "acronym": "IMAP", "expansion": "Internet Message Access Protocol", "category": "Protocols" }, { "acronym": "POP3", "expansion": "Post Office Protocol version 3", "category": "Protocols" }, { "acronym": "FTP", "expansion": "File Transfer Protocol", "category": "Protocols" }, { "acronym": "SFTP", "expansion": "SSH File Transfer Protocol", "category": "Protocols" }, { "acronym": "SSH", "expansion": "Secure Shell", "category": "Protocols" }, { "acronym": "RDP", "expansion": "Remote Desktop Protocol", "category": "Protocols" }, { "acronym": "SNMP", "expansion": "Simple Network Management Protocol", "category": "Protocols" }, { "acronym": "NTP", "expansion": "Network Time Protocol", "category": "Protocols" }, { "acronym": "RADIUS", "expansion": "Remote Authentication Dial-In User Service", "category": "Protocols" }, { "acronym": "TACACS", "expansion": "Terminal Access Controller Access-Control System", "category": "Protocols" }, { "acronym": "CPU", "expansion": "Central Processing Unit", "category": "Other" }, { "acronym": "GPU", "expansion": "Graphics Processing Unit", "category": "Other" }, { "acronym": "RAM", "expansion": "Random Access Memory", "category": "Other" }, { "acronym": "SSD", "expansion": "Solid State Drive", "category": "Other" }, { "acronym": "HDD", "expansion": "Hard Disk Drive", "category": "Other" }, { "acronym": "IOPS", "expansion": "Input/Output Operations Per Second", "category": "Other" }, { "acronym": "I/O", "expansion": "Input/Output", "category": "Other" }, { "acronym": "ID", "expansion": "Identifier", "category": "Other" }, { "acronym": "OS", "expansion": "Operating System", "category": "Other" }, { "acronym": "GUI", "expansion": "Graphical User Interface", "category": "Other" }, { "acronym": "UI", "expansion": "User Interface", "category": "Other" }, { "acronym": "UX", "expansion": "User Experience", "category": "Other" }, { "acronym": "RTT", "expansion": "Round-Trip Time", "category": "Other" }, { "acronym": "SLA", "expansion": "Service Level Agreement", "category": "Other" }, { "acronym": "KPI", "expansion": "Key Performance Indicator", "category": "Other" } ] }, }; export const API_SPEC_DATA: Readonly> = { "admin_console_and_ui": { "openapi": "3.0.3", "info": { "title": "Admin Console And Ui", "description": "Dashboard customization through namespace-bounded asset libraries. Storage systems for branding resources, layout templates, and interactive widgets. Catalog organization with system object references tracking modification history and deployment status. Schema enforcement ensuring configuration validity across tenant hierarchies and environment boundaries.", "version": "4.0.0", "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": "Dashboard customization through namespace-bounded asset libraries. Storage systems for branding resources, layout templates, and interactive widgets. Catalog organization with system object references tracking modification history and deployment status. Schema enforcement ensuring configuration validity across tenant hierarchies and environment boundaries.", "x-f5xc-summary": "Namespace-scoped visual elements with versioning. Custom widget deployment and catalog management for portal surfaces.", "x-f5xc-cli-domain": "admin_console_and_ui", "externalDocs": { "url": "https://docs.cloud.f5.com/docs/ves-concepts/console", "description": "F5 XC Documentation - Console UI" }, "x-f5xc-api-reference-url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/admin_console_and_ui/", "x-f5xc-best-practices": { "common_errors": [ { "code": 400, "message": "Invalid request body", "resolution": "Validate JSON structure and required fields before submission", "prevention": "Use schema validation from OpenAPI spec" }, { "code": 401, "message": "Authentication failed", "resolution": "Verify API token is valid and not expired", "prevention": "Use environment variables for token management" }, { "code": 403, "message": "Permission denied", "resolution": "Check user role and namespace permissions", "prevention": "Verify RBAC policies before operations" }, { "code": 404, "message": "Resource not found", "resolution": "Verify resource name and namespace exist", "prevention": "List resources before attempting operations" }, { "code": 409, "message": "Resource already exists", "resolution": "Use unique name or delete existing resource", "prevention": "Check existence before creation" }, { "code": 429, "message": "Rate limit exceeded", "resolution": "Implement exponential backoff and retry logic", "prevention": "Batch operations and add delays between requests" } ], "security_notes": [ "Always use HTTPS for all API communications", "Store API tokens securely, never in source code", "Rotate API tokens regularly following security policies" ], "performance_tips": [ "Use pagination for large result sets", "Batch related operations when possible", "Cache read-only responses appropriately" ] }, "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "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": "schemas" }, { "name": "web" } ], "paths": { "/api/web/custom/namespaces/system/dashboards/{dashboard_id}/current_layout": { "get": { "summary": "GET Current Default Dashboard Layout.", "description": "GetCurrentDashboard retrieves the default dashboard layout selected by the user. If no default is set, an empty response is returned.", "operationId": "ves.io.schema.ui.dashboard_layout.CustomAPI.GetCurrentDashboard", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/dashboard_layoutObject" } } } }, "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": "dashboard_id", "description": "DashboardId\n\nx-required\nDashboardId is the unique ID for each dashboard types, the preset unique ID is defined in stellar code.", "in": "path", "required": true, "x-displayname": "DashboardId.", "schema": { "type": "string" } } ], "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/admin_console_and_ui/" }, "x-ves-proto-rpc": "ves.io.schema.ui.dashboard_layout.CustomAPI.GetCurrentDashboard", "tags": [ "web" ], "x-f5xc-operation-metadata": { "purpose": "Resource retrieval operation", "required_fields": [ "path.dashboard_id" ], "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.dashboard_id" ], "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": "Dashboard Layout Component.", "x-ves-proto-service": "ves.io.schema.ui.dashboard_layout.CustomAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/web/custom/namespaces/system/dashboards/{dashboard_id}/layouts": { "get": { "summary": "List Dashboard Layouts.", "description": "List returns all dashboard layouts created by the user.", "operationId": "ves.io.schema.ui.dashboard_layout.CustomAPI.List", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/dashboard_layoutListDashboardLayoutResponse" } } } }, "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": "dashboard_id", "description": "DashboardId\n\nx-required\nDashboardId is the unique ID for each dashboard types, the preset unique ID is defined in stellar code.", "in": "path", "required": true, "x-displayname": "DashboardId.", "schema": { "type": "string" } } ], "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/admin_console_and_ui/" }, "x-ves-proto-rpc": "ves.io.schema.ui.dashboard_layout.CustomAPI.List", "tags": [ "web" ], "x-f5xc-operation-metadata": { "purpose": "Resource retrieval operation", "required_fields": [ "path.dashboard_id" ], "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.dashboard_id" ], "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": "Create Dashboard Layout.", "description": "Create creates a new dashboard layout with the details specified in the request.", "operationId": "ves.io.schema.ui.dashboard_layout.CustomAPI.Create", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/dashboard_layoutObject" } } } }, "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": "dashboard_id", "description": "DashboardId\n\nx-required\nDashboardId is the unique ID for each dashboard types, the preset unique ID is defined in stellar code.", "in": "path", "required": true, "x-displayname": "DashboardId.", "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/dashboard_layoutCreateDashboardLayoutRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/admin_console_and_ui/" }, "x-ves-proto-rpc": "ves.io.schema.ui.dashboard_layout.CustomAPI.Create", "tags": [ "web" ], "x-f5xc-operation-metadata": { "purpose": "Resource creation operation", "required_fields": [ "metadata.name", "metadata.namespace", "path.dashboard_id" ], "optional_fields": [], "field_docs": {}, "conditions": { "prerequisites": [ "Active namespace" ], "postconditions": [ "Layout resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "layout" ] }, "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.dashboard_id" ], "x-f5xc-danger-level": "medium", "x-f5xc-side-effects": { "creates": [ "layout" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "Dashboard Layout Component.", "x-ves-proto-service": "ves.io.schema.ui.dashboard_layout.CustomAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/web/custom/namespaces/system/dashboards/{dashboard_id}/layouts/{layout_name}": { "get": { "summary": "GET Dashboard Layout.", "description": "GET fetches a specific dashboard layout based on the `dashboard_id` and 'layout_name' provided in the request.", "operationId": "ves.io.schema.ui.dashboard_layout.CustomAPI.Get", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/dashboard_layoutObject" } } } }, "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": "dashboard_id", "description": "DashboardId\n\nx-required\nDashboardId is the unique ID for each dashboard types, the preset unique ID is defined in stellar code.", "in": "path", "required": true, "x-displayname": "DashboardId.", "schema": { "type": "string" } }, { "name": "layout_name", "description": "LayoutName\n\nx-required\nLayoutName is the name of the dashboard layout.", "in": "path", "required": true, "x-displayname": "LayoutName.", "schema": { "type": "string" } } ], "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/admin_console_and_ui/" }, "x-ves-proto-rpc": "ves.io.schema.ui.dashboard_layout.CustomAPI.Get", "tags": [ "web" ], "x-f5xc-operation-metadata": { "purpose": "Resource retrieval operation", "required_fields": [ "path.dashboard_id", "path.layout_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": "low", "resource_usage": "low" } }, "x-f5xc-required-fields": [ "path.dashboard_id", "path.layout_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" } }, "delete": { "summary": "DELETE Dashboard Layout.", "description": "DELETE deletes a specific dashboard layout based on the `dashboard_id` and 'layout_name' provided in the request.", "operationId": "ves.io.schema.ui.dashboard_layout.CustomAPI.Delete", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/uidashboard_layoutEmpty" } } } }, "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": "dashboard_id", "description": "DashboardId\n\nx-required\nDashboardId is the unique ID for each dashboard types, the preset unique ID is defined in stellar code.", "in": "path", "required": true, "x-displayname": "DashboardId.", "schema": { "type": "string" } }, { "name": "layout_name", "description": "LayoutName\n\nx-required\nLayoutName is the name of the dashboard layout.", "in": "path", "required": true, "x-displayname": "LayoutName.", "schema": { "type": "string" } } ], "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/admin_console_and_ui/" }, "x-ves-proto-rpc": "ves.io.schema.ui.dashboard_layout.CustomAPI.Delete", "tags": [ "web" ], "x-f5xc-operation-metadata": { "purpose": "Resource deletion operation", "required_fields": [ "path.dashboard_id", "path.layout_name" ], "optional_fields": [], "field_docs": {}, "conditions": { "prerequisites": [ "Active namespace" ], "postconditions": [ "Resource removed from system", "Associated resources may be affected" ] }, "side_effects": { "deletes": [ "layout", "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.dashboard_id", "path.layout_name" ], "x-f5xc-danger-level": "high", "x-f5xc-confirmation-required": true, "x-f5xc-side-effects": { "deletes": [ "layout", "contained_resources" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 500, "p95_ms": 1500, "p99_ms": 4000, "sample_count": 0, "source": "estimate" } }, "put": { "summary": "Update Dashboard Layout.", "description": "Update updates an existing dashboard layout identified by `dashboard_id` and 'layout_name' with the new details provided in the request.", "operationId": "ves.io.schema.ui.dashboard_layout.CustomAPI.Update", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/dashboard_layoutObject" } } } }, "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": "dashboard_id", "description": "DashboardId\n\nx-required\nDashboardId is the unique ID for each dashboard types, the preset unique ID is defined in stellar code.", "in": "path", "required": true, "x-displayname": "DashboardId.", "schema": { "type": "string" } }, { "name": "layout_name", "description": "LayoutName\n\nx-required\nLayoutName is the name of the dashboard layout.", "in": "path", "required": true, "x-displayname": "LayoutName.", "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/dashboard_layoutUpdateDashboardLayoutRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/admin_console_and_ui/" }, "x-ves-proto-rpc": "ves.io.schema.ui.dashboard_layout.CustomAPI.Update", "tags": [ "web" ], "x-f5xc-operation-metadata": { "purpose": "Resource replacement operation", "required_fields": [ "path.dashboard_id", "path.layout_name" ], "optional_fields": [], "field_docs": {}, "conditions": { "prerequisites": [ "Active namespace" ], "postconditions": [ "Resource updated with new values" ] }, "side_effects": { "modifies": [ "layout" ] }, "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.dashboard_id", "path.layout_name" ], "x-f5xc-danger-level": "medium", "x-f5xc-side-effects": { "modifies": [ "layout" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 800, "p95_ms": 2500, "p99_ms": 6000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "Dashboard Layout Component.", "x-ves-proto-service": "ves.io.schema.ui.dashboard_layout.CustomAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/schemas/.*": { "get": { "summary": "GET", "description": "GET fetches the UI schema swagger file from the server\nThis is basically a file server service.", "operationId": "ves.io.schema.ui.ui_schemas.CustomAPI.Get", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "type": "object" } } } }, "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" } } } } }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/admin_console_and_ui/" }, "x-ves-proto-rpc": "ves.io.schema.ui.ui_schemas.CustomAPI.Get", "tags": [ "schemas" ], "x-f5xc-operation-metadata": { "purpose": "Resource retrieval operation", "required_fields": [], "optional_fields": [], "field_docs": {}, "conditions": { "prerequisites": [], "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-danger-level": "low", "x-f5xc-discovered-response-time": { "p50_ms": 200, "p95_ms": 800, "p99_ms": 2000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "UI Schema", "x-ves-proto-service": "ves.io.schema.ui.ui_schemas.CustomAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/web/namespaces/{namespace}/static_components": { "get": { "summary": "List UI Static Component.", "description": "List the set of static_component in a namespace.", "operationId": "ves.io.schema.ui.static_component.API.List", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/static_componentListResponse" } } } }, "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 static_component.", "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/admin_console_and_ui/" }, "x-ves-proto-rpc": "ves.io.schema.ui.static_component.API.List", "tags": [ "web" ], "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": "UI Static Component.", "x-ves-proto-service": "ves.io.schema.ui.static_component.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/web/namespaces/{namespace}/static_components/{name}": { "get": { "summary": "GET UI static component.", "description": "GET UI static component.", "operationId": "ves.io.schema.ui.static_component.API.Get", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/static_componentGetResponse" } } } }, "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 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_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/admin_console_and_ui/" }, "x-ves-proto-rpc": "ves.io.schema.ui.static_component.API.Get", "tags": [ "web" ], "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" } }, "x-displayname": "UI Static Component.", "x-ves-proto-service": "ves.io.schema.ui.static_component.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" } }, "components": { "securitySchemes": { "ApiToken": { "type": "apiKey", "name": "Authorization", "in": "header", "description": "API Token authentication. Format: 'APIToken '" }, "apiKeyAuth": { "type": "apiKey", "in": "header", "name": "Authorization", "description": "F5 XC API Token (format: APIToken )" } }, "schemas": { "dashboard_layoutCreateDashboardLayoutRequest": { "type": "object", "description": "CreateDashboardLayoutRequest contains details to create or update a dashboard layout.", "title": "CreateDashboardLayoutRequest", "x-displayname": "CreateDashboardLayoutRequest.", "x-ves-proto-message": "ves.io.schema.ui.dashboard_layout.CreateDashboardLayoutRequest", "properties": { "dashboard_id": { "type": "string", "description": "DashboardId is the unique ID for each dashboard types, the preset unique ID is defined in stellar code.", "title": "DashboardId", "x-displayname": "DashboardId.", "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": "DashboardId is the unique ID for each dashboard types, the preset unique ID is defined in stellar code.", "x-f5xc-description-medium": "DashboardId is the unique ID for each dashboard types, the preset unique ID is defined in stellar code.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false }, "x-field-mutability": "read-only" }, "description": { "type": "string", "description": "Description describes the dashboard layout.", "title": "Description", "x-displayname": "Description.", "x-f5xc-description-short": "Description describes the dashboard layout.", "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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "is_selected": { "type": "boolean", "description": "IsSelected indicates whether the current layout is the default selected by the user.", "title": "IsSelected", "format": "boolean", "x-displayname": "IsSelected.", "x-f5xc-description-short": "IsSelected indicates whether the current layout is the default selected by the user.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "is_shared": { "type": "boolean", "description": "IsShared is a boolean flag when set to true users in the tenant can utilize the same dashboard layout.", "title": "IsShared", "format": "boolean", "x-displayname": "IsShared", "x-f5xc-description-short": "IsShared is a boolean flag when set to true users in the tenant can utilize the same dashboard layout.", "x-f5xc-description-medium": "IsShared is a boolean flag when set to true users in the tenant can utilize the same dashboard layout.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "layout_data": { "type": "object", "description": "LayoutData holds the layout structure encoded as a JSON.", "title": "LayoutData", "x-displayname": "LayoutData.", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "LayoutData holds the layout structure encoded as a JSON.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "layout_name": { "type": "string", "description": "LayoutName is the name of the dashboard layout.", "title": "LayoutName", "minLength": 1, "maxLength": 256, "x-displayname": "LayoutName.", "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-example": "example-resource", "x-f5xc-description-short": "LayoutName is the name of the dashboard layout.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "minLength": 1, "maxLength": 256, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } } }, "x-f5xc-description-short": "CreateDashboardLayoutRequest contains details to create or update a dashboard layout.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for dashboard_layoutCreateDashboardLayoutRequest", "required_fields": [ "dashboard_id", "layout_name" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for dashboard_layoutCreateDashboardLayoutRequest\nmetadata:\n name: example\n namespace: default\nspec:\n dashboard_id: value\n layout_name: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"dashboard_id\": \"value\",\n \"layout_name\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "observability", "multi_tenant_pattern": "per-tenant" } } }, "dashboard_layoutGlobalSpecType": { "type": "object", "description": "GlobalSpecType stores information about a dashboard layout.", "title": "GlobalSpecType", "x-displayname": "GlobalSpecType.", "x-ves-proto-message": "ves.io.schema.ui.dashboard_layout.GlobalSpecType", "properties": { "dashboard_id": { "type": "string", "description": "DashboardId is the unique ID for each dashboard layout type, the preset unique ID is defined in stellar code.", "title": "DashboardId", "x-displayname": "DashboardId.", "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": "DashboardId is the unique ID for each dashboard layout type, the preset unique ID is defined in stellar code.", "x-f5xc-description-medium": "DashboardId is the unique ID for each dashboard layout type, the preset unique ID is defined in stellar code.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false }, "x-field-mutability": "read-only" }, "description": { "type": "string", "description": "Description describes the dashboard layout.", "title": "Description", "x-displayname": "Description.", "x-f5xc-description-short": "Description describes the dashboard layout.", "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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "is_selected": { "type": "boolean", "description": "IsSelected indicates whether the current layout is the default selected by the user.", "title": "IsSelected", "format": "boolean", "x-displayname": "IsSelected.", "x-f5xc-description-short": "IsSelected indicates whether the current layout is the default selected by the user.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "is_shared": { "type": "boolean", "description": "IsShared is a boolean flag when set to true users in the tenant can utilize the same dashboard layout.", "title": "IsShared", "format": "boolean", "x-displayname": "IsShared", "x-f5xc-description-short": "IsShared is a boolean flag when set to true users in the tenant can utilize the same dashboard layout.", "x-f5xc-description-medium": "IsShared is a boolean flag when set to true users in the tenant can utilize the same dashboard layout.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "layout_data": { "type": "object", "description": "LayoutData holds the layout structure encoded as a JSON.", "title": "LayoutData", "x-displayname": "LayoutData.", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "LayoutData holds the layout structure encoded as a JSON.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "name": { "type": "string", "description": "Name is the name of the dashboard layout.", "title": "Name", "minLength": 1, "maxLength": 256, "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": "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-example": "example-resource", "x-f5xc-description-short": "Name is the name of the dashboard layout.", "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-08-20T09:12:47+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": "GlobalSpecType stores information about a dashboard layout.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for dashboard_layoutGlobalSpecType", "required_fields": [ "dashboard_id", "name" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for dashboard_layoutGlobalSpecType\nmetadata:\n name: example\n namespace: default\nspec:\n dashboard_id: value\n name: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"dashboard_id\": \"value\",\n \"name\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "observability", "multi_tenant_pattern": "per-tenant" } } }, "dashboard_layoutLayoutListItem": { "type": "object", "description": "LayoutListItem contains the name, description, and selection status of the dashboard layout.", "title": "LayoutListItem", "x-displayname": "LayoutListItem.", "x-ves-proto-message": "ves.io.schema.ui.dashboard_layout.LayoutListItem", "properties": { "description": { "type": "string", "description": "Description describes the dashboard layout.", "title": "Description", "x-displayname": "Description.", "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": "Description describes the dashboard layout.", "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false }, "minLength": 21, "x-reconciled-from-discovery": true, "x-reconciled-at": "2026-08-20T09:12:47+00:00" }, "is_selected": { "type": "boolean", "description": "IsSelected indicates whether the current layout is the default selected by the user.", "title": "IsSelected", "format": "boolean", "x-displayname": "IsSelected.", "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": "IsSelected indicates whether the current layout is the default selected by the user.", "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "layout_name": { "type": "string", "description": "LayoutName is the name of the dashboard layout.", "title": "LayoutName", "minLength": 1, "maxLength": 256, "x-displayname": "LayoutName.", "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-example": "example-resource", "x-f5xc-description-short": "LayoutName is the name of the dashboard layout.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "minLength": 1, "maxLength": 256, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } } }, "x-f5xc-description-short": "LayoutListItem contains the name, description, and selection status of the dashboard layout.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for dashboard_layoutLayoutListItem", "required_fields": [ "description", "is_selected", "layout_name" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for dashboard_layoutLayoutListItem\nmetadata:\n name: example\n namespace: default\nspec:\n description: value\n is_selected: value\n layout_name: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"description\": \"value\",\n \"is_selected\": \"value\",\n \"layout_name\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "observability", "multi_tenant_pattern": "per-tenant" } } }, "dashboard_layoutListDashboardLayoutResponse": { "type": "object", "description": "ListDashboardLayoutResponse returns the name and description of the dashboard layouts created by the user.", "title": "ListDashboardLayoutResponse", "x-displayname": "ListDashboardLayoutResponse.", "x-ves-proto-message": "ves.io.schema.ui.dashboard_layout.ListDashboardLayoutResponse", "properties": { "layout_list": { "type": "array", "description": "LayoutList lists information about dashboards created by the user.", "title": "LayoutList", "items": { "$ref": "#/components/schemas/dashboard_layoutLayoutListItem" }, "x-displayname": "LayoutList.", "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": "LayoutList lists information about dashboards created by the user.", "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } } }, "x-f5xc-description-short": "ListDashboardLayoutResponse returns the name and description of the dashboard layouts created by the user.", "x-f5xc-description-medium": "ListDashboardLayoutResponse returns the name and description of the dashboard layouts created by the user.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for dashboard_layoutListDashboardLayoutResponse", "required_fields": [ "layout_list" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for dashboard_layoutListDashboardLayoutResponse\nmetadata:\n name: example\n namespace: default\nspec:\n layout_list: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"layout_list\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "observability", "multi_tenant_pattern": "per-tenant" } } }, "dashboard_layoutObject": { "type": "object", "description": "Dashboard Layout component object.", "title": "Dashboard Layout component", "x-displayname": "Dashboard Layout component.", "x-ves-proto-message": "ves.io.schema.ui.dashboard_layout.Object", "properties": { "metadata": { "allOf": [ { "$ref": "#/components/schemas/schemaObjectMetaType" } ], "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "spec": { "allOf": [ { "$ref": "#/components/schemas/dashboard_layoutSpecType" } ], "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "system_metadata": { "allOf": [ { "$ref": "#/components/schemas/schemaSystemObjectMetaType__ves_io_schema_api_credential" } ], "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 dashboard_layoutObject", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for dashboard_layoutObject\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "observability", "multi_tenant_pattern": "per-tenant" } } }, "dashboard_layoutSpecType": { "type": "object", "description": "Dashboard Layout specification.", "title": "SpecType", "x-displayname": "Specification.", "x-ves-proto-message": "ves.io.schema.ui.dashboard_layout.SpecType", "properties": { "gc_spec": { "allOf": [ { "$ref": "#/components/schemas/dashboard_layoutGlobalSpecType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for dashboard_layoutSpecType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for dashboard_layoutSpecType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "observability", "multi_tenant_pattern": "per-tenant" } } }, "dashboard_layoutUpdateDashboardLayoutRequest": { "type": "object", "description": "UpdateDashboardLayoutRequest contains details to update a dashboard layout.", "title": "UpdateDashboardLayoutRequest", "x-displayname": "UpdateDashboardLayoutRequestt.", "x-ves-proto-message": "ves.io.schema.ui.dashboard_layout.UpdateDashboardLayoutRequest", "properties": { "dashboard_id": { "type": "string", "description": "DashboardId is the unique ID for each dashboard types, the preset unique ID is defined in stellar code.", "title": "DashboardId", "x-displayname": "DashboardId.", "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": "DashboardId is the unique ID for each dashboard types, the preset unique ID is defined in stellar code.", "x-f5xc-description-medium": "DashboardId is the unique ID for each dashboard types, the preset unique ID is defined in stellar code.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false }, "x-field-mutability": "read-only" }, "description": { "type": "string", "description": "Description describes the dashboard layout.", "title": "Description", "x-displayname": "Description.", "x-f5xc-description-short": "Description describes the dashboard layout.", "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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "is_selected": { "type": "boolean", "description": "IsSelected indicates whether the current layout is the default selected by the user.", "title": "IsSelected", "format": "boolean", "x-displayname": "IsSelected.", "x-f5xc-description-short": "IsSelected indicates whether the current layout is the default selected by the user.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "is_shared": { "type": "boolean", "description": "IsShared is true if the layout is shared.", "title": "IsShared", "format": "boolean", "x-displayname": "IsShared", "x-f5xc-description-short": "IsShared is true if the layout is shared.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "layout_data": { "type": "object", "description": "LayoutData holds the layout structure encoded as a JSON.", "title": "LayoutData", "x-displayname": "LayoutData.", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "LayoutData holds the layout structure encoded as a JSON.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "layout_name": { "type": "string", "description": "LayoutName is the name of the dashboard layout.", "title": "LayoutName", "minLength": 1, "maxLength": 256, "x-displayname": "LayoutName.", "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-example": "example-resource", "x-f5xc-description-short": "LayoutName is the name of the dashboard layout.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "minLength": 1, "maxLength": 256, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "new_layout_name": { "type": "string", "description": "NewLayoutName is the new name of the dashboard layout.", "title": "NewLayoutName", "x-displayname": "NewLayoutName.", "x-f5xc-example": "example-resource", "x-f5xc-description-short": "NewLayoutName is the new name of the dashboard layout.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "UpdateDashboardLayoutRequest contains details to update a dashboard layout.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for dashboard_layoutUpdateDashboardLayoutRequest", "required_fields": [ "dashboard_id", "layout_name" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for dashboard_layoutUpdateDashboardLayoutRequest\nmetadata:\n name: example\n namespace: default\nspec:\n dashboard_id: value\n layout_name: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"dashboard_id\": \"value\",\n \"layout_name\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "observability", "multi_tenant_pattern": "per-tenant" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaInitializerType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "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_yaml": "# Minimal example for schemaInitializersType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "schemaObjectMetaType": { "type": "object", "description": "ObjectMetaType is metadata(common attributes) of an object that all configuration objects will have.\nThe information in this type can be specified by user during create and replace APIs.", "title": "ObjectMetaType", "x-displayname": "Metadata", "x-ves-proto-message": "ves.io.schema.ObjectMetaType", "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" }, "additionalProperties": { "type": "string" }, "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-08-20T09:12:47+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-08-20T09:12:47+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", "additionalProperties": { "type": "string" }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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. Object create will fail if\nprovided by the client and the value exists in the system. Typically generated by the\nserver on successful creation of an object and is not allowed to change once populated.\nShadowed by SystemObjectMeta's uid field.", "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. Object create will fail if provided by the client and the value exists in the system.", "x-f5xc-description-medium": "Uid is the unique in time and space value for this object. Object create will fail if provided by the client and the value exists in the system. Typically generated by the server on successful creation of an object and is not allowed to change once populated.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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-08-20T09:12:47+00:00" } }, "x-f5xc-description-short": "ObjectMetaType is metadata(common attributes) of an object that all configuration objects will have.", "x-f5xc-description-medium": "ObjectMetaType is metadata(common attributes) of an object that all configuration objects will have. The information in this type can be specified by user during create and replace APIs.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for schemaObjectMetaType", "required_fields": [ "name" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemaObjectMetaType\nmetadata:\n name: example\n namespace: default\nspec:\n name: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"name\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaObjectRefType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaStatusType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "schemaSystemObjectMetaType__ves_io_schema_api_credential": { "type": "object", "description": "SystemObjectMetaType is metadata generated or populated by the system for all persisted objects and\ncannot be updated directly by users.", "title": "SystemObjectMetaType", "x-displayname": "System Metadata.", "x-ves-proto-message": "ves.io.schema.SystemObjectMetaType", "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "readOnly": true, "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": "Value", "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "readOnly": true, "x-field-mutability": "read-only" }, "creator_cookie": { "type": "string", "description": "This can used by the creator of the object for later audit for e.g. By storing the\nversion identifying information of the object so at future it can be determined if\nversion present at remote end is current or stale.", "title": "creator_cookie", "x-displayname": "Creator Cookie.", "x-ves-example": "Value", "x-f5xc-example": "value", "x-f5xc-description-short": "Can used by the creator of the object for later audit for e.g.", "x-f5xc-description-medium": "Can used by the creator of the object for later audit for e.g. By storing the version identifying information of the object so at future it can be determined if version present at remote end is current or stale.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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": "Value", "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "readOnly": true, "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "direct_ref_hash": { "type": "string", "description": "A hash of the UIDs of direct references on this object. This can be used to determine if\nthis object hash has had references become resolved/unresolved.", "title": "direct_ref_hash", "x-displayname": "Direct Reference Hash.", "x-f5xc-description-short": "Hash of the UIDs of direct references on this object. This can be used to determine if this object hash has had references become resolved/unresolved.", "x-f5xc-description-medium": "Hash of the UIDs of direct references on this object. This can be used to determine if this object hash has had references become resolved/unresolved.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "readOnly": true, "x-field-mutability": "read-only" }, "namespace": { "type": "array", "description": "The namespace this object belongs to. This is populated by the service based on the\nmetadata.namespace field when an object is created.", "title": "namespace", "maxItems": 1, "items": { "$ref": "#/components/schemas/schemaObjectRefType" }, "x-displayname": "Namespace 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-example": "example-resource", "x-f5xc-description-short": "The namespace this object belongs to. This is populated by the service based on the metadata.namespace field when an object is created.", "x-f5xc-description-medium": "The namespace this object belongs to. This is populated by the service based on the metadata.namespace field when an object is created.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 1, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "maxLength": 6, "minLength": 6, "x-reconciled-from-discovery": true, "x-reconciled-at": "2026-08-20T09:12:47+00:00" }, "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 }, "readOnly": true, "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" } ] }, "revision": { "type": "string", "description": "A revision number which always increases with each modification of the object in storage\nThis doesn't necessarily increase sequentially, but should always increase.\nThis will be 0 when first created, and before any modifications.", "title": "revision", "format": "int64", "x-displayname": "Revision", "x-f5xc-description-short": "Revision number which always increases with each modification of the object in storage This doesn't necessarily increase sequentially, but should...", "x-f5xc-description-medium": "Revision number which always increases with each modification of the object in storage This doesn't necessarily increase sequentially, but should always increase. This will be 0 when first created, and before any modifications.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "format": "int64", "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "sre_disable": { "type": "boolean", "description": "This should be set to true If F5XC/SRE operator wants to suppress an object from being\npresented to business-logic of a daemon(e.g. Due to bad-form/issue-causing Object).\nThis is meant only to be used in temporary situations for operational continuity till\na fix is rolled out in business-logic.", "title": "sre_disable", "format": "boolean", "x-displayname": "SRE Disable.", "x-ves-example": "True", "x-f5xc-example": "true", "x-f5xc-description-short": "Should be set to true If F5XC/SRE operator wants to suppress an object from being presented to business-logic of a daemon(e.g.", "x-f5xc-description-medium": "Should be set to true If F5XC/SRE operator wants to suppress an object from being presented to business-logic of a daemon(e.g. Due to bad-form/issue-causing Object). This is meant only to be used in temporary situations for operational continuity till a fix is rolled out in business-logic.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "trace_info": { "type": "string", "description": "Trace_info holds information(::) of the request doing\nthe object modification. This can be used on the watch side to create subsequent spans.\nThis information can be used to co-relate activities across services (modulo state compression)\nfor a synchronous API.", "title": "trace_info", "x-displayname": "Trace Info.", "x-ves-example": "Value", "x-f5xc-example": "value", "x-f5xc-description-short": "Trace_info holds information(::) of the request doing the object modification.", "x-f5xc-description-medium": "Trace_info holds information(::) of the request doing the object modification. This can be used on the watch side to create subsequent spans. This information can be used to co-relate activities across services (modulo state compression) for a synchronous API.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "vtrp_id": { "type": "string", "description": "Indicate origin of this object.", "title": "vtrp_id", "x-displayname": "VTRP ID", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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": "SystemObjectMetaType is metadata generated or populated by the system for all persisted objects and cannot be updated directly by users.", "x-f5xc-description-medium": "SystemObjectMetaType 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 schemaSystemObjectMetaType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemaSystemObjectMetaType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaViewRefType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "uidashboard_layoutEmpty": { "type": "object", "description": "Empty represents an empty response.", "title": "Empty", "x-displayname": "Empty", "x-ves-proto-message": "ves.io.schema.ui.dashboard_layout.Empty", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for uidashboard_layoutEmpty", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for uidashboard_layoutEmpty\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "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\": ,\n\"lastName\": \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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for protobufAny\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "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_yaml": "# Minimal example for schemaErrorCode\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for schemaErrorType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaObjectGetMetaType\nmetadata:\n name: example\n namespace: default\nspec:\n name: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"name\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaSystemObjectGetMetaType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "static_componentGetResponse": { "type": "object", "description": "This is the output message of the 'GET' RPC.", "title": "GetResponse is the shape of a read static_component", "x-displayname": "GET Response.", "x-ves-proto-message": "ves.io.schema.ui.static_component.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/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 } }, "spec": { "allOf": [ { "$ref": "#/components/schemas/static_componentGetSpecType" } ], "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 static_componentGetResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for static_componentGetResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "static_componentGetSpecType": { "type": "object", "description": "GET UI static component.", "title": "Get Ui static component", "x-displayname": "GET UI static component.", "x-ves-proto-message": "ves.io.schema.ui.static_component.GetSpecType", "properties": { "value": { "type": "object", "description": "Information of the UI component.", "x-displayname": "Value", "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 }, "maxLength": 15, "minLength": 3, "x-reconciled-from-discovery": true, "x-reconciled-at": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for static_componentGetSpecType", "required_fields": [ "value" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for static_componentGetSpecType\nmetadata:\n name: example\n namespace: default\nspec:\n value: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"value\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "static_componentListResponse": { "type": "object", "description": "This is the output message of 'List' RPC.", "title": "ListResponse is the collection of static_component", "x-displayname": "List Response.", "x-ves-proto-message": "ves.io.schema.ui.static_component.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/static_componentListResponseItem" }, "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for static_componentListResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for static_componentListResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "static_componentListResponseItem": { "type": "object", "description": "By default a summary of static_component 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 static_component", "x-displayname": "List Item", "x-ves-proto-message": "ves.io.schema.ui.static_component.ListResponseItem", "properties": { "annotations": { "type": "object", "description": "The set of annotations present on this static_component.", "title": "annotations", "x-displayname": "Annotations.", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "The set of annotations present on this static_component.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "description": { "type": "string", "description": "The description set for this static_component.", "title": "description", "x-displayname": "Description.", "x-f5xc-description-short": "The description set for this static_component.", "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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "disabled": { "type": "boolean", "description": "A value of true indicates static_component is administratively disabled.", "title": "disabled", "format": "boolean", "x-displayname": "Disabled", "x-f5xc-example": "True", "x-f5xc-description-short": "Value of true indicates static_component is administratively disabled.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "get_spec": { "allOf": [ { "$ref": "#/components/schemas/static_componentGetSpecType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "labels": { "type": "object", "description": "The set of labels present on this static_component.", "title": "labels", "x-displayname": "Labels", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "The set of labels present on this static_component.", "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 static_component.", "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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" } ] }, "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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "uid": { "type": "string", "description": "The unique uid of this static_component.", "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 static_component.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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-08-20T09:12:47+00:00" } }, "x-f5xc-description-short": "By default a summary of static_component 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 static_component 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 static_componentListResponseItem", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for static_componentListResponseItem\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } } }, "responses": {}, "parameters": {}, "requestBodies": {} } }, "ai_services": { "openapi": "3.0.3", "info": { "title": "Ai Services", "description": "Query handling through inference routing with production and test modes. Positive and negative quality markers with detailed categorization capture assistant performance. Streaming connections support authenticated access, subscription lifecycles, and feature flags. IP provisioning services allocate infrastructure resources for model workloads across distributed systems.", "version": "4.0.0", "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": "Query handling through inference routing with production and test modes. Positive and negative quality markers with detailed categorization capture assistant performance. Streaming connections support authenticated access, subscription lifecycles, and feature flags. IP provisioning services allocate infrastructure resources for model workloads across distributed systems.", "x-f5xc-summary": "Natural language processing with quality signals and anomaly monitoring. Token authentication for data stream subscriptions.", "x-f5xc-cli-domain": "ai_services", "externalDocs": { "url": "https://docs.cloud.f5.com/docs/how-to/ai-assistant", "description": "F5 XC Documentation - AI Features" }, "x-f5xc-api-reference-url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/ai_services/", "x-f5xc-best-practices": { "common_errors": [ { "code": 400, "message": "Invalid request body", "resolution": "Validate JSON structure and required fields before submission", "prevention": "Use schema validation from OpenAPI spec" }, { "code": 401, "message": "Authentication failed", "resolution": "Verify API token is valid and not expired", "prevention": "Use environment variables for token management" }, { "code": 403, "message": "Permission denied", "resolution": "Check user role and namespace permissions", "prevention": "Verify RBAC policies before operations" }, { "code": 404, "message": "Resource not found", "resolution": "Verify resource name and namespace exist", "prevention": "List resources before attempting operations" }, { "code": 409, "message": "Resource already exists", "resolution": "Use unique name or delete existing resource", "prevention": "Check existence before creation" }, { "code": 429, "message": "Rate limit exceeded", "resolution": "Implement exponential backoff and retry logic", "prevention": "Batch operations and add delays between requests" } ], "security_notes": [ "Always use HTTPS for all API communications", "Store API tokens securely, never in source code", "Rotate API tokens regularly following security policies" ], "performance_tips": [ "Use pagination for large result sets", "Batch related operations when possible", "Cache read-only responses appropriately" ] }, "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "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": "ai_data" }, { "name": "gen-ai" }, { "name": "gia" } ], "paths": { "/api/gen-ai/namespaces/{namespace}/eval_query": { "post": { "summary": "Eval AI Assistant Query.", "description": "Temporarily to be used in place of AIAssistantQuery for evaluating API access/RBAC check.", "operationId": "ves.io.schema.ai_assistant.SahayaAPI.EvalAIAssistantQuery", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/schemaEmpty" } } } }, "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": "system" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ai_assistantAIAssistantQueryRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/ai_services/" }, "x-ves-proto-rpc": "ves.io.schema.ai_assistant.SahayaAPI.EvalAIAssistantQuery", "tags": [ "gen-ai" ], "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": [ "Eval-query resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "eval-query" ] }, "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": [ "eval-query" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "AI Assistant APIs.", "x-ves-proto-service": "ves.io.schema.ai_assistant.SahayaAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/gen-ai/namespaces/{namespace}/eval_query_feedback": { "post": { "summary": "Eval Feedback of AI Assistant Query.", "description": "Temporarily to be used in place of AIAssistantFeedback for evaluating API access/RBAC check.", "operationId": "ves.io.schema.ai_assistant.SahayaAPI.EvalAIAssistantFeedback", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/schemaEmpty" } } } }, "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": "system" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ai_assistantAIAssistantQueryFeedbackRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/ai_services/" }, "x-ves-proto-rpc": "ves.io.schema.ai_assistant.SahayaAPI.EvalAIAssistantFeedback", "tags": [ "gen-ai" ], "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": [ "Eval-query-feedback resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "eval-query-feedback" ] }, "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": [ "eval-query-feedback" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "AI Assistant APIs.", "x-ves-proto-service": "ves.io.schema.ai_assistant.SahayaAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/gen-ai/namespaces/{namespace}/query": { "post": { "summary": "AI Assistant Query.", "description": "Enable service by returning service account details.", "operationId": "ves.io.schema.ai_assistant.SahayaAPI.AIAssistantQuery", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ai_assistantAIAssistantQueryResponse" } } } }, "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": "system" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ai_assistantAIAssistantQueryRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/ai_services/" }, "x-ves-proto-rpc": "ves.io.schema.ai_assistant.SahayaAPI.AIAssistantQuery", "tags": [ "gen-ai" ], "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": [ "Query resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "query" ] }, "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": [ "query" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "AI Assistant APIs.", "x-ves-proto-service": "ves.io.schema.ai_assistant.SahayaAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/gen-ai/namespaces/{namespace}/query_feedback": { "post": { "summary": "Feedback of AI Assistant Query.", "description": "Enable service by returning service account details.", "operationId": "ves.io.schema.ai_assistant.SahayaAPI.AIAssistantFeedback", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/schemaEmpty" } } } }, "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": "system" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ai_assistantAIAssistantQueryFeedbackRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/ai_services/" }, "x-ves-proto-rpc": "ves.io.schema.ai_assistant.SahayaAPI.AIAssistantFeedback", "tags": [ "gen-ai" ], "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": [ "Query-feedback resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "query-feedback" ] }, "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": [ "query-feedback" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "AI Assistant APIs.", "x-ves-proto-service": "ves.io.schema.ai_assistant.SahayaAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/ai_data/bfdp/namespaces/system/bfdp/enable_feature": { "post": { "summary": "Enable feature.", "description": "Enable service by returning service account details.", "operationId": "ves.io.schema.ai_data.bfdp.CustomAPI.EnableFeature", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/bfdpEnableFeatureResponse" } } } }, "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/bfdpEnableFeatureRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/ai_services/" }, "x-ves-deprecated": "Use Subscribe API", "x-ves-proto-rpc": "ves.io.schema.ai_data.bfdp.CustomAPI.EnableFeature", "tags": [ "ai_data" ], "x-f5xc-operation-metadata": { "purpose": "Resource creation operation", "required_fields": [ "metadata.name", "metadata.namespace" ], "optional_fields": [], "field_docs": {}, "conditions": { "prerequisites": [ "Active namespace" ], "postconditions": [ "Enable-feature resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "enable-feature" ] }, "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": [ "enable-feature" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "BFDP APIs", "x-ves-proto-service": "ves.io.schema.ai_data.bfdp.CustomAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/ai_data/bfdp/namespaces/system/bfdp/refresh_token": { "post": { "summary": "Refresh Token.", "description": "Enable service by returning service account details.", "operationId": "ves.io.schema.ai_data.bfdp.CustomAPI.RefreshToken", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/bfdpRefreshTokenResponse" } } } }, "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/bfdpRefreshTokenRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/ai_services/" }, "x-ves-proto-rpc": "ves.io.schema.ai_data.bfdp.CustomAPI.RefreshToken", "tags": [ "ai_data" ], "x-f5xc-operation-metadata": { "purpose": "Authentication credential for access control", "required_fields": [ "metadata.name", "metadata.namespace" ], "optional_fields": [], "field_docs": {}, "conditions": { "prerequisites": [ "Active namespace" ], "postconditions": [ "Refresh-token resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "refresh-token" ] }, "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": [ "refresh-token" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "BFDP APIs", "x-ves-proto-service": "ves.io.schema.ai_data.bfdp.CustomAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/ai_data/bfdp/namespaces/system/bfdp/gettoken": { "post": { "summary": "Subscribe to BFDP pipeline.", "description": "Subscribe to BFDP pipeline.", "operationId": "ves.io.schema.ai_data.bfdp.subscription.CustomAPI.GetToken", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/subscriptionTokenResponse" } } } }, "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/subscriptionTokenRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/ai_services/" }, "x-ves-proto-rpc": "ves.io.schema.ai_data.bfdp.subscription.CustomAPI.GetToken", "tags": [ "ai_data" ], "x-f5xc-operation-metadata": { "purpose": "Authentication credential for access control", "required_fields": [ "metadata.name", "metadata.namespace" ], "optional_fields": [], "field_docs": {}, "conditions": { "prerequisites": [ "Active namespace" ], "postconditions": [ "Gettoken resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "gettoken" ] }, "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": [ "gettoken" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "BFDP Subscription API.", "x-ves-proto-service": "ves.io.schema.ai_data.bfdp.subscription.CustomAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/ai_data/bfdp/namespaces/system/bfdp/subscribe": { "post": { "summary": "Subscribe to BFDP pipeline.", "description": "Subscribe to BFDP pipeline.", "operationId": "ves.io.schema.ai_data.bfdp.subscription.CustomAPI.Subscribe", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/subscriptionSubscribeResponse__ves_io_schema_ai_data_bfdp_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_ai_data_bfdp_subscription" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/ai_services/" }, "x-ves-proto-rpc": "ves.io.schema.ai_data.bfdp.subscription.CustomAPI.Subscribe", "tags": [ "ai_data" ], "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": "BFDP Subscription API.", "x-ves-proto-service": "ves.io.schema.ai_data.bfdp.subscription.CustomAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/ai_data/bfdp/namespaces/system/bfdp/unsubscribe": { "post": { "summary": "Unsubscribe to BFDP pipeline.", "description": "Unsubscribe to BFDP pipeline.", "operationId": "ves.io.schema.ai_data.bfdp.subscription.CustomAPI.Unsubscribe", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/subscriptionUnsubscribeResponse__ves_io_schema_ai_data_bfdp_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_ai_data_bfdp_subscription" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/ai_services/" }, "x-ves-proto-rpc": "ves.io.schema.ai_data.bfdp.subscription.CustomAPI.Unsubscribe", "tags": [ "ai_data" ], "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": "BFDP Subscription API.", "x-ves-proto-service": "ves.io.schema.ai_data.bfdp.subscription.CustomAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/gia/gia/allocateip": { "post": { "summary": "Allocate IP through Global IP Allocator.", "description": "AllocateIP will allocate an IP address for the tenant read from context.", "operationId": "ves.io.schema.gia.CustomAPI.AllocateIP", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/giaAllocateIPResponse" } } } }, "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/giaAllocateIPRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/ai_services/" }, "x-ves-proto-rpc": "ves.io.schema.gia.CustomAPI.AllocateIP", "tags": [ "gia" ], "x-f5xc-operation-metadata": { "purpose": "Resource creation operation", "required_fields": [ "metadata.name", "metadata.namespace" ], "optional_fields": [], "field_docs": {}, "conditions": { "prerequisites": [], "postconditions": [ "Allocateip resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "allocateip" ] }, "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": [ "allocateip" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "Global IP Allocator.", "x-ves-proto-service": "ves.io.schema.gia.CustomAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/gia/gia/deallocateip": { "delete": { "summary": "Deallocate IP through Global IP Allocator.", "description": "DeallocateIP will de-allocate the specified IP address for tenant.", "operationId": "ves.io.schema.gia.CustomAPI.DeallocateIP", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/giaDeallocateIPResponse" } } } }, "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/giaDeallocateIPRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/ai_services/" }, "x-ves-proto-rpc": "ves.io.schema.gia.CustomAPI.DeallocateIP", "tags": [ "gia" ], "x-f5xc-operation-metadata": { "purpose": "Resource deletion operation", "required_fields": [], "optional_fields": [], "field_docs": {}, "conditions": { "prerequisites": [], "postconditions": [ "Resource removed from system" ] }, "side_effects": { "deletes": [ "deallocateip" ] }, "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": "low", "resource_usage": "low" } }, "x-f5xc-danger-level": "high", "x-f5xc-confirmation-required": true, "x-f5xc-side-effects": { "deletes": [ "deallocateip" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 500, "p95_ms": 1500, "p99_ms": 4000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "Global IP Allocator.", "x-ves-proto-service": "ves.io.schema.gia.CustomAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" } }, "components": { "securitySchemes": { "ApiToken": { "type": "apiKey", "name": "Authorization", "in": "header", "description": "API Token authentication. Format: 'APIToken '" }, "apiKeyAuth": { "type": "apiKey", "in": "header", "name": "Authorization", "description": "F5 XC API Token (format: APIToken )" } }, "schemas": { "ai_assistantAIAssistantQueryFeedbackRequest": { "type": "object", "description": "AI Assistant Query Feedback Request.", "title": "AI Assistant Query Feedback Request", "x-displayname": "AI Assistant Query Feedback Request.", "x-ves-oneof-field-feedback_choice": "[\"negative_feedback\",\"positive_feedback\"]", "x-ves-proto-message": "ves.io.schema.ai_assistant.AIAssistantQueryFeedbackRequest", "properties": { "comment": { "type": "string", "description": "Configuration parameter for comment", "title": "comment", "maxLength": 4096, "x-displayname": "Comment", "x-ves-example": "Response is biased.", "x-ves-validation-rules": { "ves.io.schema.rules.string.max_len": "4096" }, "x-f5xc-example": "Response is biased", "x-validation-rules": { "ves.io.schema.rules.string.max_len": "4096" }, "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 4096, "minLength": 0, "characterSet": { "description": "Free text with UTF-8 support" }, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" }, "deterministic": true }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "namespace": { "type": "string", "description": "Namespace of the HTTP Load Balancer for current request.", "title": "namespace", "x-displayname": "Namespace", "x-ves-example": "System", "x-f5xc-example": "system", "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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" }, "negative_feedback": { "allOf": [ { "$ref": "#/components/schemas/ai_assistantNegativeFeedbackDetails" } ], "x-f5xc-description-short": "Configuration parameter for negative feedback.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "positive_feedback" ] }, "positive_feedback": { "allOf": [ { "$ref": "#/components/schemas/schemaEmpty" } ], "x-f5xc-description-short": "Configuration parameter for positive feedback.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "negative_feedback" ] }, "query": { "type": "string", "description": "Query will be in text format.", "title": "query", "x-displayname": "Query", "x-ves-example": "How to investigate request log.", "x-f5xc-example": "How to investigate request log", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "content", "maxLength": 1024, "minLength": 0, "metadata": { "source": "inferred", "confidence": 0.75, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "query_id": { "type": "string", "description": "Query Identifier.", "title": "query_id", "x-displayname": "Query ID", "x-ves-example": "00000000-0000-4000-8000-f44fac7dd7bf.", "x-ves-validation-rules": { "ves.io.schema.rules.string.pattern": "^([0-9a-f]{8}-){1}([0-9a-f]{4}-){3}([0-9a-f]{12})$" }, "x-f5xc-example": "00000000-0000-4000-8000-f44fac7dd7bf", "x-validation-rules": { "ves.io.schema.rules.string.pattern": "^([0-9a-f]{8}-){1}([0-9a-f]{4}-){3}([0-9a-f]{12})$" }, "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 1024, "pattern": "^([0-9a-f]{8}-){1}([0-9a-f]{4}-){3}([0-9a-f]{12})$", "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+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 ai_assistantAIAssistantQueryFeedbackRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for ai_assistantAIAssistantQueryFeedbackRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ai_services", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "ai_assistantAIAssistantQueryRequest": { "type": "object", "description": "AI Assistant Query Request.", "title": "AI Assistant Query Request", "x-displayname": "AI Assistant Query Request.", "x-ves-proto-message": "ves.io.schema.ai_assistant.AIAssistantQueryRequest", "properties": { "current_query": { "type": "string", "description": "Current query will be in text format.", "title": "current_query", "x-displayname": "Current query.", "x-ves-example": "Explain security event 00000000-0000-4000-8000-f44fac7dd7bf.", "x-f5xc-example": "Explain security event 00000000-0000-4000-8000-f44fac7dd7bf", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "namespace": { "type": "string", "description": "Namespace of the HTTP Load Balancer for current request.", "title": "Namespace", "x-displayname": "Namespace", "x-ves-example": "System", "x-f5xc-example": "system", "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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for ai_assistantAIAssistantQueryRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for ai_assistantAIAssistantQueryRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ai_services", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "ai_assistantAIAssistantQueryResponse": { "type": "object", "description": "AI Assistant Query Response.", "title": "AI Assistant Query Response", "x-displayname": "AI Assistant Query Response.", "x-ves-oneof-field-response_choice": "[\"explain_log\",\"gen_dashboard_filter\",\"generic_response\",\"list_response\",\"site_analysis_response\",\"widget_response\"]", "x-ves-proto-message": "ves.io.schema.ai_assistant.AIAssistantQueryResponse", "properties": { "current_query": { "type": "string", "description": "Current query will be in text format.", "title": "current_query", "x-displayname": "Current query.", "x-ves-example": "Explain security event 00000000-0000-4000-8000-f44fac7dd7bf.", "x-f5xc-example": "Explain security event 00000000-0000-4000-8000-f44fac7dd7bf", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "explain_log": { "allOf": [ { "$ref": "#/components/schemas/explain_log_recordExplainLogRecordResponse" } ], "x-f5xc-description-short": "Configuration parameter for explain log.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "gen_dashboard_filter", "generic_response", "list_response", "site_analysis_response", "widget_response" ] }, "follow_up_queries": { "type": "array", "description": "Follow up Queries to be given as suggestion to users.", "title": "follow_up_queries", "items": { "type": "string" }, "x-displayname": "Follow up Queries.", "x-ves-example": "Explain following violation in whole namespace.", "x-ves-validation-rules": { "ves.io.schema.rules.repeated.unique": "true" }, "x-f5xc-example": "Explain following violation in whole namespace", "x-validation-rules": { "ves.io.schema.rules.repeated.unique": "true" }, "x-f5xc-description-short": "Follow up Queries to be given as suggestion to users.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "gen_dashboard_filter": { "allOf": [ { "$ref": "#/components/schemas/gen_dashboard_filterGenDashboardFilterResponse" } ], "x-f5xc-description-short": "Configuration parameter for gen dashboard filter.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "explain_log", "generic_response", "list_response", "site_analysis_response", "widget_response" ] }, "generic_response": { "allOf": [ { "$ref": "#/components/schemas/commonGenericResponse" } ], "x-f5xc-description-short": "Configuration parameter for generic response.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "explain_log", "gen_dashboard_filter", "list_response", "site_analysis_response", "widget_response" ] }, "list_response": { "allOf": [ { "$ref": "#/components/schemas/listListResponse" } ], "x-f5xc-description-short": "Configuration parameter for list response.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "explain_log", "gen_dashboard_filter", "generic_response", "site_analysis_response", "widget_response" ] }, "query_id": { "type": "string", "description": "Query Identifier.", "title": "query_id", "x-displayname": "Query ID", "x-ves-example": "00000000-0000-4000-8000-f44fac7dd7bf.", "x-ves-validation-rules": { "ves.io.schema.rules.string.pattern": "^([0-9a-f]{8}-){1}([0-9a-f]{4}-){3}([0-9a-f]{12})$" }, "x-f5xc-example": "00000000-0000-4000-8000-f44fac7dd7bf", "x-validation-rules": { "ves.io.schema.rules.string.pattern": "^([0-9a-f]{8}-){1}([0-9a-f]{4}-){3}([0-9a-f]{12})$" }, "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 1024, "pattern": "^([0-9a-f]{8}-){1}([0-9a-f]{4}-){3}([0-9a-f]{12})$", "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-field-mutability": "read-only" }, "site_analysis_response": { "allOf": [ { "$ref": "#/components/schemas/site_analysisSiteAnalysisResponse" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "explain_log", "gen_dashboard_filter", "generic_response", "list_response", "widget_response" ] }, "widget_response": { "allOf": [ { "$ref": "#/components/schemas/widgetWidgetResponse" } ], "x-f5xc-description-short": "Configuration parameter for widget response.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "explain_log", "gen_dashboard_filter", "generic_response", "list_response", "site_analysis_response" ] } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for ai_assistantAIAssistantQueryResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for ai_assistantAIAssistantQueryResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ai_services", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "ai_assistantNegativeFeedbackDetails": { "type": "object", "description": "Negative Feedback Details.", "title": "NegativeFeedbackDetails", "x-displayname": "Negative Feedback Details.", "x-ves-proto-message": "ves.io.schema.ai_assistant.NegativeFeedbackDetails", "properties": { "remarks": { "type": "array", "description": "Configuration parameter for remarks", "title": "remarks", "items": { "$ref": "#/components/schemas/ai_assistantNegativeFeedbackType" }, "x-displayname": "Feedback", "x-ves-example": "Inaccurate data.", "x-ves-validation-rules": { "ves.io.schema.rules.repeated.items.enum.defined_only": "true", "ves.io.schema.rules.repeated.unique": "true" }, "x-f5xc-example": "Inaccurate data", "x-validation-rules": { "ves.io.schema.rules.repeated.items.enum.defined_only": "true", "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for ai_assistantNegativeFeedbackDetails", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for ai_assistantNegativeFeedbackDetails\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ai_services", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "ai_assistantNegativeFeedbackType": { "type": "string", "description": "X-displayName \"Negative Feedback Type\"\nType of Negative Feedback\n\n- OTHER: x-displayName \"Other\"\nOther\n- INACCURATE_DATA: x-displayName \"Inaccurate data\"\nInaccurate data\n- IRRELEVANT_CONTENT: x-displayName \"Irrelevant content\"\nIrrelevant content\n- POOR_FORMAT: x-displayName \"Poor format\"\nPoor format\n- SLOW_RESPONSE: x-displayName \"Slow response\"\nSlow response.", "title": "Negative Feedback Type", "enum": [ "OTHER", "INACCURATE_DATA", "IRRELEVANT_CONTENT", "POOR_FORMAT", "SLOW_RESPONSE" ], "default": "OTHER", "x-displayname": "", "x-ves-proto-enum": "ves.io.schema.ai_assistant.NegativeFeedbackType", "x-f5xc-description-short": "X-displayName \"Negative Feedback Type\" Type of Negative Feedback - OTHER: x-displayName \"Other\" Other - INACCURATE_DATA: x-displayName \"Inaccurate...", "x-f5xc-description-medium": "X-displayName \"Negative Feedback Type\" Type of Negative Feedback - OTHER: x-displayName \"Other\" Other - INACCURATE_DATA: x-displayName \"Inaccurate data\" Inaccurate data - IRRELEVANT_CONTENT: x-displayName \"Irrelevant content\" Irrelevant content - POOR_FORMAT: x-displayName \"Poor format\" Poor...", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for ai_assistantNegativeFeedbackType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for ai_assistantNegativeFeedbackType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ai_services", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "ai_assistantcommonUnitType": { "type": "string", "description": "Unit Type defines the unit for each fields.\n\n- UNIT_TYPE_NONE: None\n\nNone type\n- GB: GB\n\n- PERCENT: Percent\n\n- BYTE: Byte.", "title": "UnitType", "enum": [ "UNIT_TYPE_NONE", "GB", "PERCENT", "BYTE" ], "default": "UNIT_TYPE_NONE", "x-displayname": "Unit Type", "x-ves-proto-enum": "ves.io.schema.ai_assistant.common.UnitType", "x-f5xc-description-short": "Unit Type defines the unit for each fields. - UNIT_TYPE_NONE: None None type - GB: GB - PERCENT: Percent - BYTE: Byte.", "x-f5xc-description-medium": "Unit Type defines the unit for each fields. - UNIT_TYPE_NONE: None None type - GB: GB - PERCENT: Percent - BYTE: Byte.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for ai_assistantcommonUnitType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for ai_assistantcommonUnitType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ai_services", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "ai_assistantexplain_log_recordAction": { "type": "string", "description": "Action taken for the request\n\n- ACTION_NONE: None\n\nNo action\n- ALLOW: Allow\n\nThe request was allowed to pass\n- BLOCK: Block\n\nThe request was blocked\n- REDIRECT: Redirect\n\nThe request was redirected.", "title": "Action", "enum": [ "ACTION_NONE", "ALLOW", "BLOCK", "REDIRECT" ], "default": "ACTION_NONE", "x-displayname": "Action", "x-ves-proto-enum": "ves.io.schema.ai_assistant.explain_log_record.Action", "x-f5xc-description-short": "Action taken for the request - ACTION_NONE: None No action - ALLOW: Allow The request was allowed to pass - BLOCK: Block The request was blocked ...", "x-f5xc-description-medium": "Action taken for the request - ACTION_NONE: None No action - ALLOW: Allow The request was allowed to pass - BLOCK: Block The request was blocked - REDIRECT: Redirect The request was redirected.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for ai_assistantexplain_log_recordAction", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for ai_assistantexplain_log_recordAction\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "statistics", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "commonCellProperties": { "type": "object", "x-ves-proto-message": "ves.io.schema.ai_assistant.common.CellProperties", "properties": { "status_style": { "allOf": [ { "$ref": "#/components/schemas/commonStatusStyle" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for commonCellProperties", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for commonCellProperties\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "commonColourType": { "type": "string", "description": "Colour Type defines the colour of fields to be displayed.\n\n- COLOUR_TYPE_NONE: None\n\nNo colour\n- DANGER: danger\n\ncolour type red\n- INFO: info\n\ncolour type blue\n- WARNING: warning\n\ncolour type orange\n- AMBER: amber\n\ncolour type yellow\n- SUCCESS: success\n\ncolour type green\n- MALIBU: malibu\n\ncolour type blue.", "title": "ColourType", "enum": [ "COLOUR_TYPE_NONE", "DANGER", "INFO", "WARNING", "AMBER", "SUCCESS", "MALIBU" ], "default": "COLOUR_TYPE_NONE", "x-displayname": "Colour Type.", "x-ves-proto-enum": "ves.io.schema.ai_assistant.common.ColourType", "x-f5xc-description-short": "Colour Type defines the colour of fields to be displayed. - COLOUR_TYPE_NONE: None No colour - DANGER: danger colour type red - INFO: info colour...", "x-f5xc-description-medium": "Colour Type defines the colour of fields to be displayed. - COLOUR_TYPE_NONE: None No colour - DANGER: danger colour type red - INFO: info colour type blue - WARNING: warning colour type orange - AMBER: amber colour type yellow - SUCCESS: success colour type green - MALIBU: malibu colour type blue.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for commonColourType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for commonColourType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "commonColumnType": { "type": "string", "description": "Column Type defines the data type for each column.\n\n- COLUMN_TYPE_NONE: None\n\n- STRING: string\n\n- INT: integer\n\n- FLOAT: float\n\n- BOOL: boolean.", "title": "ColumnType", "enum": [ "COLUMN_TYPE_NONE", "STRING", "INT", "FLOAT", "BOOL" ], "default": "COLUMN_TYPE_NONE", "x-displayname": "Column Type.", "x-ves-proto-enum": "ves.io.schema.ai_assistant.common.ColumnType", "x-f5xc-description-short": "Column Type defines the data type for each column. - COLUMN_TYPE_NONE: None - STRING: string - INT: integer - FLOAT: float - BOOL: boolean.", "x-f5xc-description-medium": "Column Type defines the data type for each column. - COLUMN_TYPE_NONE: None - STRING: string - INT: integer - FLOAT: float - BOOL: boolean.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for commonColumnType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for commonColumnType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "commonDashboardLink": { "type": "object", "description": "Dashboard link will present common fields like type, namespace, object, dateFilter, logFilter.", "title": "DashboardLink", "x-displayname": "Dashboard Link.", "x-ves-proto-message": "ves.io.schema.ai_assistant.common.DashboardLink", "properties": { "key": { "type": "string", "description": "Key will present a placeholder in a text field to insert the link.\nFor example: To view these events go to the ${{link:db_link}}.", "title": "key", "x-displayname": "Key", "x-ves-example": "Db_link", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true" }, "x-f5xc-example": "db_link", "x-validation-rules": { "ves.io.schema.rules.message.required": "true" }, "x-f5xc-description-short": "Key will present a placeholder in a text field to insert the link. For", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "log_filters": { "type": "array", "description": "Logs filter.", "title": "log_filters", "items": { "$ref": "#/components/schemas/commonLogFilter" }, "x-displayname": "Logs Filter.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "namespace": { "type": "string", "description": "Namespace for current request.", "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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" }, "object_name": { "type": "string", "description": "Object name such as LB, VH.", "title": "object_name", "x-displayname": "Object name.", "x-ves-example": "VES-I/O-HTTP-loadbalancer-prod-NGINX.", "x-f5xc-example": "ves-io-http-loadbalancer-prod-nginx", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "time_range": { "type": "string", "description": "Time range filter.", "title": "time_range", "x-displayname": "Time Range.", "x-ves-example": "604800", "x-f5xc-example": "604800", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "title": { "type": "string", "description": "Title for the link.", "title": "title", "x-displayname": "Title", "x-ves-example": "Security Analytics lb1.", "x-f5xc-example": "Security Analytics lb1", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "type": { "allOf": [ { "$ref": "#/components/schemas/commonDashboardLinkType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Dashboard link will present common fields like type, namespace, object, dateFilter, logFilter.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for commonDashboardLink", "required_fields": [ "key" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for commonDashboardLink\nmetadata:\n name: example\n namespace: default\nspec:\n key: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"key\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "commonDashboardLinkType": { "type": "string", "description": "Link Type to be presented\n\n- SECURITY_ANALYTICS_EVENTS: SECURITY_ANALYTICS_EVENTS\n\nSecurity analytics dashboard: /web/workspaces/web-app-and-API-protection/../dashboard/security-dashboard/../security_analytics/events\n- REQUESTS_EVENTS: REQUESTS_EVENTS\n\nRequests dashboard: /web/workspaces/web-app-and-API-protection/../dashboard/security-dashboard/../security_monitoring/request\n- SITES: SITES\n\nSites dashboard: /web/workspaces/multi-cloud-network-connect/overview/sites/dashboard\n- CLOUD_CREDENTIALS: CLOUD_CREDENTIALS\n\nCLOUD_CREDENTIALS --> /web/workspaces/multi-cloud-network-connect/manage/site_management/cloud_sites/cloud_credential\n- SITES_UBER: SITES_UBER\n\nSites dashboard: /web/workspaces/multi-cloud-network-connect/overview/sites/dashboard\n- SITE_ALERTS: SITE_ALERTS\n\nAlerts dashboard: /web/workspaces/multi-cloud-network-connect/overview/infrastructure/sites/alerts\n- SITE_MANAGEMENT_AWS_VPC_SITES: SITE_MANAGEMENT_AWS_VPC_SITES\n\nSite Management dashboard: /web/workspaces/multi-cloud-network-connect/manage/site_management/cloud_sites/aws_vpc_site\n- SITE_MANAGEMENT_AWS_TGW_SITES: SITE_MANAGEMENT_AWS_TGW_SITES\n\nSite Management dashboard: /web/workspacesmulti-cloud-network-connect/manage/site_management/cloud_sites/aws_tgw_site\n- SITE_MANAGEMENT_AZURE_VNET_SITES: SITE_MANAGEMENT_AZURE_VNET_SITES\n\nSite Management dashboard: /web/workspaces/multi-cloud-network-connect/manage/site_management/cloud_sites/azure_site\n- SITE_MANAGEMENT_GCP_VPC_SITES: SITE_MANAGEMENT_GCP_VPC_SITES\n\nSite Management dashboard: /web/workspaces/multi-cloud-network-connect/manage/site_management/cloud_sites/gcp_vpc_site\n- SITE_MANAGEMENT_APP_STACK_SITES: SITE_MANAGEMENT_APP_STACK_SITES\n\nSite Management dashboard: /web/workspaces/multi-cloud-network-connect/manage/site_management/cloud_sites/appstack_site\n- SITE_MANAGEMENT_SECURE_MESH_SITES: SITE_MANAGEMENT_SECURE_MESH_SITES\n\nSite Management dashboard: /web/workspaces/multi-cloud-network-connect/manage/site_management/legacy_configs/securemesh_site\n- TENANT_OVERVIEW_PAGE: TENANT_OVERVIEW_PAGE\n\nTenant Overview Page: /web/workspaces/administration/tenant-settings/tenant-overview\n- SUPPORT: SUPPORT\n\nSupport Page: /web/home.", "title": "LinkType", "enum": [ "SECURITY_ANALYTICS_EVENTS", "REQUESTS_EVENTS", "SITES", "CLOUD_CREDENTIALS", "SITES_UBER", "SITE_ALERTS", "SITE_MANAGEMENT_AWS_VPC_SITES", "SITE_MANAGEMENT_AWS_TGW_SITES", "SITE_MANAGEMENT_AZURE_VNET_SITES", "SITE_MANAGEMENT_GCP_VPC_SITES", "SITE_MANAGEMENT_APP_STACK_SITES", "SITE_MANAGEMENT_SECURE_MESH_SITES", "TENANT_OVERVIEW_PAGE", "SUPPORT" ], "default": "SECURITY_ANALYTICS_EVENTS", "x-displayname": "Link Type", "x-ves-proto-enum": "ves.io.schema.ai_assistant.common.DashboardLinkType", "x-f5xc-description-short": "Link Type to be presented - SECURITY_ANALYTICS_EVENTS: SECURITY_ANALYTICS_EVENTS Security analytics dashboard...", "x-f5xc-description-medium": "Link Type to be presented - SECURITY_ANALYTICS_EVENTS: SECURITY_ANALYTICS_EVENTS Security analytics dashboard: /web/workspaces/web-app-and-API-protection/../dashboard/security-dashboard/../security_analytics/events - REQUESTS_EVENTS: REQUESTS_EVENTS Requests dashboard...", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for commonDashboardLinkType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for commonDashboardLinkType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "commonDisplay": { "type": "object", "x-ves-proto-message": "ves.io.schema.ai_assistant.common.Display", "properties": { "colour": { "allOf": [ { "$ref": "#/components/schemas/commonColourType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "display_type": { "allOf": [ { "$ref": "#/components/schemas/commonDisplayType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "formats": { "type": "array", "description": "Data format specification", "title": "format", "items": { "$ref": "#/components/schemas/commonFormatType" }, "x-displayname": "Formats", "x-ves-example": "Bold Italic.", "x-ves-validation-rules": { "ves.io.schema.rules.repeated.unique": "true" }, "x-f5xc-example": "Bold Italic", "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for commonDisplay", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for commonDisplay\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "commonDisplayType": { "type": "string", "description": "Render Type defines the format to which data has to be rendered on UI.\n\n- DISPLAY_TYPE_NONE: None\n\nNone type\n- ICON: icon\n\nValue to be displayed as ICON\n- PROGRESS_BAR: progress bar\n\n- DATE: date\n\n- DURATION: duration\n\n- PROVIDER_ICON: provider icon.", "title": "DisplayType", "enum": [ "DISPLAY_TYPE_NONE", "ICON", "DOT_WITH_VALUE", "PROGRESS_BAR", "DATE", "DURATION", "PROVIDER_ICON" ], "default": "DISPLAY_TYPE_NONE", "x-displayname": "DisplayType Type.", "x-ves-proto-enum": "ves.io.schema.ai_assistant.common.DisplayType", "x-f5xc-description-short": "Render Type defines the format to which data has to be rendered on UI. - DISPLAY_TYPE_NONE: None None type - ICON: icon Value to be displayed as...", "x-f5xc-description-medium": "Render Type defines the format to which data has to be rendered on UI. - DISPLAY_TYPE_NONE: None None type - ICON: icon Value to be displayed as ICON - PROGRESS_BAR: progress bar - DATE: date - DURATION: duration - PROVIDER_ICON: provider icon.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for commonDisplayType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for commonDisplayType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "commonFieldProperties": { "type": "object", "x-ves-proto-message": "ves.io.schema.ai_assistant.common.FieldProperties", "properties": { "data_type": { "allOf": [ { "$ref": "#/components/schemas/commonColumnType" } ], "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "display": { "allOf": [ { "$ref": "#/components/schemas/commonDisplay" } ], "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-ves-example": "Provider", "x-f5xc-example": "provider", "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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" }, "title": { "type": "string", "description": "Human-readable title for the resource", "title": "Title", "x-displayname": "Title", "x-ves-example": "Site Name", "x-f5xc-example": "Site Name", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "tooltip": { "type": "string", "description": "Tooltip for the field.", "title": "Tooltip", "x-displayname": "Tooltip", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "unit": { "allOf": [ { "$ref": "#/components/schemas/ai_assistantcommonUnitType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for commonFieldProperties", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for commonFieldProperties\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "commonFilterOperator": { "type": "string", "description": "Operator for query filter\n\n- IN: Filter Operator\n\nSpecifies that query result includes filter values\n- NOT_IN: Filter Operator\n\nSpecifies that query result excludes filter values.", "title": "Filter Operator", "enum": [ "IN", "NOT_IN" ], "default": "IN", "x-displayname": "Filter Operator.", "x-ves-proto-enum": "ves.io.schema.ai_assistant.common.FilterOperator", "x-f5xc-description-short": "Operator for query filter - IN: Filter Operator Specifies that query result includes filter values - NOT_IN: Filter Operator Specifies that query...", "x-f5xc-description-medium": "Operator for query filter - IN: Filter Operator Specifies that query result includes filter values - NOT_IN: Filter Operator Specifies that query result excludes filter values.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for commonFilterOperator", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for commonFilterOperator\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "commonFormatType": { "type": "string", "description": "Format Type defines the format type for each fields.\n\n- FORMAT_TYPE_NONE: None\n\nNo format\n- INLINE: Inline\n\nKey value to be displayed in inline format\n- BOLD: Bold\n\nValue to be displayed in bold format\n- REVERSE_KEY_VALUE_ORDER: ReverseKeyValueOrder\n\nKey value to be displayed in Reverse Key Value Order format\n- WRAP: Wrap\n\nValue to be wrapped.", "title": "FormatType", "enum": [ "FORMAT_TYPE_NONE", "INLINE", "BOLD", "REVERSE_KEY_VALUE_ORDER", "WRAP" ], "default": "FORMAT_TYPE_NONE", "x-displayname": "Format Type.", "x-ves-proto-enum": "ves.io.schema.ai_assistant.common.FormatType", "x-f5xc-description-short": "Format Type defines the format type for each fields. - FORMAT_TYPE_NONE: None No format - INLINE: Inline Key value to be displayed in inline...", "x-f5xc-description-medium": "Format Type defines the format type for each fields. - FORMAT_TYPE_NONE: None No format - INLINE: Inline Key value to be displayed in inline format - BOLD: Bold Value to be displayed in bold format - REVERSE_KEY_VALUE_ORDER: ReverseKeyValueOrder Key value to be displayed in Reverse Key Value...", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for commonFormatType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for commonFormatType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "commonGenericLink": { "type": "object", "description": "Generic link can have external link with full URL.", "title": "GenericLink", "x-displayname": "Generic Link.", "x-ves-proto-message": "ves.io.schema.ai_assistant.common.GenericLink", "properties": { "key": { "type": "string", "description": "Key will present a placeholder in a text field to insert the link.\nFor example: To view these events go to the ${{link:db_link}}.", "title": "key", "x-displayname": "Key", "x-ves-example": "Db_link", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true" }, "x-f5xc-example": "db_link", "x-validation-rules": { "ves.io.schema.rules.message.required": "true" }, "x-f5xc-description-short": "Key will present a placeholder in a text field to insert the link. For", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "title": { "type": "string", "description": "Title for the link.", "title": "title", "x-displayname": "Title", "x-ves-example": "Security Analytics lb1.", "x-f5xc-example": "Security Analytics lb1", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "url": { "type": "string", "description": "Full URL", "title": "url", "x-displayname": "URL", "x-ves-example": "https://datatracker.ietf.org/doc/HTML/rfc3986.", "x-f5xc-example": "https://datatracker.ietf.org/doc/html/rfc3986", "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-08-20T09:12:47+00:00" }, "deterministic": true }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Generic link can have external link with full URL.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for commonGenericLink", "required_fields": [ "key" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for commonGenericLink\nmetadata:\n name: example\n namespace: default\nspec:\n key: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"key\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "commonGenericResponse": { "type": "object", "description": "Generic Response.", "title": "Generic Response", "x-displayname": "Generic Response.", "x-ves-proto-message": "ves.io.schema.ai_assistant.common.GenericResponse", "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 } }, "is_error": { "type": "boolean", "description": "Configuration parameter for is error", "title": "is_error", "format": "boolean", "x-displayname": "Is_error", "x-ves-example": "True", "x-f5xc-example": "true", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "summary": { "type": "string", "description": "Configuration parameter for summary", "title": "Summary", "x-displayname": "Summary", "x-ves-example": "Query not supported.", "x-f5xc-example": "Query not supported", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for commonGenericResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for commonGenericResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "commonLink": { "type": "object", "description": "Link for a page.", "title": "Link", "x-displayname": "Link", "x-ves-oneof-field-link_type": "[\"dashboard_link\",\"generic_link\"]", "x-ves-proto-message": "ves.io.schema.ai_assistant.common.Link", "properties": { "dashboard_link": { "allOf": [ { "$ref": "#/components/schemas/commonDashboardLink" } ], "x-f5xc-description-short": "Configuration parameter for dashboard link.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "generic_link" ] }, "generic_link": { "allOf": [ { "$ref": "#/components/schemas/commonGenericLink" } ], "x-f5xc-description-short": "Configuration parameter for generic link.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "dashboard_link" ] } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for commonLink", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for commonLink\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "commonLogFilter": { "type": "object", "description": "Log filter for filter query.", "title": "LogFilter", "x-displayname": "Log Filter.", "x-ves-proto-message": "ves.io.schema.ai_assistant.common.LogFilter", "properties": { "key": { "type": "string", "description": "Key to be presented in the filter.", "title": "key", "x-displayname": "Key", "x-ves-example": "Attack_types.name.", "x-f5xc-example": "attack_types.name", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "op": { "allOf": [ { "$ref": "#/components/schemas/commonFilterOperator" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "values": { "type": "array", "description": "Values to be presented in the filter.", "title": "values", "items": { "type": "string" }, "x-displayname": "Values", "x-ves-example": "ATTACK_TYPE_CROSS_SITE_SCRIPTING.", "x-ves-validation-rules": { "ves.io.schema.rules.repeated.unique": "true" }, "x-f5xc-example": "ATTACK_TYPE_CROSS_SITE_SCRIPTING", "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for commonLogFilter", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for commonLogFilter\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "statistics", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "commonOverlayContent": { "type": "object", "description": "Overlay link for creating ticket.", "title": "Overlay Link", "x-displayname": "Overlay Link.", "x-ves-proto-message": "ves.io.schema.ai_assistant.common.OverlayContent", "properties": { "data": { "allOf": [ { "$ref": "#/components/schemas/commonOverlayData" } ], "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "title": { "type": "string", "description": "Title for the link.", "title": "title", "x-displayname": "Title", "x-ves-example": "Security Analytics lb1.", "x-f5xc-example": "Security Analytics lb1", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "type": { "allOf": [ { "$ref": "#/components/schemas/commonDashboardLinkType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for commonOverlayContent", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for commonOverlayContent\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "commonOverlayData": { "type": "object", "description": "Overlay data for creating support ticket.", "title": "Overlay Data", "x-displayname": "Overlay Data.", "x-ves-proto-message": "ves.io.schema.ai_assistant.common.OverlayData", "properties": { "priority": { "type": "string", "description": "Priority for the support ticket.", "title": "priority", "x-displayname": "Priority", "x-ves-example": "Normal", "x-f5xc-example": "Normal", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "product_data": { "type": "string", "description": "Product Data for the support ticket.", "title": "product data", "x-displayname": "Product Data.", "x-ves-example": "Site X is in Failed state for 2 reasons. Customer Tunnel Interface Down and Site Heartbeat Down.", "x-f5xc-example": "Site X is in Failed state for 2 reasons. Customer Tunnel Interface Down and Site Heartbeat Down", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "subject": { "type": "string", "description": "Subject for the support ticket.", "title": "subject", "x-displayname": "Subject", "x-ves-example": "Troubleshoot site.", "x-f5xc-example": "Troubleshoot site", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "support_type": { "type": "string", "description": "Type for the support ticket.", "title": "type", "x-displayname": "Type", "x-ves-example": "Technical Support.", "x-f5xc-example": "Technical Support", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "topic": { "type": "string", "description": "Topic for the support ticket.", "title": "topic", "x-displayname": "Topic", "x-ves-example": "Troubleshooting.", "x-f5xc-example": "Troubleshooting", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "workspace": { "type": "string", "description": "Workspace for the support ticket.", "title": "workspace", "x-displayname": "Workspace", "x-ves-example": "Multi-Cloud Network Connect.", "x-f5xc-example": "Multi-Cloud Network Connect", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Overlay data for creating support ticket.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for commonOverlayData", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for commonOverlayData\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "commonStatusStyle": { "type": "string", "description": "Status Style defines the colour of status to be displayed.\n\n- STATUS_STYLE_UNKNOWN: Unknown\n\nNo colour\n- STATUS_STYLE_SUCCESS: success\n\ncolour type green\n- STATUS_STYLE_DANGER: danger\n\ncolour type red\n- STATUS_STYLE_WARNING: warning\n\ncolour type yellow\n- STATUS_STYLE_INACTIVE: inactive\n\ncolour type grey\n- STATUS_STYLE_MINOR: minor\n\ncolour type blue.", "title": "StatusStyle", "enum": [ "STATUS_STYLE_UNKNOWN", "STATUS_STYLE_SUCCESS", "STATUS_STYLE_DANGER", "STATUS_STYLE_WARNING", "STATUS_STYLE_INACTIVE", "STATUS_STYLE_MINOR" ], "default": "STATUS_STYLE_UNKNOWN", "x-displayname": "Status Style.", "x-ves-proto-enum": "ves.io.schema.ai_assistant.common.StatusStyle", "x-f5xc-description-short": "Status Style defines the colour of status to be displayed. - STATUS_STYLE_UNKNOWN: Unknown No colour - STATUS_STYLE_SUCCESS: success colour type...", "x-f5xc-description-medium": "Status Style defines the colour of status to be displayed. - STATUS_STYLE_UNKNOWN: Unknown No colour - STATUS_STYLE_SUCCESS: success colour type green - STATUS_STYLE_DANGER: danger colour type red - STATUS_STYLE_WARNING: warning colour type yellow - STATUS_STYLE_INACTIVE: inactive colour type...", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for commonStatusStyle", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for commonStatusStyle\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "commonWidgetType": { "type": "string", "description": "Widget Type defines the data type for widget.\n\n- WIDGET_TYPE_NONE: None\n\nNone type\n- TWO_VALUE: two_value\n\nTwo Value type widget\n- DISTRIBUTION_CHART: distribution_chart\n\nDistribution Chart type widget\n- TABLE: table\n\nTable type widget\n- LIST: list\n\nList type widget\n- GRID: grid\n\nGrid type widget\n- PIE: pie\n\npie type widget.", "title": "WidgetType", "enum": [ "WIDGET_TYPE_NONE", "TWO_VALUE", "DISTRIBUTION_CHART", "TABLE", "LIST", "GRID", "PIE" ], "default": "WIDGET_TYPE_NONE", "x-displayname": "Widget Type.", "x-ves-proto-enum": "ves.io.schema.ai_assistant.common.WidgetType", "x-f5xc-description-short": "Widget Type defines the data type for widget. - WIDGET_TYPE_NONE: None None type - TWO_VALUE: two_value Two Value type widget ...", "x-f5xc-description-medium": "Widget Type defines the data type for widget. - WIDGET_TYPE_NONE: None None type - TWO_VALUE: two_value Two Value type widget - DISTRIBUTION_CHART: distribution_chart Distribution Chart type widget - TABLE: table Table type widget - LIST: list List type widget - GRID: grid Grid type widget ...", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for commonWidgetType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for commonWidgetType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "explain_log_recordAccuracy": { "type": "string", "description": "Specifies accuracy of the signature\n\n- ACCURACY_NONE: None\n\nNo accuracy\n- ACCURACY_LOW: Low\n\nSpecifies low accuracy of the signature\n- ACCURACY_MEDIUM: Medium\n\nSpecifies medium accuracy of the signature\n- ACCURACY_HIGH: High\n\nSpecifies high accuracy of the signature.", "title": "Accuracy", "enum": [ "ACCURACY_NONE", "ACCURACY_LOW", "ACCURACY_MEDIUM", "ACCURACY_HIGH" ], "default": "ACCURACY_NONE", "x-displayname": "Accuracy", "x-ves-proto-enum": "ves.io.schema.ai_assistant.explain_log_record.Accuracy", "x-f5xc-description-short": "Specifies accuracy of the signature - ACCURACY_NONE: None No accuracy - ACCURACY_LOW: Low Specifies low accuracy of the signature ...", "x-f5xc-description-medium": "Specifies accuracy of the signature - ACCURACY_NONE: None No accuracy - ACCURACY_LOW: Low Specifies low accuracy of the signature - ACCURACY_MEDIUM: Medium Specifies medium accuracy of the signature - ACCURACY_HIGH: High Specifies high accuracy of the signature.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for explain_log_recordAccuracy", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for explain_log_recordAccuracy\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "statistics", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "explain_log_recordBot": { "type": "object", "description": "Bot details.", "title": "Bot", "x-displayname": "Bot", "x-ves-proto-message": "ves.io.schema.ai_assistant.explain_log_record.Bot", "properties": { "classification": { "type": "string", "description": "Bot classification.", "title": "classification", "x-displayname": "Classification.", "x-ves-example": "Suspicious.", "x-f5xc-example": "suspicious", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "name": { "type": "string", "description": "Bot name", "title": "name", "x-displayname": "Name", "x-ves-example": "Curl", "x-f5xc-example": "curl", "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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" }, "type": { "type": "string", "description": "Bot type", "title": "name", "x-displayname": "Type", "x-ves-example": "HTTP Library.", "x-f5xc-example": "HTTP Library", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for explain_log_recordBot", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for explain_log_recordBot\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "statistics", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "explain_log_recordBotDefenseEventDetails": { "type": "object", "description": "Bot Defense security events details.", "title": "BotDefenseEventDetails", "x-displayname": "Bot Defense Event Details.", "x-ves-proto-message": "ves.io.schema.ai_assistant.explain_log_record.BotDefenseEventDetails", "properties": { "action": { "allOf": [ { "$ref": "#/components/schemas/ai_assistantexplain_log_recordAction" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "automation_type": { "type": "string", "description": "Bot automation type.", "title": "automation_type", "x-displayname": "Automation type.", "x-ves-example": "Token Missing.", "x-f5xc-example": "Token Missing", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "bot_type": { "type": "string", "description": "Bot type", "title": "bot_type", "x-displayname": "Bot type", "x-ves-example": "MALICIOUS", "x-f5xc-example": "MALICIOUS", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "method": { "type": "string", "description": "Method of the request.", "title": "method", "x-displayname": "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "request_path": { "type": "string", "description": "Request path.", "title": "request_path", "x-displayname": "Request Path.", "x-ves-example": "/API/support/cases/case1.", "x-f5xc-example": "/api/support/cases/case1", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for explain_log_recordBotDefenseEventDetails", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for explain_log_recordBotDefenseEventDetails\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "statistics", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "explain_log_recordEnforcementMode": { "type": "string", "description": "Enforcement mode of WAF\n\n- ENFORCEMENT_NONE: None\n\nNo enforcement\n- MONITORING: Monitoring\n\nMonitoring mode of WAF\n- BLOCKING: Blocking\n\nBlocking mode of WAF.", "title": "EnforcementMode", "enum": [ "ENFORCEMENT_NONE", "MONITORING", "BLOCKING" ], "default": "ENFORCEMENT_NONE", "x-displayname": "Enforcement Mode.", "x-ves-proto-enum": "ves.io.schema.ai_assistant.explain_log_record.EnforcementMode", "x-f5xc-description-short": "Enforcement mode of WAF - ENFORCEMENT_NONE: None No enforcement - MONITORING: Monitoring Monitoring mode of WAF - BLOCKING: Blocking Blocking mode...", "x-f5xc-description-medium": "Enforcement mode of WAF - ENFORCEMENT_NONE: None No enforcement - MONITORING: Monitoring Monitoring mode of WAF - BLOCKING: Blocking Blocking mode of WAF.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for explain_log_recordEnforcementMode", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for explain_log_recordEnforcementMode\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "statistics", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "explain_log_recordExplainLogRecordResponse": { "type": "object", "description": "Explain log response.", "title": "ExplainLogRecordResponse", "x-displayname": "Explain Log Record Response.", "x-ves-oneof-field-details": "[\"bot_defense_event_details\",\"request_details\",\"svc_policy_event_details\",\"waf_event_details\"]", "x-ves-proto-message": "ves.io.schema.ai_assistant.explain_log_record.ExplainLogRecordResponse", "properties": { "actions": { "type": "string", "description": "Follow-up actions.", "title": "actions", "x-displayname": "Actions", "x-ves-example": "If you think that this is a false positive you can create exclusion rule..", "x-f5xc-example": "If you think that this is a false positive you can create exclusion rule..", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "analysis": { "type": "string", "description": "Log analysis.", "title": "analysis", "x-displayname": "Analysis", "x-ves-example": "The request was blocked because Null in request violation was detected.", "x-f5xc-example": "The request was blocked because Null in request violation was detected", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "bot_defense_event_details": { "allOf": [ { "$ref": "#/components/schemas/explain_log_recordBotDefenseEventDetails" } ], "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "request_details", "svc_policy_event_details", "waf_event_details" ] }, "request_details": { "allOf": [ { "$ref": "#/components/schemas/explain_log_recordRequestDetails" } ], "x-f5xc-description-short": "Configuration parameter for request details.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "bot_defense_event_details", "svc_policy_event_details", "waf_event_details" ] }, "summary": { "type": "string", "description": "Log summary.", "title": "summary", "x-displayname": "Summary", "x-ves-example": "Request ID 12345 refers to a WAF security event for an HTTP request that was blocked.", "x-f5xc-example": "Request Id 12345 refers to a WAF security event for an HTTP request that was blocked", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "svc_policy_event_details": { "allOf": [ { "$ref": "#/components/schemas/explain_log_recordSvcPolicyEventDetails" } ], "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "bot_defense_event_details", "request_details", "waf_event_details" ] }, "waf_event_details": { "allOf": [ { "$ref": "#/components/schemas/explain_log_recordWAFEventDetails" } ], "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "bot_defense_event_details", "request_details", "svc_policy_event_details" ] } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for explain_log_recordExplainLogRecordResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for explain_log_recordExplainLogRecordResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "statistics", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "explain_log_recordIPReputation": { "type": "string", "description": "Specifies IP risk/trustworthiness\n\n- IP_REPUTATION_NONE: None\n\nNo IP reputation\n- IP_REPUTATION_LOW: Low\n\nSpecifies low IP risk/trustworthiness\n- IP_REPUTATION_HIGH: High\n\nSpecifies high IP risk/trustworthiness.", "title": "IPReputation", "enum": [ "IP_REPUTATION_NONE", "IP_REPUTATION_LOW", "IP_REPUTATION_HIGH" ], "default": "IP_REPUTATION_NONE", "x-displayname": "IP Reputation.", "x-ves-proto-enum": "ves.io.schema.ai_assistant.explain_log_record.IPReputation", "x-f5xc-description-short": "Specifies IP risk/trustworthiness - IP_REPUTATION_NONE: None No IP reputation - IP_REPUTATION_LOW: Low Specifies low IP risk/trustworthiness ...", "x-f5xc-description-medium": "Specifies IP risk/trustworthiness - IP_REPUTATION_NONE: None No IP reputation - IP_REPUTATION_LOW: Low Specifies low IP risk/trustworthiness - IP_REPUTATION_HIGH: High Specifies high IP risk/trustworthiness.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for explain_log_recordIPReputation", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for explain_log_recordIPReputation\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "statistics", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "explain_log_recordRequestDetails": { "type": "object", "description": "Request details.", "title": "RequestDetails", "x-displayname": "Request Details.", "x-ves-proto-message": "ves.io.schema.ai_assistant.explain_log_record.RequestDetails", "properties": { "domain": { "type": "string", "description": "Domain", "title": "domain", "x-displayname": "Domain", "x-ves-example": "example.com.", "x-f5xc-example": "example.com", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "rsp_code": { "type": "integer", "description": "Rsp_code", "title": "rsp_code", "format": "int64", "x-displayname": "Response Code.", "x-ves-example": "200", "x-f5xc-example": "200", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "rsp_code_details": { "type": "string", "description": "Rsp_code_details.", "title": "rsp_code_details", "x-displayname": "Response Code Details.", "x-ves-example": "Via upstream.", "x-f5xc-example": "via upstream", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "upstream_protocol_error_reason": { "type": "string", "description": "Upstream_protocol_error_reason.", "title": "upstream_protocol_error_reason", "x-displayname": "Upstream Protocol Error Reason.", "x-ves-example": "Headers_count_exceeds_limit.", "x-f5xc-example": "headers_count_exceeds_limit", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for explain_log_recordRequestDetails", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for explain_log_recordRequestDetails\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "statistics", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "explain_log_recordSignature": { "type": "object", "description": "Signature details.", "title": "Signature", "x-displayname": "Signature", "x-ves-proto-message": "ves.io.schema.ai_assistant.explain_log_record.Signature", "properties": { "accuracy": { "allOf": [ { "$ref": "#/components/schemas/explain_log_recordAccuracy" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "attack_type": { "type": "string", "description": "Attack type of the signature.", "title": "attack_type", "x-displayname": "Attack Type.", "x-ves-example": "Command Execution.", "x-f5xc-example": "Command Execution", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "context": { "type": "string", "description": "Context of the signature.", "title": "context", "x-displayname": "Context", "x-ves-example": "Parameter", "x-f5xc-example": "parameter", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "id": { "type": "string", "description": "Signature ID.", "title": "id", "x-displayname": "Signature ID.", "x-ves-example": "200013569", "x-f5xc-example": "200013569", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "matching_info": { "type": "string", "description": "Matching info.", "title": "matching_info", "x-displayname": "Matching Info.", "x-ves-example": "Matched 7 chars on offset 6 against value: Token.", "x-f5xc-example": "Matched 7 chars on offset 6 against valueToken", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "name": { "type": "string", "description": "Signature name.", "title": "name", "x-displayname": "Name", "x-ves-example": "Shell command processor.", "x-f5xc-example": "shell command processor", "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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" }, "state": { "type": "string", "description": "State of the signature, can be enabled, suppressed and etc.", "title": "state", "x-displayname": "State", "x-ves-example": "Enabled", "x-f5xc-example": "Enabled", "x-f5xc-description-short": "State of the signature, can be enabled, suppressed and etc.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for explain_log_recordSignature", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for explain_log_recordSignature\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "statistics", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "explain_log_recordSvcPolicyEventDetails": { "type": "object", "description": "Service policy security events details.", "title": "SvcPolicyEventDetails", "x-displayname": "Service Policy Event Details.", "x-ves-proto-message": "ves.io.schema.ai_assistant.explain_log_record.SvcPolicyEventDetails", "properties": { "action": { "allOf": [ { "$ref": "#/components/schemas/ai_assistantexplain_log_recordAction" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "ip_risk": { "allOf": [ { "$ref": "#/components/schemas/explain_log_recordIPReputation" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "ip_threat_categories": { "type": "array", "description": "IP threat categories.", "title": "ip threat categories", "items": { "$ref": "#/components/schemas/policyIPThreatCategory" }, "x-displayname": "IP threat categories.", "x-ves-example": "SPAM_SOURCES,PHISHING.", "x-f5xc-example": "SPAM_SOURCES,PHISHING", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "ip_trustworthiness": { "allOf": [ { "$ref": "#/components/schemas/explain_log_recordIPReputation" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "policy": { "type": "string", "description": "Policy name.", "title": "policy", "x-displayname": "Policy", "x-ves-example": "Policy-1", "x-f5xc-example": "policy-1", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "policy_namespace": { "type": "string", "description": "Policy namespace.", "title": "policy namespace", "x-displayname": "Policy namespace.", "x-ves-example": "Data-path", "x-f5xc-example": "data-path", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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": "Policy-rule-1.", "x-f5xc-example": "policy-rule-1", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for explain_log_recordSvcPolicyEventDetails", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for explain_log_recordSvcPolicyEventDetails\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "statistics", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "explain_log_recordThreatCampaign": { "type": "object", "description": "Threat campaign details.", "title": "ThreatCampaign", "x-displayname": "Threat Campaign.", "x-ves-proto-message": "ves.io.schema.ai_assistant.explain_log_record.ThreatCampaign", "properties": { "attack_type": { "type": "string", "description": "Attack type of threat campaign.", "title": "attack_type", "x-displayname": "Attack Type.", "x-ves-example": "Command Execution.", "x-f5xc-example": "Command Execution", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "id": { "type": "string", "description": "ThreatCampaign ID.", "title": "id", "x-displayname": "ThreatCampaign ID.", "x-ves-example": "Cmpe1ab3d4feddb3c691bc68201d253be66.", "x-f5xc-example": "cmpe1ab3d4feddb3c691bc68201d253be66", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "name": { "type": "string", "description": "ThreatCampaign name.", "title": "name", "x-displayname": "Name", "x-ves-example": "Nette Framework Remote Code Execution - oshi.", "x-f5xc-example": "Nette Framework Remote Code Execution - oshi", "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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for explain_log_recordThreatCampaign", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for explain_log_recordThreatCampaign\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "statistics", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "explain_log_recordViolation": { "type": "object", "description": "Violation details.", "title": "Violation", "x-displayname": "Violation", "x-ves-proto-message": "ves.io.schema.ai_assistant.explain_log_record.Violation", "properties": { "attack_type": { "type": "string", "description": "Attack type of the violation.", "title": "attack_type", "x-displayname": "Attack Type.", "x-ves-example": "Command Execution.", "x-f5xc-example": "Command Execution", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "context": { "type": "string", "description": "Context of the violation.", "title": "context", "x-displayname": "Context", "x-ves-example": "Parameter", "x-f5xc-example": "parameter", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "matching_info": { "type": "string", "description": "Matching info.", "title": "matching_info", "x-displayname": "Matching Info.", "x-ves-example": "File extension was dat.", "x-f5xc-example": "File extension was dat", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "name": { "type": "string", "description": "Violation name.", "title": "name", "x-displayname": "Name", "x-ves-example": "Illegal filetype.", "x-f5xc-example": "Illegal filetype", "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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" }, "state": { "type": "string", "description": "State of the violation, can be enabled, suppressed and etc.", "title": "state", "x-displayname": "State", "x-ves-example": "Enabled", "x-f5xc-example": "Enabled", "x-f5xc-description-short": "State of the violation, can be enabled, suppressed and etc.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for explain_log_recordViolation", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for explain_log_recordViolation\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "statistics", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "explain_log_recordWAFEventDetails": { "type": "object", "description": "WAF security events details.", "title": "WAFEventDetails", "x-displayname": "WAF Event Details.", "x-ves-proto-message": "ves.io.schema.ai_assistant.explain_log_record.WAFEventDetails", "properties": { "action": { "allOf": [ { "$ref": "#/components/schemas/ai_assistantexplain_log_recordAction" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "app_firewall": { "type": "string", "description": "App Firewall name.", "title": "app_firewall", "x-displayname": "App Firewall.", "x-ves-example": "App-firewall.", "x-f5xc-example": "app-firewall", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "bot": { "allOf": [ { "$ref": "#/components/schemas/explain_log_recordBot" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "enforcement_mode": { "allOf": [ { "$ref": "#/components/schemas/explain_log_recordEnforcementMode" } ], "x-f5xc-description-short": "Configuration parameter for enforcement mode.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "signatures": { "type": "array", "description": "The signatures that were detected in the request.", "title": "signatures", "items": { "$ref": "#/components/schemas/explain_log_recordSignature" }, "x-displayname": "Signatures.", "x-f5xc-description-short": "The signatures that were detected in the request.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "threat_campaigns": { "type": "array", "description": "Threat campaigns that were detected in the request.", "title": "threat_campaigns", "items": { "$ref": "#/components/schemas/explain_log_recordThreatCampaign" }, "x-displayname": "Threat Campaign.", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "Threat campaigns that were detected in the request.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "violations": { "type": "array", "description": "The violations that were detected in the request.", "title": "violations", "items": { "$ref": "#/components/schemas/explain_log_recordViolation" }, "x-displayname": "Violations.", "x-f5xc-description-short": "The violations that were detected in the request.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for explain_log_recordWAFEventDetails", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for explain_log_recordWAFEventDetails\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "virtual", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "gen_dashboard_filterGenDashboardFilterResponse": { "type": "object", "description": "Generate dashboard filter response.", "title": "GenDashboardFilterResponse", "x-displayname": "Generate Dashboard Filter.", "x-ves-proto-message": "ves.io.schema.ai_assistant.gen_dashboard_filter.GenDashboardFilterResponse", "properties": { "actions": { "type": "string", "description": "Follow-up actions.", "title": "actions", "x-displayname": "Actions", "x-ves-example": "To view these events go to the ${{link:dashboard_link}} page.", "x-f5xc-example": "To view these events go to the ${{link:dashboard_link}} page", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "links": { "type": "array", "description": "Links that will be presented to the user.", "title": "links", "items": { "$ref": "#/components/schemas/commonLink" }, "x-displayname": "Links", "x-f5xc-description-short": "Links that will be presented to the user.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "summary": { "type": "string", "description": "Events summary.", "title": "summary", "x-displayname": "Summary", "x-ves-example": "135 events matching your query were found.", "x-f5xc-example": "135 events matching your query were found", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for gen_dashboard_filterGenDashboardFilterResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for gen_dashboard_filterGenDashboardFilterResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "listItem": { "type": "object", "x-ves-proto-message": "ves.io.schema.ai_assistant.list.Item", "properties": { "link": { "allOf": [ { "$ref": "#/components/schemas/commonLink" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for listItem", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for listItem\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "listList": { "type": "object", "x-ves-proto-message": "ves.io.schema.ai_assistant.list.List", "properties": { "item": { "type": "array", "description": "List of item.", "title": "item", "items": { "$ref": "#/components/schemas/listItem" }, "x-displayname": "Item", "x-ves-example": "Entries for each item.", "x-f5xc-example": "Entries for each item", "x-f5xc-constraints": { "constraintType": "array", "category": "general", "minItems": 0, "maxItems": 256, "uniqueItems": false, "metadata": { "source": "inferred", "confidence": 0.7, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "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-08-20T09:12:47+00:00" }, "title": { "type": "string", "description": "Human-readable title for the resource", "title": "Title", "x-displayname": "Title", "x-ves-example": "Cloud Sites.", "x-f5xc-example": "Cloud Sites", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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-08-20T09:12:47+00:00" } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for listList", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for listList\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "listListResponse": { "type": "object", "description": "List response.", "title": "List Response", "x-displayname": "List Response.", "x-ves-proto-message": "ves.io.schema.ai_assistant.list.ListResponse", "properties": { "external_links": { "type": "array", "description": "External doc links, that will be presented to the user.", "title": "external links", "items": { "$ref": "#/components/schemas/commonLink" }, "x-displayname": "External Links.", "x-ves-validation-rules": { "ves.io.schema.rules.repeated.unique": "true", "ves.io.schema.rules.string.max_len": "6" }, "x-validation-rules": { "ves.io.schema.rules.repeated.unique": "true", "ves.io.schema.rules.string.max_len": "6" }, "x-f5xc-description-short": "External doc links, that will be presented to the user.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "items": { "type": "array", "description": "Response will have set of lists.", "title": "Items", "items": { "$ref": "#/components/schemas/listList" }, "x-displayname": "List View", "x-f5xc-example": "[\"item1\", \"item2\", \"item3\"]", "x-f5xc-constraints": { "constraintType": "array", "category": "general", "minItems": 0, "maxItems": 256, "uniqueItems": false, "metadata": { "source": "inferred", "confidence": 0.7, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "summary": { "type": "string", "description": "Configuration parameter for summary", "title": "summary", "x-displayname": "Summary", "x-ves-example": "This is summary of List response.", "x-f5xc-example": "This is summary of List response", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for listListResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for listListResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "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_yaml": "# Minimal example for policyIPThreatCategory\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "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\": ,\n\"lastName\": \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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for protobufAny\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "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_yaml": "# Minimal example for schemaEmpty\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "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_yaml": "# Minimal example for schemaErrorCode\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for schemaErrorType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "site_analysisSiteAnalysisResponse": { "type": "object", "description": "Site analysis response.", "title": "Site Analysis Response", "x-displayname": "Site Analysis Response.", "x-ves-proto-message": "ves.io.schema.ai_assistant.site_analysis.SiteAnalysisResponse", "properties": { "external_links": { "type": "array", "description": "External doc links, that will be presented to the user.", "title": "external links", "items": { "$ref": "#/components/schemas/commonLink" }, "x-displayname": "External Links.", "x-ves-validation-rules": { "ves.io.schema.rules.repeated.unique": "true", "ves.io.schema.rules.string.max_len": "6" }, "x-validation-rules": { "ves.io.schema.rules.repeated.unique": "true", "ves.io.schema.rules.string.max_len": "6" }, "x-f5xc-description-short": "External doc links, that will be presented to the user.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "internal_links": { "type": "array", "description": "Internal Link like dashboard links, that will be presented to the user.", "title": "internal links", "items": { "$ref": "#/components/schemas/commonLink" }, "x-displayname": "Internal Links.", "x-ves-validation-rules": { "ves.io.schema.rules.repeated.unique": "true", "ves.io.schema.rules.string.max_len": "6" }, "x-validation-rules": { "ves.io.schema.rules.repeated.unique": "true", "ves.io.schema.rules.string.max_len": "6" }, "x-f5xc-description-short": "Internal Link like dashboard links, that will be presented to the user.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "overlay_content": { "allOf": [ { "$ref": "#/components/schemas/commonOverlayContent" } ], "x-f5xc-description-short": "Configuration parameter for overlay content.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "summary": { "type": "string", "description": "Configuration parameter for summary", "title": "summary", "x-displayname": "Summary", "x-ves-example": "This site analysis response provides status of sites.", "x-f5xc-example": "This site analysis response provides status of sites.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "table_view": { "allOf": [ { "$ref": "#/components/schemas/widgetWidgetView" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for site_analysisSiteAnalysisResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for site_analysisSiteAnalysisResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "widgetCell": { "type": "object", "x-ves-proto-message": "ves.io.schema.ai_assistant.widget.Cell", "properties": { "link": { "allOf": [ { "$ref": "#/components/schemas/commonLink" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "properties": { "allOf": [ { "$ref": "#/components/schemas/commonCellProperties" } ], "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": "Site1", "x-f5xc-example": "site1", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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-08-20T09:12:47+00:00" } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for widgetCell", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for widgetCell\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "widgetRow": { "type": "object", "description": "Contains the value for each rows of table.", "title": "Row", "x-displayname": "Table Rows.", "x-ves-proto-message": "ves.io.schema.ai_assistant.widget.Row", "properties": { "cells": { "type": "array", "description": "Configuration parameter for cells", "title": "Values", "items": { "$ref": "#/components/schemas/widgetCell" }, "x-displayname": "Values", "x-ves-example": "Site Name:\"site-1.", "x-f5xc-example": "\"Site Name:\"site-1\"", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Contains the value for each rows of table.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for widgetRow", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for widgetRow\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "widgetTable": { "type": "object", "x-ves-proto-message": "ves.io.schema.ai_assistant.widget.Table", "properties": { "field_properties": { "type": "array", "description": "Lists the name of the field & corresponding properties.", "title": "Field Properties\nx-displayName: \"Field Properties\"\nLists the name of the field & corresponding properties", "items": { "$ref": "#/components/schemas/commonFieldProperties" }, "x-displayname": "Field Properties.", "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": "Lists the name of the field & corresponding properties.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "rows": { "type": "array", "description": "List of table rows.", "title": "rows", "items": { "$ref": "#/components/schemas/widgetRow" }, "x-displayname": "Row", "x-ves-example": "Entries for each rows.", "x-f5xc-example": "Entries for each rows", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "widget_type": { "allOf": [ { "$ref": "#/components/schemas/commonWidgetType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for widgetTable", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for widgetTable\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "widgetWidgetResponse": { "type": "object", "description": "Widget response.", "title": "Widget Response", "x-displayname": "Widget Response.", "x-ves-proto-message": "ves.io.schema.ai_assistant.widget.WidgetResponse", "properties": { "item_links": { "type": "array", "description": "Links that will be presented to the user.", "title": "item_links", "items": { "$ref": "#/components/schemas/commonLink" }, "x-displayname": "Links", "x-f5xc-description-short": "Links that will be presented to the user.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "items": { "type": "array", "description": "Response will have different types of widgets.", "title": "Items", "items": { "$ref": "#/components/schemas/widgetWidgetView" }, "x-displayname": "Widget View.", "x-f5xc-example": "[\"item1\", \"item2\", \"item3\"]", "x-f5xc-description-short": "Response will have different types of widgets.", "x-f5xc-constraints": { "constraintType": "array", "category": "general", "minItems": 0, "maxItems": 256, "uniqueItems": false, "metadata": { "source": "inferred", "confidence": 0.7, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "summary": { "type": "string", "description": "Configuration parameter for summary", "title": "summary", "x-displayname": "Summary", "x-ves-example": "This is summary of widget response.", "x-f5xc-example": "This is summary of widget response", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for widgetWidgetResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for widgetWidgetResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "widgetWidgetView": { "type": "object", "x-ves-proto-message": "ves.io.schema.ai_assistant.widget.WidgetView", "properties": { "item": { "allOf": [ { "$ref": "#/components/schemas/widgetTable" } ], "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-08-20T09:12:47+00:00" } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for widgetWidgetView", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for widgetWidgetView\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "bfdpEnableFeatureRequest": { "type": "object", "description": "Any payload to be passed on the GET Provision API.", "title": "EnableFeatureRequest", "x-displayname": "EnableFeature Request.", "x-ves-proto-message": "ves.io.schema.ai_data.bfdp.EnableFeatureRequest", "x-f5xc-description-short": "Any payload to be passed on the GET Provision API.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for bfdpEnableFeatureRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for bfdpEnableFeatureRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "bfdpEnableFeatureResponse": { "type": "object", "description": "Any payload to be passed on the GET Provision API.", "title": "EnableFeatureResponse", "x-displayname": "EnableFeature Response.", "x-ves-proto-message": "ves.io.schema.ai_data.bfdp.EnableFeatureResponse", "x-f5xc-description-short": "Any payload to be passed on the GET Provision API.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for bfdpEnableFeatureResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for bfdpEnableFeatureResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "bfdpRefreshTokenRequest": { "type": "object", "description": "API to refresh token for a given pipeline.", "title": "RefreshTokenRequest", "x-displayname": "Refresh Token Request.", "x-ves-proto-message": "ves.io.schema.ai_data.bfdp.RefreshTokenRequest", "properties": { "product_name": { "type": "string", "description": "Product_name is a pipeline name for which token to be generated.", "title": "product_name", "x-displayname": "Product_name.", "x-ves-example": "Product_name.", "x-f5xc-example": "product_name", "x-f5xc-description-short": "Product_name is a pipeline name for which token to be generated.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "API to refresh token for a given pipeline.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for bfdpRefreshTokenRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for bfdpRefreshTokenRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "users", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "bfdpRefreshTokenResponse": { "type": "object", "description": "Refresh token result.", "title": "RefreshTokenResponse", "x-displayname": "Refresh Token Response.", "x-ves-proto-message": "ves.io.schema.ai_data.bfdp.RefreshTokenResponse", "properties": { "result": { "type": "string", "description": "Result will be in JSON format having token in it.", "title": "result", "x-displayname": "Result", "x-ves-example": "Result", "x-f5xc-example": "result", "x-f5xc-description-short": "Result will be in JSON format having token in it.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for bfdpRefreshTokenResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for bfdpRefreshTokenResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "users", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "subscriptionSubscribeRequest__ves_io_schema_ai_data_bfdp_subscription": { "type": "object", "description": "Request to subscribe to BFDP CMS.", "title": "SubscribeRequest", "x-displayname": "Subscribe Request.", "x-ves-proto-message": "ves.io.schema.ai_data.bfdp.subscription.SubscribeRequest", "properties": { "product_name": { "type": "string", "description": "F5 product's pipeline object name .", "title": "product_name", "x-displayname": "Product_name.", "x-ves-example": "Product name.", "x-f5xc-example": "product name", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for subscriptionSubscribeRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for subscriptionSubscribeRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "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_ai_data_bfdp_subscription": { "type": "object", "description": "Response of subscribe to BFDP CMS.", "title": "SubscribeResponse", "x-displayname": "Subscribe Response.", "x-ves-proto-message": "ves.io.schema.ai_data.bfdp.subscription.SubscribeResponse", "properties": { "configured_tenant_id": { "type": "string", "description": "F5 product's pipeline configured tenant .", "title": "configured_tenant_id", "x-displayname": "Configured_tenant_id.", "x-ves-example": "Configured Tenant.", "x-f5xc-example": "Configured Tenant", "x-f5xc-description-short": "F5 product's pipeline configured tenant .", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-field-mutability": "read-only" }, "pipeline_id": { "type": "string", "description": "F5 product's pipeline ID for which this tenant is configured.", "title": "pipleine_id", "x-displayname": "Pipleine_id.", "x-ves-example": "Pipleine_id.", "x-f5xc-example": "pipleine_id", "x-f5xc-description-short": "F5 product's pipeline ID for which this tenant is configured.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-field-mutability": "read-only" }, "pipeline_name": { "type": "string", "description": "F5 product's pipeline name for which this tenant is configured.", "title": "pipeline_name", "x-displayname": "Pipeline_name.", "x-ves-example": "Pipeline_name.", "x-f5xc-example": "pipeline_name", "x-f5xc-description-short": "F5 product's pipeline name for which this tenant is configured.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "token": { "type": "string", "description": "F5 product's pipeline token to ingest data .", "title": "token", "x-displayname": "Token", "x-ves-example": "Token name.", "x-f5xc-example": "token name", "x-f5xc-description-short": "F5 product's pipeline token to ingest data .", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "security", "maxLength": 1024, "minLength": 20, "metadata": { "source": "inferred", "confidence": 0.75, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for subscriptionSubscribeResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for subscriptionSubscribeResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "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" } } }, "subscriptionTokenRequest": { "type": "object", "description": "Request to subscribe to BFDP CMS.", "title": "TokenRequest", "x-displayname": "Token Request.", "x-ves-proto-message": "ves.io.schema.ai_data.bfdp.subscription.TokenRequest", "properties": { "product_name": { "type": "string", "description": "F5 product's pipeline object name .", "title": "product_name", "x-displayname": "Product_name.", "x-ves-example": "Product name.", "x-f5xc-example": "product name", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for subscriptionTokenRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for subscriptionTokenRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "users", "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" } } }, "subscriptionTokenResponse": { "type": "object", "description": "Request to subscribe to BFDP CMS.", "title": "TokenResponse", "x-displayname": "Token Response.", "x-ves-proto-message": "ves.io.schema.ai_data.bfdp.subscription.TokenResponse", "properties": { "token": { "type": "string", "description": "F5 product's pipeline object name .", "title": "product_name", "x-displayname": "Token", "x-ves-example": "Workload identity JSON string or oauth2 token.", "x-f5xc-example": "workload identity json string or oauth2 token", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "security", "maxLength": 1024, "minLength": 20, "metadata": { "source": "inferred", "confidence": 0.75, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for subscriptionTokenResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for subscriptionTokenResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "users", "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_ai_data_bfdp_subscription": { "type": "object", "description": "Request to unsubscribe to BFDP CMS.", "title": "UnsubscribeRequest", "x-displayname": "Unsubscribe Request.", "x-ves-proto-message": "ves.io.schema.ai_data.bfdp.subscription.UnsubscribeRequest", "properties": { "product_name": { "type": "string", "description": "F5 product's pipeline object name .", "title": "product_name", "x-displayname": "Product_name.", "x-ves-example": "Product name.", "x-f5xc-example": "product name", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for subscriptionUnsubscribeRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for subscriptionUnsubscribeRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "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_ai_data_bfdp_subscription": { "type": "object", "description": "Response of unsubscribe to BFDP CMS.", "title": "UnsubscribeResponse", "x-displayname": "Unsubscribe Response.", "x-ves-proto-message": "ves.io.schema.ai_data.bfdp.subscription.UnsubscribeResponse", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for subscriptionUnsubscribeResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for subscriptionUnsubscribeResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "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" } } }, "giaAllocateIPRequest": { "type": "object", "description": "This is the input message of the 'AllocateIP' RPC.", "title": "AllocateIP Request", "x-displayname": "AllocateIP Request.", "x-ves-proto-message": "ves.io.schema.gia.AllocateIPRequest", "properties": { "context": { "type": "string", "description": "This is the global IP allocator context from which IP allocation will happen\nOptional: If not specified, gia will try to allocate IP from default IP range.", "title": "context", "x-displayname": "Context", "x-ves-example": "App-VIP-pool-1.", "x-f5xc-example": "app-vip-pool-1", "x-f5xc-description-short": "Global IP allocator context from which IP allocation will happen Optional: If not specified, gia will try to allocate IP from default IP range.", "x-f5xc-description-medium": "Global IP allocator context from which IP allocation will happen Optional: If not specified, gia will try to allocate IP from default IP range.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "use_v6_range": { "type": "boolean", "description": "Optional: If not specified, v4 range for this tenant will be used.", "title": "use_v6_range", "format": "boolean", "x-displayname": "Use IPv6 Range.", "x-f5xc-example": "false", "x-f5xc-description-short": "Optional: If not specified, v4 range for this tenant will be used.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for giaAllocateIPRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for giaAllocateIPRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "giaAllocateIPResponse": { "type": "object", "description": "This is the output message of the 'AllocateIP' RPC.", "title": "AllocateIP Response", "x-displayname": "AllocateIP Response.", "x-ves-proto-message": "ves.io.schema.gia.AllocateIPResponse", "properties": { "error_message": { "type": "string", "description": "Error message from global IP allocator.", "title": "error_message", "x-displayname": "Error message.", "x-ves-example": "GIA Internal Error.", "x-f5xc-example": "GIA Internal Error", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "ip": { "type": "string", "description": "IPv4 address in dotted decimal notation (e.g., 192.0.2.1)", "title": "ip address", "x-displayname": "IP Address allocated.", "x-ves-example": "192.0.2.56.", "x-f5xc-example": "192.0.2.56", "x-f5xc-description-short": "IPv4 address in dotted decimal notation (e.g., 192.0.2.1).", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for giaAllocateIPResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for giaAllocateIPResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "giaDeallocateIPRequest": { "type": "object", "description": "This is the input message of the 'DeAllocateIP' RPC.", "title": "DeAllocateIPRequest is used to deallocate an ip", "x-displayname": "DeAllocateIP Request.", "x-ves-proto-message": "ves.io.schema.gia.DeallocateIPRequest", "properties": { "context": { "type": "string", "description": "This is the global IP allocator context from which IP deallocation will happen\nOptional: If not specified, gia will try to deallocate given IP from default IP range.", "title": "context", "x-displayname": "Context", "x-ves-example": "App-VIP-pool-1.", "x-f5xc-example": "app-vip-pool-1", "x-f5xc-description-short": "Global IP allocator context from which IP deallocation will happen Optional: If not specified, gia will try to deallocate given IP from default IP...", "x-f5xc-description-medium": "Global IP allocator context from which IP deallocation will happen Optional: If not specified, gia will try to deallocate given IP from default IP range.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "ip": { "type": "string", "description": "IP which needs to de-allocated.", "title": "ip address", "x-displayname": "IP Address.", "x-ves-example": "192.0.2.56.", "x-ves-validation-rules": { "ves.io.schema.rules.string.ip": "true" }, "x-f5xc-example": "192.0.2.56", "x-validation-rules": { "ves.io.schema.rules.string.ip": "true" }, "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 1024, "format": "ip", "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Input message of the 'DeAllocateIP' RPC.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for giaDeallocateIPRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for giaDeallocateIPRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "giaDeallocateIPResponse": { "type": "object", "description": "This is the output message of the 'DeAllocateIP' RPC.", "title": "DeallocateIP Response", "x-displayname": "DeAllocateIP Response.", "x-ves-proto-message": "ves.io.schema.gia.DeallocateIPResponse", "properties": { "message": { "type": "string", "description": "Message from global IP allocator.", "title": "message", "x-displayname": "Message", "x-ves-example": "IP de-allocated successfully.", "x-f5xc-example": "IP de-allocated successfully", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Output message of the 'DeAllocateIP' RPC.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for giaDeallocateIPResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for giaDeallocateIPResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } } }, "responses": {}, "parameters": {}, "requestBodies": {} } }, "api": { "openapi": "3.0.3", "info": { "title": "Api", "description": "Structured classification systems with versioning support for contract evolution. Hierarchical groupings segment resources by operational role or security boundaries. Behavioral verification confirms authentication flows and permission constraints. Token and key safeguards protect sensitive credentials. Traffic inspection through connected load balancers and firewalls enables threat detection at network perimeters.", "version": "4.0.0", "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": "Structured classification systems with versioning support for contract evolution. Hierarchical groupings segment resources by operational role or security boundaries. Behavioral verification confirms authentication flows and permission constraints. Token and key safeguards protect sensitive credentials. Traffic inspection through connected load balancers and firewalls enables threat detection at network perimeters.", "x-f5xc-summary": "Resource cataloging with automatic classification and security profiling. Organizational hierarchies segment access by function or protection policy.", "x-f5xc-cli-domain": "api", "externalDocs": { "url": "https://docs.cloud.f5.com/docs/how-to/app-security/api-discovery-and-protection", "description": "F5 XC Documentation - API Security" }, "x-f5xc-api-reference-url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/api/", "x-f5xc-best-practices": { "common_errors": [ { "code": 400, "message": "Invalid request body", "resolution": "Validate JSON structure and required fields before submission", "prevention": "Use schema validation from OpenAPI spec" }, { "code": 401, "message": "Authentication failed", "resolution": "Verify API token is valid and not expired", "prevention": "Use environment variables for token management" }, { "code": 403, "message": "Permission denied", "resolution": "Check user role and namespace permissions", "prevention": "Verify RBAC policies before operations" }, { "code": 404, "message": "Resource not found", "resolution": "Verify resource name and namespace exist", "prevention": "List resources before attempting operations" }, { "code": 409, "message": "Resource already exists", "resolution": "Use unique name or delete existing resource", "prevention": "Check existence before creation" }, { "code": 429, "message": "Rate limit exceeded", "resolution": "Implement exponential backoff and retry logic", "prevention": "Batch operations and add delays between requests" } ], "security_notes": [ "Always use HTTPS for all API communications", "Store API tokens securely, never in source code", "Rotate API tokens regularly following security policies" ], "performance_tips": [ "Use pagination for large result sets", "Batch related operations when possible", "Cache read-only responses appropriately" ] }, "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "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": "config" }, { "name": "ml" }, { "name": "web" } ], "paths": { "/api/config/namespaces/{metadata.namespace}/api_crawlers": { "post": { "summary": "Create API Crawler.", "operationId": "ves.io.schema.api_sec.api_crawler.API.Create", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/api_crawlerCreateResponse" } } } }, "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/api_crawlerCreateRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/api/" }, "x-ves-proto-rpc": "ves.io.schema.api_sec.api_crawler.API.Create", "tags": [ "config" ], "description": "Create api_crawlers.", "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": [ "Api-crawler resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "api-crawler" ] }, "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": [ "api-crawler" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "API Crawler.", "x-ves-proto-service": "ves.io.schema.api_sec.api_crawler.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{metadata.namespace}/api_crawlers/{metadata.name}": { "put": { "summary": "Replace API crawler.", "operationId": "ves.io.schema.api_sec.api_crawler.API.Replace", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/api_crawlerReplaceResponse" } } } }, "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/api_crawlerReplaceRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/api/" }, "x-ves-proto-rpc": "ves.io.schema.api_sec.api_crawler.API.Replace", "tags": [ "config" ], "description": "Replace api_crawlers.", "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": [ "api-crawler" ] }, "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": [ "api-crawler" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 800, "p95_ms": 2500, "p99_ms": 6000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "API Crawler.", "x-ves-proto-service": "ves.io.schema.api_sec.api_crawler.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{namespace}/api_crawlers": { "get": { "summary": "List API Crawler.", "description": "List the set of api_crawler in a namespace.", "operationId": "ves.io.schema.api_sec.api_crawler.API.List", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/api_crawlerListResponse" } } } }, "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 api_crawler.", "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/api/" }, "x-ves-proto-rpc": "ves.io.schema.api_sec.api_crawler.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-discovered-response-time-ms": 159.81, "x-discovered-sample-size": 1, "x-f5xc-discovered-response-time": { "p50_ms": 159.81, "p95_ms": 319.62, "p99_ms": 479.43, "sample_count": 1, "source": "discovery", "last_measured": "2025-12-20T19:39:20.211392+00:00" } }, "x-displayname": "API Crawler.", "x-ves-proto-service": "ves.io.schema.api_sec.api_crawler.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{namespace}/api_crawlers/{name}": { "get": { "summary": "GET API crawler.", "operationId": "ves.io.schema.api_sec.api_crawler.API.Get", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/api_crawlerGetResponse" } } } }, "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/api/" }, "x-ves-proto-rpc": "ves.io.schema.api_sec.api_crawler.API.Get", "tags": [ "config" ], "description": "GET api_crawlers.", "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 API Crawler.", "description": "DELETE the specified api_crawler.", "operationId": "ves.io.schema.api_sec.api_crawler.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/api_crawlerDeleteRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/api/" }, "x-ves-proto-rpc": "ves.io.schema.api_sec.api_crawler.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": [ "api-crawler", "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": [ "api-crawler", "contained_resources" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 500, "p95_ms": 1500, "p99_ms": 4000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "API Crawler.", "x-ves-proto-service": "ves.io.schema.api_sec.api_crawler.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{metadata.namespace}/api_definitions": { "post": { "summary": "Create API Definition.", "description": "Create API Definition.", "operationId": "ves.io.schema.views.api_definition.API.Create", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/api_definitionCreateResponse" } } } }, "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/api_definitionCreateRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/api/" }, "x-ves-proto-rpc": "ves.io.schema.views.api_definition.API.Create", "tags": [ "config" ], "x-required": true, "x-f5xc-operation-metadata": { "purpose": "API definition for endpoint documentation", "required_fields": [ "metadata.name", "metadata.namespace", "path.metadata.namespace" ], "optional_fields": [], "field_docs": {}, "conditions": { "prerequisites": [ "Active namespace" ], "postconditions": [ "Api-definition resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "api-definition" ] }, "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": [ "api-definition" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "API Definition.", "x-ves-proto-service": "ves.io.schema.views.api_definition.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{metadata.namespace}/api_definitions/{metadata.name}": { "put": { "summary": "Replace API Definition.", "description": "Replace API Definition.", "operationId": "ves.io.schema.views.api_definition.API.Replace", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/api_definitionReplaceResponse" } } } }, "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/api_definitionReplaceRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/api/" }, "x-ves-proto-rpc": "ves.io.schema.views.api_definition.API.Replace", "tags": [ "config" ], "x-required": true, "x-f5xc-operation-metadata": { "purpose": "API definition for endpoint documentation", "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": [ "api-definition" ] }, "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": [ "api-definition" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 800, "p95_ms": 2500, "p99_ms": 6000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "API Definition.", "x-ves-proto-service": "ves.io.schema.views.api_definition.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{namespace}/api_definitions": { "get": { "summary": "List API Definition.", "description": "List the set of api_definition in a namespace.", "operationId": "ves.io.schema.views.api_definition.API.List", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/api_definitionListResponse" } } } }, "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 api_definition.", "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/api/" }, "x-ves-proto-rpc": "ves.io.schema.views.api_definition.API.List", "tags": [ "config" ], "x-f5xc-operation-metadata": { "purpose": "API definition for endpoint documentation", "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": "API Definition.", "x-ves-proto-service": "ves.io.schema.views.api_definition.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{namespace}/api_definitions/{name}": { "get": { "summary": "GET API Definition.", "description": "GET API Definition.", "operationId": "ves.io.schema.views.api_definition.API.Get", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/api_definitionGetResponse" } } } }, "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/api/" }, "x-ves-proto-rpc": "ves.io.schema.views.api_definition.API.Get", "tags": [ "config" ], "x-f5xc-operation-metadata": { "purpose": "API definition for endpoint documentation", "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 API Definition.", "description": "DELETE the specified api_definition.", "operationId": "ves.io.schema.views.api_definition.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/api_definitionDeleteRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/api/" }, "x-ves-proto-rpc": "ves.io.schema.views.api_definition.API.Delete", "tags": [ "config" ], "x-f5xc-operation-metadata": { "purpose": "API definition for endpoint documentation", "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": [ "api-definition", "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": [ "api-definition", "contained_resources" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 500, "p95_ms": 1500, "p99_ms": 4000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "API Definition.", "x-ves-proto-service": "ves.io.schema.views.api_definition.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{namespace}/api_definitions/{name}/loadbalancers": { "get": { "summary": "GET Referencing Loadbalancers.", "description": "List Loadbalancers referenced by the API Definition (backrefrences).", "operationId": "ves.io.schema.views.api_definition.PublicConfigCustomAPI.GetReferencingLoadbalancers", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/api_definitionGetReferencingAllLoadbalancersResp" } } } }, "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 API Definition 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 API Definition for the current request.", "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/api/" }, "x-ves-proto-rpc": "ves.io.schema.views.api_definition.PublicConfigCustomAPI.GetReferencingLoadbalancers", "tags": [ "config" ], "x-f5xc-operation-metadata": { "purpose": "Load balancing configuration for traffic distribution", "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": "API Definition.", "x-ves-proto-service": "ves.io.schema.views.api_definition.PublicConfigCustomAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/config/namespaces/{namespace}/api_definitions/{name}/mark_as_non_api": { "post": { "summary": "Mark As Non-API.", "description": "Update the API Definition's non-API list with the provided API endpoints.", "operationId": "ves.io.schema.views.api_definition.PublicConfigCustomAPI.MarkAsNonAPI", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/api_definitionAPInventoryResp" } } } }, "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 API Definition 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 API Definition 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/api_definitionAPInventoryReq" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/api/" }, "x-ves-proto-rpc": "ves.io.schema.views.api_definition.PublicConfigCustomAPI.MarkAsNonAPI", "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": [ "Mark-as-non-api resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "mark-as-non-api" ] }, "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": [ "mark-as-non-api" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "API Definition.", "x-ves-proto-service": "ves.io.schema.views.api_definition.PublicConfigCustomAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/config/namespaces/{namespace}/api_definitions/{name}/move_to_inventory": { "post": { "summary": "Move To API Inventory.", "description": "Update the API Definition's include list with the provided API endpoints.", "operationId": "ves.io.schema.views.api_definition.PublicConfigCustomAPI.MoveToAPInventory", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/api_definitionAPInventoryResp" } } } }, "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 API Definition 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 API Definition 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/api_definitionAPInventoryReq" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/api/" }, "x-ves-proto-rpc": "ves.io.schema.views.api_definition.PublicConfigCustomAPI.MoveToAPInventory", "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": [ "Move-to-inventory resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "move-to-inventory" ] }, "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": [ "move-to-inventory" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "API Definition.", "x-ves-proto-service": "ves.io.schema.views.api_definition.PublicConfigCustomAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/config/namespaces/{namespace}/api_definitions/{name}/remove_from_inventory": { "post": { "summary": "Remove From API Inventory.", "description": "Update the API Definition's exclude list with the provided API endpoints.", "operationId": "ves.io.schema.views.api_definition.PublicConfigCustomAPI.RemoveFromAPInventory", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/api_definitionAPInventoryResp" } } } }, "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 API Definition 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 API Definition 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/api_definitionAPInventoryReq" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/api/" }, "x-ves-proto-rpc": "ves.io.schema.views.api_definition.PublicConfigCustomAPI.RemoveFromAPInventory", "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": [ "Remove-from-inventory resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "remove-from-inventory" ] }, "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": [ "remove-from-inventory" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "API Definition.", "x-ves-proto-service": "ves.io.schema.views.api_definition.PublicConfigCustomAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/config/namespaces/{namespace}/api_definitions/{name}/unmark_as_non_api": { "post": { "summary": "Unmark As Non-API.", "description": "DELETE the provided API endpoints from the API Definition's non-API list.", "operationId": "ves.io.schema.views.api_definition.PublicConfigCustomAPI.UnmarkAsNonAPI", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/api_definitionAPInventoryResp" } } } }, "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 API Definition 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 API Definition 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/api_definitionAPInventoryReq" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/api/" }, "x-ves-proto-rpc": "ves.io.schema.views.api_definition.PublicConfigCustomAPI.UnmarkAsNonAPI", "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": [ "Unmark-as-non-api resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "unmark-as-non-api" ] }, "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": [ "unmark-as-non-api" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "API Definition.", "x-ves-proto-service": "ves.io.schema.views.api_definition.PublicConfigCustomAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/config/namespaces/{namespace}/api_definitions_without_shared": { "get": { "summary": "List Available API Definitions.", "description": "List API definitions suitable for API Inventory management\nGET all API Definitions for specific namespace exclude shared namespace.", "operationId": "ves.io.schema.views.api_definition.PublicConfigCustomAPI.ListAvailableAPIDefinitions", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/api_definitionListAvailableAPIDefinitionsResp" } } } }, "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 GET available API Definitions for the given namespace.", "in": "path", "required": true, "x-displayname": "Namespace", "schema": { "type": "string" }, "x-f5xc-example": "shared" } ], "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/api/" }, "x-ves-proto-rpc": "ves.io.schema.views.api_definition.PublicConfigCustomAPI.ListAvailableAPIDefinitions", "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": "API Definition.", "x-ves-proto-service": "ves.io.schema.views.api_definition.PublicConfigCustomAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/config/namespaces/{metadata.namespace}/api_discoverys": { "post": { "summary": "Create API Discovery.", "description": "Create API discovery creates a new object in the storage backend for metadata.namespace.", "operationId": "ves.io.schema.api_sec.api_discovery.API.Create", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/api_discoveryCreateResponse" } } } }, "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/api_discoveryCreateRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/api/" }, "x-ves-proto-rpc": "ves.io.schema.api_sec.api_discovery.API.Create", "tags": [ "config" ], "x-f5xc-operation-metadata": { "purpose": "API discovery for automatic endpoint detection", "required_fields": [ "metadata.name", "metadata.namespace", "path.metadata.namespace" ], "optional_fields": [], "field_docs": {}, "conditions": { "prerequisites": [ "Active namespace" ], "postconditions": [ "Api-discovery resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "api-discovery" ] }, "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": [ "api-discovery" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "API Discovery.", "x-ves-proto-service": "ves.io.schema.api_sec.api_discovery.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{metadata.namespace}/api_discoverys/{metadata.name}": { "put": { "summary": "Replace API Discovery.", "description": "Replace api_discovery replaces an existing object in the storage backend for metadata.namespace.", "operationId": "ves.io.schema.api_sec.api_discovery.API.Replace", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/api_discoveryReplaceResponse" } } } }, "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/api_discoveryReplaceRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/api/" }, "x-ves-proto-rpc": "ves.io.schema.api_sec.api_discovery.API.Replace", "tags": [ "config" ], "x-f5xc-operation-metadata": { "purpose": "API discovery for automatic endpoint detection", "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": [ "api-discovery" ] }, "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": [ "api-discovery" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 800, "p95_ms": 2500, "p99_ms": 6000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "API Discovery.", "x-ves-proto-service": "ves.io.schema.api_sec.api_discovery.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{namespace}/api_discoverys": { "get": { "summary": "List API Discovery.", "description": "List the set of api_discovery in a namespace.", "operationId": "ves.io.schema.api_sec.api_discovery.API.List", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/api_discoveryListResponse" } } } }, "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 api_discovery.", "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/api/" }, "x-ves-proto-rpc": "ves.io.schema.api_sec.api_discovery.API.List", "tags": [ "config" ], "x-f5xc-operation-metadata": { "purpose": "API discovery for automatic endpoint detection", "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-discovered-response-time-ms": 160.39, "x-discovered-sample-size": 1, "x-f5xc-discovered-response-time": { "p50_ms": 160.39, "p95_ms": 320.78, "p99_ms": 481.17, "sample_count": 1, "source": "discovery", "last_measured": "2025-12-20T19:39:20.211392+00:00" } }, "x-displayname": "API Discovery.", "x-ves-proto-service": "ves.io.schema.api_sec.api_discovery.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{namespace}/api_discoverys/{name}": { "get": { "summary": "GET API Discovery.", "description": "GET api_discovery reads a given object from storage backend for metadata.namespace.", "operationId": "ves.io.schema.api_sec.api_discovery.API.Get", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/api_discoveryGetResponse" } } } }, "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/api/" }, "x-ves-proto-rpc": "ves.io.schema.api_sec.api_discovery.API.Get", "tags": [ "config" ], "x-f5xc-operation-metadata": { "purpose": "API discovery for automatic endpoint detection", "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 API Discovery.", "description": "DELETE the specified api_discovery.", "operationId": "ves.io.schema.api_sec.api_discovery.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/api_discoveryDeleteRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/api/" }, "x-ves-proto-rpc": "ves.io.schema.api_sec.api_discovery.API.Delete", "tags": [ "config" ], "x-f5xc-operation-metadata": { "purpose": "API discovery for automatic endpoint detection", "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": [ "api-discovery", "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": [ "api-discovery", "contained_resources" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 500, "p95_ms": 1500, "p99_ms": 4000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "API Discovery.", "x-ves-proto-service": "ves.io.schema.api_sec.api_discovery.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/web/namespaces/{namespace}/api_groups": { "get": { "summary": "List API Group.", "description": "List the set of api_group in a namespace.", "operationId": "ves.io.schema.api_group.API.List", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/api_groupListResponse" } } } }, "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 api_group.", "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/api/" }, "x-ves-proto-rpc": "ves.io.schema.api_group.API.List", "tags": [ "web" ], "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": "API Group", "x-ves-proto-service": "ves.io.schema.api_group.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/web/namespaces/{namespace}/api_groups/{name}": { "get": { "summary": "GET API Group.", "description": "GET api_group reads a given object from storage backend for metadata.namespace.", "operationId": "ves.io.schema.api_group.API.Get", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/api_groupGetResponse" } } } }, "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/api/" }, "x-ves-proto-rpc": "ves.io.schema.api_group.API.Get", "tags": [ "web" ], "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" } }, "x-displayname": "API Group", "x-ves-proto-service": "ves.io.schema.api_group.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/web/namespaces/{namespace}/api_group_elements": { "get": { "summary": "List API Group Element.", "description": "List the set of api_group_element in a namespace.", "operationId": "ves.io.schema.api_group_element.API.List", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/api_group_elementListResponse" } } } }, "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 api_group_element.", "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/api/" }, "x-ves-proto-rpc": "ves.io.schema.api_group_element.API.List", "tags": [ "web" ], "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": "API Group Element.", "x-ves-proto-service": "ves.io.schema.api_group_element.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/web/namespaces/{namespace}/api_group_elements/{name}": { "get": { "summary": "GET API Group Element.", "description": "GET api_group_element reads a given object from storage backend for metadata.namespace.", "operationId": "ves.io.schema.api_group_element.API.Get", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/api_group_elementGetResponse" } } } }, "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/api/" }, "x-ves-proto-rpc": "ves.io.schema.api_group_element.API.Get", "tags": [ "web" ], "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" } }, "x-displayname": "API Group Element.", "x-ves-proto-service": "ves.io.schema.api_group_element.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{metadata.namespace}/api_testings": { "post": { "summary": "Create API Testing.", "operationId": "ves.io.schema.api_sec.api_testing.API.Create", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/api_testingCreateResponse" } } } }, "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/api_testingCreateRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/api/" }, "x-ves-proto-rpc": "ves.io.schema.api_sec.api_testing.API.Create", "tags": [ "config" ], "description": "Create api_testings.", "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": [ "Api-testing resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "api-testing" ] }, "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": [ "api-testing" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "API Testing.", "x-ves-proto-service": "ves.io.schema.api_sec.api_testing.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{metadata.namespace}/api_testings/{metadata.name}": { "put": { "summary": "Replace API testing.", "operationId": "ves.io.schema.api_sec.api_testing.API.Replace", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/api_testingReplaceResponse" } } } }, "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/api_testingReplaceRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/api/" }, "x-ves-proto-rpc": "ves.io.schema.api_sec.api_testing.API.Replace", "tags": [ "config" ], "description": "Replace api_testings.", "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": [ "api-testing" ] }, "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": [ "api-testing" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 800, "p95_ms": 2500, "p99_ms": 6000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "API Testing.", "x-ves-proto-service": "ves.io.schema.api_sec.api_testing.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{namespace}/api_testings": { "get": { "summary": "List API Testing.", "description": "List the set of api_testing in a namespace.", "operationId": "ves.io.schema.api_sec.api_testing.API.List", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/api_testingListResponse" } } } }, "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 api_testing.", "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/api/" }, "x-ves-proto-rpc": "ves.io.schema.api_sec.api_testing.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-discovered-response-time-ms": 153.63, "x-discovered-sample-size": 1, "x-f5xc-discovered-response-time": { "p50_ms": 153.63, "p95_ms": 307.26, "p99_ms": 460.89, "sample_count": 1, "source": "discovery", "last_measured": "2025-12-20T19:39:20.211392+00:00" } }, "x-displayname": "API Testing.", "x-ves-proto-service": "ves.io.schema.api_sec.api_testing.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{namespace}/api_testings/{name}": { "get": { "summary": "GET API testing.", "operationId": "ves.io.schema.api_sec.api_testing.API.Get", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/api_testingGetResponse" } } } }, "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/api/" }, "x-ves-proto-rpc": "ves.io.schema.api_sec.api_testing.API.Get", "tags": [ "config" ], "description": "GET api_testings.", "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 API Testing.", "description": "DELETE the specified api_testing.", "operationId": "ves.io.schema.api_sec.api_testing.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/api_testingDeleteRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/api/" }, "x-ves-proto-rpc": "ves.io.schema.api_sec.api_testing.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": [ "api-testing", "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": [ "api-testing", "contained_resources" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 500, "p95_ms": 1500, "p99_ms": 4000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "API Testing.", "x-ves-proto-service": "ves.io.schema.api_sec.api_testing.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{metadata.namespace}/app_api_groups": { "post": { "summary": "Create API Group.", "description": "Create app_api_group creates a new object in the storage backend for metadata.namespace.", "operationId": "ves.io.schema.views.app_api_group.API.Create", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/app_api_groupCreateResponse" } } } }, "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_api_groupCreateRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/api/" }, "x-ves-proto-rpc": "ves.io.schema.views.app_api_group.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": [ "App-api-group resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "app-api-group" ] }, "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-api-group" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "App API Group.", "x-ves-proto-service": "ves.io.schema.views.app_api_group.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{metadata.namespace}/app_api_groups/{metadata.name}": { "put": { "summary": "Replace API Group.", "description": "Replace app_api_group replaces an existing object in the storage backend for metadata.namespace.", "operationId": "ves.io.schema.views.app_api_group.API.Replace", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/app_api_groupReplaceResponse" } } } }, "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_api_groupReplaceRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/api/" }, "x-ves-proto-rpc": "ves.io.schema.views.app_api_group.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": [ "app-api-group" ] }, "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-api-group" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 800, "p95_ms": 2500, "p99_ms": 6000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "App API Group.", "x-ves-proto-service": "ves.io.schema.views.app_api_group.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{namespace}/app_api_groups": { "get": { "summary": "List App API Group.", "description": "List the set of app_api_group in a namespace.", "operationId": "ves.io.schema.views.app_api_group.API.List", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/app_api_groupListResponse" } } } }, "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_api_group.", "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/api/" }, "x-ves-proto-rpc": "ves.io.schema.views.app_api_group.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-discovered-response-time-ms": 152.02, "x-discovered-sample-size": 1, "x-f5xc-discovered-response-time": { "p50_ms": 152.02, "p95_ms": 304.04, "p99_ms": 456.06, "sample_count": 1, "source": "discovery", "last_measured": "2025-12-20T19:39:20.211392+00:00" } }, "x-displayname": "App API Group.", "x-ves-proto-service": "ves.io.schema.views.app_api_group.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/ml/data/namespaces/{namespace}/app_api_groups/evaluate": { "post": { "summary": "Evaluate API Group.", "description": "Evaluate API Group Builder against all API endpoints associated with the referenced object and return the resulting API Group.\nFor example, if the referenced object is an HTTP LB then all discovered and imported endpoints are associated with it.", "operationId": "ves.io.schema.views.app_api_group.CustomAPI.EvaluateApiGroup", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/app_api_groupEvaluateApiGroupRsp" } } } }, "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 API Group for the 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_api_groupEvaluateApiGroupReq" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/api/" }, "x-ves-proto-rpc": "ves.io.schema.views.app_api_group.CustomAPI.EvaluateApiGroup", "tags": [ "ml" ], "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": [ "Evaluate resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "evaluate" ] }, "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": [ "evaluate" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "App API Group.", "x-ves-proto-service": "ves.io.schema.views.app_api_group.CustomAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/ml/data/namespaces/{namespace}/app_api_groups/stats": { "post": { "summary": "Evaluate API Group.", "description": "Check if there are any changes happened to the API Groups, and return number of API Endpoints updated for each API Group.", "operationId": "ves.io.schema.views.app_api_group.CustomAPI.GetApiGroupsStats", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/app_api_groupGetApiGroupsStatsRsp" } } } }, "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 API Group for the 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_api_groupGetApiGroupsStatsReq" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/api/" }, "x-ves-proto-rpc": "ves.io.schema.views.app_api_group.CustomAPI.GetApiGroupsStats", "tags": [ "ml" ], "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": [ "Stat resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "stat" ] }, "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": [ "stat" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "App API Group.", "x-ves-proto-service": "ves.io.schema.views.app_api_group.CustomAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/config/namespaces/{namespace}/app_api_groups/{name}": { "get": { "summary": "GET API Group.", "description": "GET app_api_group reads a given object from storage backend for metadata.namespace.", "operationId": "ves.io.schema.views.app_api_group.API.Get", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/app_api_groupGetResponse" } } } }, "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/api/" }, "x-ves-proto-rpc": "ves.io.schema.views.app_api_group.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 App API Group.", "description": "DELETE the specified app_api_group.", "operationId": "ves.io.schema.views.app_api_group.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_api_groupDeleteRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/api/" }, "x-ves-proto-rpc": "ves.io.schema.views.app_api_group.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": [ "app-api-group", "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-api-group", "contained_resources" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 500, "p95_ms": 1500, "p99_ms": 4000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "App API Group.", "x-ves-proto-service": "ves.io.schema.views.app_api_group.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{namespace}/api_sec/rule_suggestion/api_endpoint_protection": { "post": { "summary": "Suggest API endpoint protection rule.", "description": "Suggest API endpoint protection rule for a given path.", "operationId": "ves.io.schema.api_sec.rule_suggestion.RuleSuggestionAPI.GetSuggestedAPIEndpointProtectionRule", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/rule_suggestionGetSuggestedAPIEndpointProtectionRuleRsp" } } } }, "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 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/rule_suggestionGetSuggestedAPIEndpointProtectionRuleReq" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/api/" }, "x-ves-proto-rpc": "ves.io.schema.api_sec.rule_suggestion.RuleSuggestionAPI.GetSuggestedAPIEndpointProtectionRule", "tags": [ "config" ], "x-f5xc-operation-metadata": { "purpose": "API endpoint for traffic management", "required_fields": [ "metadata.name", "metadata.namespace", "path.namespace" ], "optional_fields": [], "field_docs": {}, "conditions": { "prerequisites": [ "Active namespace", "Policy parameters defined" ], "postconditions": [ "Api-endpoint-protection resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "api-endpoint-protection" ] }, "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": [ "api-endpoint-protection" ] }, "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.api_sec.rule_suggestion.RuleSuggestionAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/config/namespaces/{namespace}/api_sec/rule_suggestion/data_exposure": { "post": { "summary": "Suggest sensitive data rule.", "description": "Suggest sensitive data rule for a given path.", "operationId": "ves.io.schema.api_sec.rule_suggestion.RuleSuggestionAPI.GetSuggestedSensitiveDataRule", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/rule_suggestionGetSuggestedSensitiveDataRuleRsp" } } } }, "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 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/rule_suggestionGetSuggestedSensitiveDataRuleReq" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/api/" }, "x-ves-proto-rpc": "ves.io.schema.api_sec.rule_suggestion.RuleSuggestionAPI.GetSuggestedSensitiveDataRule", "tags": [ "config" ], "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": [ "Data-exposure resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "data-exposure" ] }, "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": [ "data-exposure" ] }, "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.api_sec.rule_suggestion.RuleSuggestionAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/config/namespaces/{namespace}/api_sec/rule_suggestion/oas_validation": { "post": { "summary": "Suggest Open API specification validation rule.", "description": "Suggest Open API specification validation rule for a given path.", "operationId": "ves.io.schema.api_sec.rule_suggestion.RuleSuggestionAPI.GetSuggestedOasValidationRule", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/rule_suggestionGetSuggestedOasValidationRuleRsp" } } } }, "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 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/rule_suggestionGetSuggestedOasValidationRuleReq" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/api/" }, "x-ves-proto-rpc": "ves.io.schema.api_sec.rule_suggestion.RuleSuggestionAPI.GetSuggestedOasValidationRule", "tags": [ "config" ], "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": [ "Oas-validation resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "oas-validation" ] }, "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": [ "oas-validation" ] }, "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.api_sec.rule_suggestion.RuleSuggestionAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/config/namespaces/{namespace}/api_sec/rule_suggestion/rate_limit": { "post": { "summary": "Suggest rate limit rule.", "description": "Suggest rate limit rule for a given path.", "operationId": "ves.io.schema.api_sec.rule_suggestion.RuleSuggestionAPI.GetSuggestedRateLimitRule", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/rule_suggestionGetSuggestedRateLimitRuleRsp" } } } }, "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 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/rule_suggestionGetSuggestedRateLimitRuleReq" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/api/" }, "x-ves-proto-rpc": "ves.io.schema.api_sec.rule_suggestion.RuleSuggestionAPI.GetSuggestedRateLimitRule", "tags": [ "config" ], "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": [ "Rate-limit resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "rate-limit" ] }, "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": [ "rate-limit" ] }, "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.api_sec.rule_suggestion.RuleSuggestionAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/config/namespaces/{metadata.namespace}/code_base_integrations": { "post": { "summary": "CREATE Code Base Integration.", "description": "CREATE integration details.", "operationId": "ves.io.schema.api_sec.code_base_integration.API.Create", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/code_base_integrationCreateResponse" } } } }, "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/code_base_integrationCreateRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/api/" }, "x-ves-proto-rpc": "ves.io.schema.api_sec.code_base_integration.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": [ "Code-base-integration resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "code-base-integration" ] }, "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": [ "code-base-integration" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "Code Base Integration.", "x-ves-proto-service": "ves.io.schema.api_sec.code_base_integration.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{metadata.namespace}/code_base_integrations/{metadata.name}": { "put": { "summary": "Replace Code Base Integration.", "description": "Replace integration details.", "operationId": "ves.io.schema.api_sec.code_base_integration.API.Replace", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/code_base_integrationReplaceResponse" } } } }, "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/code_base_integrationReplaceRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/api/" }, "x-ves-proto-rpc": "ves.io.schema.api_sec.code_base_integration.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": [ "code-base-integration" ] }, "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": [ "code-base-integration" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 800, "p95_ms": 2500, "p99_ms": 6000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "Code Base Integration.", "x-ves-proto-service": "ves.io.schema.api_sec.code_base_integration.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{namespace}/code_base_integrations": { "get": { "summary": "List Code Base Integration.", "description": "List the set of code_base_integration in a namespace.", "operationId": "ves.io.schema.api_sec.code_base_integration.API.List", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/code_base_integrationListResponse" } } } }, "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 code_base_integration.", "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/api/" }, "x-ves-proto-rpc": "ves.io.schema.api_sec.code_base_integration.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-discovered-response-time-ms": 154.03, "x-discovered-sample-size": 1, "x-f5xc-discovered-response-time": { "p50_ms": 154.03, "p95_ms": 308.06, "p99_ms": 462.09, "sample_count": 1, "source": "discovery", "last_measured": "2025-12-20T19:39:20.211392+00:00" } }, "x-displayname": "Code Base Integration.", "x-ves-proto-service": "ves.io.schema.api_sec.code_base_integration.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{namespace}/code_base_integrations/{name}": { "get": { "summary": "GET Code Base Integration.", "description": "GET code base integration details.", "operationId": "ves.io.schema.api_sec.code_base_integration.API.Get", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/code_base_integrationGetResponse" } } } }, "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/api/" }, "x-ves-proto-rpc": "ves.io.schema.api_sec.code_base_integration.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 Code Base Integration.", "description": "DELETE the specified code_base_integration.", "operationId": "ves.io.schema.api_sec.code_base_integration.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/code_base_integrationDeleteRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/api/" }, "x-ves-proto-rpc": "ves.io.schema.api_sec.code_base_integration.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": [ "code-base-integration", "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": [ "code-base-integration", "contained_resources" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 500, "p95_ms": 1500, "p99_ms": 4000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "Code Base Integration.", "x-ves-proto-service": "ves.io.schema.api_sec.code_base_integration.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{metadata.namespace}/discoverys": { "post": { "summary": "Create Discovery.", "description": "API to create discovery object for a site or virtual site in system namespace.", "operationId": "ves.io.schema.discovery.API.Create", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/discoveryCreateResponse" } } } }, "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/discoveryCreateRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/api/" }, "x-ves-proto-rpc": "ves.io.schema.discovery.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": [ "Discovery resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "discovery" ] }, "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": [ "discovery" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "Discovery", "x-ves-proto-service": "ves.io.schema.discovery.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{metadata.namespace}/discoverys/{metadata.name}": { "put": { "summary": "Replace Discovery.", "description": "API to replace discovery object for a site or virtual site in system namespace.", "operationId": "ves.io.schema.discovery.API.Replace", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/discoveryReplaceResponse" } } } }, "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/discoveryReplaceRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/api/" }, "x-ves-proto-rpc": "ves.io.schema.discovery.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": [ "discovery" ] }, "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": [ "discovery" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 800, "p95_ms": 2500, "p99_ms": 6000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "Discovery", "x-ves-proto-service": "ves.io.schema.discovery.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{namespace}/discovery/{name}/download_certificates": { "post": { "summary": "Download Certificates.", "description": "Download the certificates files for the Log Collerctor\nIn order to establish connection from the third party application server to the\nLog Collector the user should download a zip file with the certificates files:\n- client.crt\n- client.key\n- server_ca.crt.", "operationId": "ves.io.schema.discovery.CustomAPI.DownloadCertificates", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/discoveryDownloadCertificatesResponse" } } } }, "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 of the discovered service for current request.", "in": "path", "required": true, "x-displayname": "Namespace", "schema": { "type": "string" }, "x-f5xc-example": "shared" }, { "name": "name", "description": "Discovery Name\nx-required\nIdentifies the discovery name.", "in": "path", "required": true, "x-displayname": "Discovery Name.", "schema": { "type": "string" }, "x-f5xc-example": "ds1" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/discoveryDownloadCertificatesRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/api/" }, "x-ves-proto-rpc": "ves.io.schema.discovery.CustomAPI.DownloadCertificates", "tags": [ "config" ], "x-f5xc-operation-metadata": { "purpose": "TLS/SSL certificate management", "required_fields": [ "metadata.name", "metadata.namespace", "path.name", "path.namespace" ], "optional_fields": [], "field_docs": {}, "conditions": { "prerequisites": [ "Active namespace", "Certificate file or data" ], "postconditions": [ "Download-certificate resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "download-certificate" ] }, "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": [ "download-certificate" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "Discovery", "x-ves-proto-service": "ves.io.schema.discovery.CustomAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/config/namespaces/{namespace}/discoverys": { "get": { "summary": "List Discovery.", "description": "List the set of discovery in a namespace.", "operationId": "ves.io.schema.discovery.API.List", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/discoveryListResponse" } } } }, "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 discovery.", "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/api/" }, "x-ves-proto-rpc": "ves.io.schema.discovery.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": "Discovery", "x-ves-proto-service": "ves.io.schema.discovery.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{namespace}/discoverys/{name}": { "get": { "summary": "GET Discovery.", "description": "API to GET discovery object for a site or virtual site in system namespace.", "operationId": "ves.io.schema.discovery.API.Get", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/discoveryGetResponse" } } } }, "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/api/" }, "x-ves-proto-rpc": "ves.io.schema.discovery.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 Discovery.", "description": "DELETE the specified discovery.", "operationId": "ves.io.schema.discovery.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/discoveryDeleteRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/api/" }, "x-ves-proto-rpc": "ves.io.schema.discovery.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": [ "discovery", "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": [ "discovery", "contained_resources" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 500, "p95_ms": 1500, "p99_ms": 4000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "Discovery", "x-ves-proto-service": "ves.io.schema.discovery.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" } }, "components": { "securitySchemes": { "ApiToken": { "type": "apiKey", "name": "Authorization", "in": "header", "description": "API Token authentication. Format: 'APIToken '" }, "apiKeyAuth": { "type": "apiKey", "in": "header", "name": "Authorization", "description": "F5 XC API Token (format: APIToken )" } }, "schemas": { "api_crawlerApiCrawlingStatus": { "type": "object", "description": "Contains status information for API crawling configuration.", "title": "API Crawling Status Type", "x-displayname": "API Crawling Status.", "x-ves-proto-message": "ves.io.schema.api_sec.api_crawler.ApiCrawlingStatus", "properties": { "last_updated": { "type": "string", "description": "Timestamp of the most recent change for the API Crawling configuration.", "title": "last_updated", "format": "date-time", "x-displayname": "Last Updated.", "x-f5xc-description-short": "Timestamp of the most recent change for the API Crawling configuration.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "format": "date-time", "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Contains status information for API crawling configuration.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for api_crawlerApiCrawlingStatus", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_crawlerApiCrawlingStatus\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "api_crawlerCreateRequest": { "type": "object", "description": "This is the input message of the 'Create' RPC.", "title": "CreateRequest is used to create an instance of api_crawler", "x-displayname": "Create Request.", "x-ves-proto-message": "ves.io.schema.api_sec.api_crawler.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/api_crawlerCreateSpecType" } ], "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 api_crawlerCreateRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_crawlerCreateRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "api_crawlerCreateResponse": { "type": "object", "x-ves-proto-message": "ves.io.schema.api_sec.api_crawler.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/api_crawlerGetSpecType" } ], "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 api_crawlerCreateResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_crawlerCreateResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "api_crawlerCreateSpecType": { "type": "object", "title": "Create API Crawler", "x-displayname": "Create API Crawler.", "x-ves-proto-message": "ves.io.schema.api_sec.api_crawler.CreateSpecType", "properties": { "domains": { "type": "array", "description": "API Crawler Configuration.", "maxItems": 32, "items": { "$ref": "#/components/schemas/api_crawlerDomainConfiguration" }, "x-displayname": "API Crawler.", "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-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 32, "minItems": 1, "uniqueItems": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+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 api_crawlerCreateSpecType", "required_fields": [ "domains" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_crawlerCreateSpecType\nmetadata:\n name: example\n namespace: default\nspec:\n domains: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"domains\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-field-examples": { "spec.domains": "value" }, "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "api_crawlerDeleteRequest": { "type": "object", "description": "This is the input message of the 'DELETE' RPC.", "title": "DeleteRequest is used to delete a api_crawler", "x-displayname": "DELETE Request.", "x-ves-proto-message": "ves.io.schema.api_sec.api_crawler.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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for api_crawlerDeleteRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_crawlerDeleteRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "api_crawlerDomainConfiguration": { "type": "object", "description": "The Domain configuration message.", "title": "Configured API Domains", "x-displayname": "Domain Configuration.", "x-ves-proto-message": "ves.io.schema.api_sec.api_crawler.DomainConfiguration", "properties": { "domain": { "type": "string", "description": "Select the domain to execute API Crawling with given credentials.", "title": "Domain", "maxLength": 256, "x-displayname": "Domains to Crawl.", "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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "simple_login": { "allOf": [ { "$ref": "#/components/schemas/api_crawlerSimpleLogin" } ], "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 api_crawlerDomainConfiguration", "required_fields": [ "domain" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_crawlerDomainConfiguration\nmetadata:\n name: example\n namespace: default\nspec:\n domain: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"domain\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "api_crawlerGetResponse": { "type": "object", "description": "This is the output message of the 'GET' RPC.", "title": "GetResponse is the shape of a read api_crawler", "x-displayname": "GET Response.", "x-ves-proto-message": "ves.io.schema.api_sec.api_crawler.GetResponse", "properties": { "create_form": { "allOf": [ { "$ref": "#/components/schemas/api_crawlerCreateRequest" } ], "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/api_crawlerReplaceRequest" } ], "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/api_crawlerGetSpecType" } ], "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/api_crawlerStatusObject" }, "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-08-20T09:12:47+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 api_crawlerGetResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_crawlerGetResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "api_crawlerGetSpecType": { "type": "object", "title": "Get API crawler", "x-displayname": "GET API crawler.", "x-ves-proto-message": "ves.io.schema.api_sec.api_crawler.GetSpecType", "properties": { "domains": { "type": "array", "description": "API Crawler Configuration.", "maxItems": 32, "items": { "$ref": "#/components/schemas/api_crawlerDomainConfiguration" }, "x-displayname": "API Crawler.", "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-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 32, "minItems": 1, "uniqueItems": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+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 api_crawlerGetSpecType", "required_fields": [ "domains" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_crawlerGetSpecType\nmetadata:\n name: example\n namespace: default\nspec:\n domains: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"domains\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "api_crawlerListResponse": { "type": "object", "description": "This is the output message of 'List' RPC.", "title": "ListResponse is the collection of api_crawler", "x-displayname": "List Response.", "x-ves-proto-message": "ves.io.schema.api_sec.api_crawler.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/api_crawlerListResponseItem" }, "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for api_crawlerListResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_crawlerListResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "api_crawlerListResponseItem": { "type": "object", "description": "By default a summary of api_crawler 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 api_crawler", "x-displayname": "List Item", "x-ves-proto-message": "ves.io.schema.api_sec.api_crawler.ListResponseItem", "properties": { "annotations": { "type": "object", "description": "The set of annotations present on this api_crawler.", "title": "annotations", "x-displayname": "Annotations.", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "The set of annotations present on this api_crawler.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "description": { "type": "string", "description": "The description set for this api_crawler.", "title": "description", "x-displayname": "Description.", "x-f5xc-description-short": "The description set for this api_crawler.", "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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "disabled": { "type": "boolean", "description": "A value of true indicates api_crawler is administratively disabled.", "title": "disabled", "format": "boolean", "x-displayname": "Disabled", "x-f5xc-example": "True", "x-f5xc-description-short": "Value of true indicates api_crawler is administratively disabled.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "get_spec": { "allOf": [ { "$ref": "#/components/schemas/api_crawlerGetSpecType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "labels": { "type": "object", "description": "The set of labels present on this api_crawler.", "title": "labels", "x-displayname": "Labels", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "The set of labels present on this api_crawler.", "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 api_crawler.", "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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/api_crawlerStatusObject" }, "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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "uid": { "type": "string", "description": "The unique uid of this api_crawler.", "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-08-20T09:12:47+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-08-20T09:12:47+00:00" } }, "x-f5xc-description-short": "By default a summary of api_crawler 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 api_crawler 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 api_crawlerListResponseItem", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_crawlerListResponseItem\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "api_crawlerReplaceRequest": { "type": "object", "description": "This is the input message of the 'Replace' RPC.", "title": "ReplaceRequest is used to replace contents of a api_crawler", "x-displayname": "Replace Request.", "x-ves-proto-message": "ves.io.schema.api_sec.api_crawler.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/api_crawlerReplaceSpecType" } ], "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 api_crawlerReplaceRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_crawlerReplaceRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "api_crawlerReplaceResponse": { "type": "object", "x-ves-proto-message": "ves.io.schema.api_sec.api_crawler.ReplaceResponse", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for api_crawlerReplaceResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_crawlerReplaceResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "api_crawlerReplaceSpecType": { "type": "object", "title": "Replace API Crawler", "x-displayname": "Replace API crawler.", "x-ves-proto-message": "ves.io.schema.api_sec.api_crawler.ReplaceSpecType", "properties": { "domains": { "type": "array", "description": "API Crawler Configuration.", "maxItems": 32, "items": { "$ref": "#/components/schemas/api_crawlerDomainConfiguration" }, "x-displayname": "API Crawler.", "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-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 32, "minItems": 1, "uniqueItems": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+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 api_crawlerReplaceSpecType", "required_fields": [ "domains" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_crawlerReplaceSpecType\nmetadata:\n name: example\n namespace: default\nspec:\n domains: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"domains\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "api_crawlerScanInfo": { "type": "object", "description": "ScanInfo represents the status and metadata of an API scan.", "title": "Scan Information", "x-displayname": "Scan Information.", "x-ves-proto-message": "ves.io.schema.api_sec.api_crawler.ScanInfo", "properties": { "added_to_queue": { "type": "string", "description": "Timestamp when scan was added to the queue.", "title": "added_to_queue", "format": "date-time", "x-displayname": "Added To Queue.", "x-f5xc-description-short": "Timestamp when scan was added to the queue.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "format": "date-time", "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "domain": { "type": "string", "description": "The domain being scanned.", "title": "domain", "x-displayname": "Domain", "x-ves-example": "example1.com.", "x-f5xc-example": "example1.com", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "endpoint_count": { "type": "integer", "description": "The total count of unique API endpoints discovered during the crawling process.", "title": "Number of endpoints discovered", "format": "int64", "x-displayname": "Number of EndPoints.", "x-f5xc-example": "42", "x-f5xc-description-short": "The total count of unique API endpoints discovered during the crawling process.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "error": { "type": "string", "description": "Error message if the scan encountered any issues.", "title": "error", "x-displayname": "Error Message.", "x-ves-example": "Authentication failed.", "x-f5xc-example": "Authentication failed", "x-f5xc-description-short": "Error message if the scan encountered any issues.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "kafka_message_created_at": { "type": "string", "description": "Timestamp when the message was created in Kafka.", "title": "kafka_message_created_at", "format": "date-time", "x-displayname": "Kafka Message Created At.", "x-f5xc-description-short": "Timestamp when the message was created in Kafka.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "format": "date-time", "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-field-mutability": "read-only" }, "last_status_update": { "type": "string", "description": "Timestamp of the last status update.", "title": "last_status_update", "format": "date-time", "x-displayname": "Last Status Updated.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "format": "date-time", "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "status": { "allOf": [ { "$ref": "#/components/schemas/api_crawlerScanStatus" } ], "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-08-20T09:12:47+00:00" } }, "x-f5xc-description-short": "ScanInfo represents the status and metadata of an API scan.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for api_crawlerScanInfo", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_crawlerScanInfo\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "api_crawlerScanStatus": { "type": "string", "description": "Represents the current status of an API crawling scan\n\nDefault unspecified status\nScan has successfully completed\nScan is currently in progress\nScan has been initiated and is beginning execution\nScan is queued and waiting to start\nScan encountered an error.", "title": "Scan Status", "enum": [ "UNSPECIFIED", "COMPLETED", "RUNNING", "STARTED", "PENDING", "ERROR" ], "default": "UNSPECIFIED", "x-displayname": "Scan Status.", "x-ves-proto-enum": "ves.io.schema.api_sec.api_crawler.ScanStatus", "x-f5xc-description-short": "Represents the current status of an API crawling scan Default unspecified status Scan has successfully completed Scan is currently in progress...", "x-f5xc-description-medium": "Represents the current status of an API crawling scan Default unspecified status Scan has successfully completed Scan is currently in progress Scan has been initiated and is beginning execution Scan is queued and waiting to start Scan encountered an error.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for api_crawlerScanStatus", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_crawlerScanStatus\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "api_crawlerSimpleLogin": { "type": "object", "title": "Simple Login", "x-displayname": "Simple Login.", "x-ves-proto-message": "ves.io.schema.api_sec.api_crawler.SimpleLogin", "properties": { "password": { "allOf": [ { "$ref": "#/components/schemas/schemaSecretType" } ], "x-f5xc-example": "MySecureP@ssw0rd123!", "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-08-20T09:12:47+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 api_crawlerSimpleLogin", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_crawlerSimpleLogin\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "api_crawlerStatusObject": { "type": "object", "title": "Most recently observed status of object", "x-displayname": "Status Object.", "x-ves-proto-message": "ves.io.schema.api_sec.api_crawler.StatusObject", "properties": { "api_crawling_status": { "allOf": [ { "$ref": "#/components/schemas/api_crawlerApiCrawlingStatus" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "conditions": { "type": "array", "description": "Conditions reported by various component of the system.", "title": "conditions", "items": { "$ref": "#/components/schemas/schemaConditionType" }, "x-displayname": "Conditions.", "x-ves-deprecated": "Unused", "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 } }, "scans": { "type": "array", "description": "List of current scanning status for all domains configured for API Crawling.", "title": "scans_status", "items": { "$ref": "#/components/schemas/api_crawlerScanInfo" }, "x-displayname": "Scans Status.", "x-f5xc-description-short": "List of current scanning status for all domains configured for API Crawling.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for api_crawlerStatusObject", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_crawlerStatusObject\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for ioschemaObjectRefType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "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": "none" } } }, "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\": ,\n\"lastName\": \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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for protobufAny\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "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": "none" } } }, "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-08-20T09:12:47+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, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaBlindfoldSecretInfoType\nmetadata:\n name: example\n namespace: default\nspec:\n location: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"location\": \"value\"\n }\n}" }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaClearSecretInfoType\nmetadata:\n name: example\n namespace: default\nspec:\n url: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"url\": \"value\"\n }\n}" }, "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": "none" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaConditionType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "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": "none" } } }, "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_yaml": "# Minimal example for schemaErrorCode\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "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": "none" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for schemaErrorType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "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": "none" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaInitializerType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "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": "none" } } }, "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_yaml": "# Minimal example for schemaInitializersType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "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": "none" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaObjectCreateMetaType\nmetadata:\n name: example\n namespace: default\nspec:\n name: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"name\": \"value\"\n }\n}" }, "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": "none" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaObjectGetMetaType\nmetadata:\n name: example\n namespace: default\nspec:\n name: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"name\": \"value\"\n }\n}" }, "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": "none" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemaObjectReplaceMetaType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "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": "none" } } }, "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_yaml": "# Minimal example for schemaSecretType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "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" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaStatusMetaType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "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": "none" } } }, "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_yaml": "# Minimal example for schemaStatusPublishType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "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": "none" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaStatusType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "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": "none" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaSystemObjectGetMetaType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "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": "none" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaViewRefType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "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": "none" } } }, "api_definitionAPInventoryReq": { "type": "object", "description": "Request shape for various API Inventory Requests.", "title": "API Inventory Request", "x-displayname": "API Inventory Request.", "x-ves-proto-message": "ves.io.schema.views.api_definition.APInventoryReq", "properties": { "api_endpoints": { "type": "array", "description": "The list of API endpoints for the API Inventory request.", "title": "API Endpoints", "minItems": 1, "maxItems": 100, "items": { "$ref": "#/components/schemas/viewsApiOperation" }, "x-displayname": "API Endpoints.", "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 endpoints for the API Inventory request.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "minItems": 1, "maxItems": 100, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "name": { "type": "string", "description": "The name of the API Definition 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 API Definition 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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" }, "namespace": { "type": "string", "description": "The namespace of the API Definition 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 API Definition 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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" } }, "x-f5xc-description-short": "Request shape for various API Inventory Requests.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for api_definitionAPInventoryReq", "required_fields": [ "api_endpoints" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_definitionAPInventoryReq\nmetadata:\n name: example\n namespace: default\nspec:\n api_endpoints: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"api_endpoints\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": true }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "API definitions are scoped to application namespaces" }, "classification": { "category": "security", "multi_tenant_pattern": "per-tenant" } } }, "api_definitionAPInventoryResp": { "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.api_definition.APInventoryResp", "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 api_definitionAPInventoryResp", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_definitionAPInventoryResp\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": true }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "API definitions are scoped to application namespaces" }, "classification": { "category": "security", "multi_tenant_pattern": "per-tenant" } } }, "api_definitionApiGroupSummary": { "type": "object", "description": "ApiGroupSummary.", "title": "ApiGroupSummary", "x-displayname": "API Group Summary.", "x-ves-proto-message": "ves.io.schema.views.api_definition.ApiGroupSummary", "properties": { "elements": { "type": "array", "description": "List of API group elements with methods and path regex for matching requests.", "title": "elements", "items": { "$ref": "#/components/schemas/schemaapi_group_elementGlobalSpecType" }, "x-displayname": "API Group Elements.", "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 API group elements with methods and path regex for matching requests.", "x-f5xc-constraints": { "constraintType": "array", "category": "general", "minItems": 0, "maxItems": 512, "uniqueItems": false, "metadata": { "source": "inferred", "confidence": 0.7, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "name": { "type": "string", "description": "Name of API Group.", "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" }, "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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for api_definitionApiGroupSummary", "required_fields": [ "elements", "name" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_definitionApiGroupSummary\nmetadata:\n name: example\n namespace: default\nspec:\n elements: value\n name: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"elements\": \"value\",\n \"name\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": true }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "API definitions are scoped to application namespaces" }, "classification": { "category": "security", "multi_tenant_pattern": "per-tenant" } } }, "api_definitionCreateRequest": { "type": "object", "description": "This is the input message of the 'Create' RPC.", "title": "CreateRequest is used to create an instance of api_definition", "x-displayname": "Create Request.", "x-ves-proto-message": "ves.io.schema.views.api_definition.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/viewsapi_definitionCreateSpecType" } ], "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "API definition for documenting and protecting HTTP APIs", "required_fields": [ "metadata.name", "metadata.namespace" ], "mutually_exclusive_groups": [], "example_yaml": "apiVersion: v1\nkind: api_definition\nmetadata:\n name: example-api\n namespace: default\nspec: {}\n", "example_json": "{\n \"metadata\": {\n \"name\": \"example-api\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}\n" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": true }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "API definitions are scoped to application namespaces" }, "classification": { "category": "security", "multi_tenant_pattern": "per-tenant" } } }, "api_definitionCreateResponse": { "type": "object", "x-ves-proto-message": "ves.io.schema.views.api_definition.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/viewsapi_definitionGetSpecType" } ], "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 api_definitionCreateResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_definitionCreateResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": true }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "API definitions are scoped to application namespaces" }, "classification": { "category": "security", "multi_tenant_pattern": "per-tenant" } } }, "api_definitionDeleteRequest": { "type": "object", "description": "This is the input message of the 'DELETE' RPC.", "title": "DeleteRequest is used to delete a api_definition", "x-displayname": "DELETE Request.", "x-ves-proto-message": "ves.io.schema.views.api_definition.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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for api_definitionDeleteRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_definitionDeleteRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": true }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "API definitions are scoped to application namespaces" }, "classification": { "category": "security", "multi_tenant_pattern": "per-tenant" } } }, "api_definitionGetReferencingAllLoadbalancersResp": { "type": "object", "description": "Response shape for GET API Endpoints With Newly Discovered Schema.", "title": "Get API Endpoints Schema Response", "x-displayname": "GET API Endpoints Schema Response.", "x-ves-proto-message": "ves.io.schema.views.api_definition.GetReferencingAllLoadbalancersResp", "properties": { "loadbalancers": { "type": "array", "description": "Loadbalancers referencing the API Definition.", "title": "Loadbalancers", "items": { "$ref": "#/components/schemas/schemaviewsObjectRefType" }, "x-displayname": "Loadbalancers.", "x-f5xc-description-short": "Loadbalancers referencing the API Definition.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Response shape for GET API Endpoints With Newly Discovered Schema.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for api_definitionGetReferencingAllLoadbalancersResp", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_definitionGetReferencingAllLoadbalancersResp\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": true }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "API definitions are scoped to application namespaces" }, "classification": { "category": "security", "multi_tenant_pattern": "per-tenant" } } }, "api_definitionGetResponse": { "type": "object", "description": "This is the output message of the 'GET' RPC.", "title": "GetResponse is the shape of a read api_definition", "x-displayname": "GET Response.", "x-ves-proto-message": "ves.io.schema.views.api_definition.GetResponse", "properties": { "create_form": { "allOf": [ { "$ref": "#/components/schemas/api_definitionCreateRequest" } ], "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/api_definitionReplaceRequest" } ], "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/viewsapi_definitionGetSpecType" } ], "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/api_definitionStatusObject" }, "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-08-20T09:12:47+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 api_definitionGetResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_definitionGetResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": true }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "API definitions are scoped to application namespaces" }, "classification": { "category": "security", "multi_tenant_pattern": "per-tenant" } } }, "api_definitionListAvailableAPIDefinitionsResp": { "type": "object", "x-ves-proto-message": "ves.io.schema.views.api_definition.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 api_definitionListAvailableAPIDefinitionsResp", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_definitionListAvailableAPIDefinitionsResp\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": true }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "API definitions are scoped to application namespaces" }, "classification": { "category": "security", "multi_tenant_pattern": "per-tenant" } } }, "api_definitionListResponse": { "type": "object", "description": "This is the output message of 'List' RPC.", "title": "ListResponse is the collection of api_definition", "x-displayname": "List Response.", "x-ves-proto-message": "ves.io.schema.views.api_definition.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/api_definitionListResponseItem" }, "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for api_definitionListResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_definitionListResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": true }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "API definitions are scoped to application namespaces" }, "classification": { "category": "security", "multi_tenant_pattern": "per-tenant" } } }, "api_definitionListResponseItem": { "type": "object", "description": "By default a summary of api_definition 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 api_definition", "x-displayname": "List Item", "x-ves-proto-message": "ves.io.schema.views.api_definition.ListResponseItem", "properties": { "annotations": { "type": "object", "description": "The set of annotations present on this api_definition.", "title": "annotations", "x-displayname": "Annotations.", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "The set of annotations present on this api_definition.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "description": { "type": "string", "description": "The description set for this api_definition.", "title": "description", "x-displayname": "Description.", "x-f5xc-description-short": "The description set for this api_definition.", "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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "disabled": { "type": "boolean", "description": "A value of true indicates api_definition is administratively disabled.", "title": "disabled", "format": "boolean", "x-displayname": "Disabled", "x-f5xc-example": "True", "x-f5xc-description-short": "Value of true indicates api_definition is administratively disabled.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "get_spec": { "allOf": [ { "$ref": "#/components/schemas/viewsapi_definitionGetSpecType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "labels": { "type": "object", "description": "The set of labels present on this api_definition.", "title": "labels", "x-displayname": "Labels", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "The set of labels present on this api_definition.", "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 api_definition.", "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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/api_definitionStatusObject" }, "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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "uid": { "type": "string", "description": "The unique uid of this api_definition.", "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-08-20T09:12:47+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-08-20T09:12:47+00:00" } }, "x-f5xc-description-short": "By default a summary of api_definition 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 api_definition 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 api_definitionListResponseItem", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_definitionListResponseItem\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": true }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "API definitions are scoped to application namespaces" }, "classification": { "category": "security", "multi_tenant_pattern": "per-tenant" } } }, "api_definitionReplaceRequest": { "type": "object", "description": "This is the input message of the 'Replace' RPC.", "title": "ReplaceRequest is used to replace contents of a api_definition", "x-displayname": "Replace Request.", "x-ves-proto-message": "ves.io.schema.views.api_definition.ReplaceRequest", "properties": { "metadata": { "allOf": [ { "$ref": "#/components/schemas/schemaObjectReplaceMetaType" } ], "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "spec": { "allOf": [ { "$ref": "#/components/schemas/viewsapi_definitionReplaceSpecType" } ], "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": "API definition for documenting and protecting HTTP APIs", "required_fields": [ "metadata.name", "metadata.namespace" ], "mutually_exclusive_groups": [], "example_yaml": "apiVersion: v1\nkind: api_definition\nmetadata:\n name: example-api\n namespace: default\nspec: {}\n", "example_json": "{\n \"metadata\": {\n \"name\": \"example-api\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}\n" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": true }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "API definitions are scoped to application namespaces" }, "classification": { "category": "security", "multi_tenant_pattern": "per-tenant" } } }, "api_definitionReplaceResponse": { "type": "object", "x-ves-proto-message": "ves.io.schema.views.api_definition.ReplaceResponse", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for api_definitionReplaceResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_definitionReplaceResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": true }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "API definitions are scoped to application namespaces" }, "classification": { "category": "security", "multi_tenant_pattern": "per-tenant" } } }, "api_definitionStatusObject": { "type": "object", "title": "Most recently observed status of object", "x-displayname": "Status Object.", "x-ves-proto-message": "ves.io.schema.views.api_definition.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-minimum-configuration": { "description": "Minimum configuration for api_definitionStatusObject", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_definitionStatusObject\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": true }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "API definitions are scoped to application namespaces" }, "classification": { "category": "security", "multi_tenant_pattern": "per-tenant" } } }, "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_yaml": "# Minimal example for ioschemaEmpty\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "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": "none" } } }, "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_yaml": "# Minimal example for schemaHttpMethod\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "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": "none" } } }, "schemaapi_group_elementGlobalSpecType": { "type": "object", "description": "Shape of api_group_element in the storage backend.", "title": "GlobalSpecType", "x-displayname": "Specification.", "x-ves-proto-message": "ves.io.schema.api_group_element.GlobalSpecType", "properties": { "methods": { "type": "array", "description": "List of method values to match the input request API method against.\nThe match is considered to succeed if the input request API method is a member of the list.", "title": "methods", "minItems": 1, "items": { "$ref": "#/components/schemas/schemaHttpMethod" }, "x-displayname": "HTTP Methods.", "x-ves-example": "['PUT', 'POST', 'DELETE']", "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", "ves.io.schema.rules.repeated.min_items": "1", "ves.io.schema.rules.repeated.unique": "true" }, "x-f5xc-example": "['PUT', 'POST', 'DELETE']", "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", "ves.io.schema.rules.repeated.min_items": "1", "ves.io.schema.rules.repeated.unique": "true" }, "x-f5xc-description-short": "List of method values to match the input request API method against.", "x-f5xc-description-medium": "List of method values to match the input request API method against. The match is considered to succeed if the input request API method is a member of the list.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "minItems": 1, "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "path_regex": { "type": "string", "description": "Regular expression to match the input request API path against.\nThe match is considered to succeed if the input request API path matches the specified path regex.", "title": "path regex", "minLength": 1, "maxLength": 1024, "x-displayname": "Path Regex.", "x-ves-example": "/API/config/configconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfig.*/path[123]/$.", "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.regex": "true" }, "x-f5xc-example": "/api/config/configconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfig.*/path[123]/$", "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.regex": "true" }, "x-f5xc-description-short": "Regular expression to match the input request API path against.", "x-f5xc-description-medium": "Regular expression to match the input request API path against. The match is considered to succeed if the input request API path matches the specified path regex.", "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } } }, "x-f5xc-description-short": "Shape of api_group_element in the storage backend.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for schemaapi_group_elementGlobalSpecType", "required_fields": [ "methods", "path_regex" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemaapi_group_elementGlobalSpecType\nmetadata:\n name: example\n namespace: default\nspec:\n methods: value\n path_regex: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"methods\": \"value\",\n \"path_regex\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaviewsObjectRefType\nmetadata:\n name: example\n namespace: default\nspec:\n name: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"name\": \"value\"\n }\n}" }, "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": "none" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for viewsApiOperation\nmetadata:\n name: example\n namespace: default\nspec:\n path: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"path\": \"value\"\n }\n}" }, "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": "none" } } }, "viewsapi_definitionCreateSpecType": { "type": "object", "description": "Create API Definition.", "title": "CreateSpecType", "x-displayname": "Create API Definition.", "x-ves-oneof-field-schema_updates_strategy": "[\"mixed_schema_origin\",\"strict_schema_origin\"]", "x-ves-proto-message": "ves.io.schema.views.api_definition.CreateSpecType", "properties": { "api_inventory_exclusion_list": { "type": "array", "description": "List of API Endpoints excluded from the API Inventory.", "maxItems": 5000, "items": { "$ref": "#/components/schemas/viewsApiOperation" }, "x-displayname": "API Inventory Exclusion List.", "x-ves-validation-rules": { "ves.io.schema.rules.repeated.max_items": "5000", "ves.io.schema.rules.repeated.unique": "true" }, "x-validation-rules": { "ves.io.schema.rules.repeated.max_items": "5000", "ves.io.schema.rules.repeated.unique": "true" }, "x-f5xc-description-short": "List of API Endpoints excluded from the API Inventory.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 5000, "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "default": [], "x-f5xc-server-default": true }, "api_inventory_inclusion_list": { "type": "array", "description": "List of API Endpoints included in the API Inventory.\nTypically, discovered API endpoints are added to the API Inventory using this list.", "maxItems": 5000, "items": { "$ref": "#/components/schemas/viewsApiOperation" }, "x-displayname": "API Inventory Inclusion List.", "x-ves-validation-rules": { "ves.io.schema.rules.repeated.max_items": "5000", "ves.io.schema.rules.repeated.unique": "true" }, "x-validation-rules": { "ves.io.schema.rules.repeated.max_items": "5000", "ves.io.schema.rules.repeated.unique": "true" }, "x-f5xc-description-short": "List of API Endpoints included in the API Inventory. Typically, discovered API endpoints are added to the API Inventory using this list.", "x-f5xc-description-medium": "List of API Endpoints included in the API Inventory. Typically, discovered API endpoints are added to the API Inventory using this list.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 5000, "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "default": [], "x-f5xc-server-default": true }, "mixed_schema_origin": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-description-short": "Configuration parameter for mixed schema origin.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "strict_schema_origin" ] }, "non_api_endpoints": { "type": "array", "description": "List of Non-API Endpoints.", "maxItems": 5000, "items": { "$ref": "#/components/schemas/viewsApiOperation" }, "x-displayname": "API Discovery Exclusion List.", "x-ves-validation-rules": { "ves.io.schema.rules.repeated.max_items": "5000", "ves.io.schema.rules.repeated.unique": "true" }, "x-validation-rules": { "ves.io.schema.rules.repeated.max_items": "5000", "ves.io.schema.rules.repeated.unique": "true" }, "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 5000, "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "default": [], "x-f5xc-server-default": true }, "strict_schema_origin": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-description-short": "Configuration parameter for strict schema origin.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "default": {}, "x-f5xc-server-default": true, "x-f5xc-conflicts-with": [ "mixed_schema_origin" ] }, "swagger_specs": { "type": "array", "description": "URLs of versioned OpenAPI files uploaded through Web App & API Protection > Files > Swagger Files. The 512-byte item limit is a URL-length limit; inline string:/// OpenAPI content is rejected and does not create an API-definition object.", "maxItems": 20, "items": { "type": "string", "maxLength": 512 }, "x-displayname": "File Path", "x-ves-example": "https://example.tenant.domain/API/object_store/namespaces/example-ns/stored_objects/swagger/file-name/v1-22-01-12.", "x-ves-validation-rules": { "ves.io.schema.rules.repeated.items.string.max_bytes": "512", "ves.io.schema.rules.repeated.items.string.pattern": "/api/object_store/namespaces/([a-z]([-a-z0-9]*[a-z0-9])?)/stored_objects/swagger/([a-z]([-a-z0-9]*[a-z0-9])?)/(v|V)[0-9]+(-[0-9]{2}){3}$", "ves.io.schema.rules.repeated.max_items": "20", "ves.io.schema.rules.repeated.unique": "true" }, "x-f5xc-description-short": "URLs of versioned OpenAPI files uploaded through Web App & API Protection > Files > Swagger Files.", "x-f5xc-description-medium": "URLs of versioned OpenAPI files uploaded through Web App & API Protection > Files > Swagger Files. The 512-byte item limit is a URL-length limit; inline string:/// OpenAPI content is rejected and does not create an API-definition object.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 20, "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "default": [], "x-f5xc-server-default": true } }, "x-required": true, "x-f5xc-minimum-configuration": { "description": "API definition for documenting and protecting HTTP APIs", "required_fields": [ "metadata.name", "metadata.namespace" ], "mutually_exclusive_groups": [], "example_yaml": "apiVersion: v1\nkind: api_definition\nmetadata:\n name: example-api\n namespace: default\nspec: {}\n", "example_json": "{\n \"metadata\": {\n \"name\": \"example-api\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}\n" }, "x-f5xc-cli-domain": "api", "x-f5xc-recommended-oneof-variant": { "schema_updates_strategy": "mixed_schema_origin" }, "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": true }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "API definitions are scoped to application namespaces" }, "classification": { "category": "security", "multi_tenant_pattern": "per-tenant" } } }, "viewsapi_definitionGetSpecType": { "type": "object", "description": "GET API Definition.", "title": "GetSpecType", "x-displayname": "GET API Definition.", "x-ves-oneof-field-schema_updates_strategy": "[\"mixed_schema_origin\",\"strict_schema_origin\"]", "x-ves-proto-message": "ves.io.schema.views.api_definition.GetSpecType", "properties": { "api_groups": { "type": "array", "description": "List of api_groups belonging to this api_definition.", "items": { "$ref": "#/components/schemas/api_definitionApiGroupSummary" }, "x-displayname": "API Groups.", "x-f5xc-example": "[\"item1\", \"item2\", \"item3\"]", "x-f5xc-description-short": "List of api_groups belonging to this api_definition.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "api_inventory_exclusion_list": { "type": "array", "description": "List of API Endpoints excluded from the API Inventory.", "maxItems": 5000, "items": { "$ref": "#/components/schemas/viewsApiOperation" }, "x-displayname": "API Inventory Exclusion List.", "x-ves-validation-rules": { "ves.io.schema.rules.repeated.max_items": "5000", "ves.io.schema.rules.repeated.unique": "true" }, "x-validation-rules": { "ves.io.schema.rules.repeated.max_items": "5000", "ves.io.schema.rules.repeated.unique": "true" }, "x-f5xc-description-short": "List of API Endpoints excluded from the API Inventory.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 5000, "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "default": [], "x-f5xc-server-default": true }, "api_inventory_inclusion_list": { "type": "array", "description": "List of API Endpoints included in the API Inventory.\nTypically, discovered API endpoints are added to the API Inventory using this list.", "maxItems": 5000, "items": { "$ref": "#/components/schemas/viewsApiOperation" }, "x-displayname": "API Inventory Inclusion List.", "x-ves-validation-rules": { "ves.io.schema.rules.repeated.max_items": "5000", "ves.io.schema.rules.repeated.unique": "true" }, "x-validation-rules": { "ves.io.schema.rules.repeated.max_items": "5000", "ves.io.schema.rules.repeated.unique": "true" }, "x-f5xc-description-short": "List of API Endpoints included in the API Inventory. Typically, discovered API endpoints are added to the API Inventory using this list.", "x-f5xc-description-medium": "List of API Endpoints included in the API Inventory. Typically, discovered API endpoints are added to the API Inventory using this list.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 5000, "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "default": [], "x-f5xc-server-default": true }, "mixed_schema_origin": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-description-short": "Configuration parameter for mixed schema origin.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "strict_schema_origin" ] }, "non_api_endpoints": { "type": "array", "description": "List of Non-API Endpoints.", "maxItems": 5000, "items": { "$ref": "#/components/schemas/viewsApiOperation" }, "x-displayname": "API Discovery Exclusion List.", "x-ves-validation-rules": { "ves.io.schema.rules.repeated.max_items": "5000", "ves.io.schema.rules.repeated.unique": "true" }, "x-validation-rules": { "ves.io.schema.rules.repeated.max_items": "5000", "ves.io.schema.rules.repeated.unique": "true" }, "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 5000, "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "default": [], "x-f5xc-server-default": true }, "strict_schema_origin": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-description-short": "Configuration parameter for strict schema origin.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "default": {}, "x-f5xc-server-default": true, "x-f5xc-conflicts-with": [ "mixed_schema_origin" ] }, "swagger_specs": { "type": "array", "description": "URLs of versioned OpenAPI files uploaded through Web App & API Protection > Files > Swagger Files. The 512-byte item limit is a URL-length limit; inline string:/// OpenAPI content is rejected and does not create an API-definition object.", "maxItems": 20, "items": { "type": "string", "maxLength": 512 }, "x-displayname": "File Path", "x-ves-example": "https://example.tenant.domain/API/object_store/namespaces/example-ns/stored_objects/swagger/file-name/v1-22-01-12.", "x-ves-validation-rules": { "ves.io.schema.rules.repeated.items.string.max_bytes": "512", "ves.io.schema.rules.repeated.items.string.pattern": "/api/object_store/namespaces/([a-z]([-a-z0-9]*[a-z0-9])?)/stored_objects/swagger/([a-z]([-a-z0-9]*[a-z0-9])?)/(v|V)[0-9]+(-[0-9]{2}){3}$", "ves.io.schema.rules.repeated.max_items": "20", "ves.io.schema.rules.repeated.unique": "true" }, "x-f5xc-description-short": "URLs of versioned OpenAPI files uploaded through Web App & API Protection > Files > Swagger Files.", "x-f5xc-description-medium": "URLs of versioned OpenAPI files uploaded through Web App & API Protection > Files > Swagger Files. The 512-byte item limit is a URL-length limit; inline string:/// OpenAPI content is rejected and does not create an API-definition object.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 20, "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "default": [], "x-f5xc-server-default": true } }, "x-f5xc-minimum-configuration": { "description": "API definition for documenting and protecting HTTP APIs", "required_fields": [ "metadata.name", "metadata.namespace" ], "mutually_exclusive_groups": [], "example_yaml": "apiVersion: v1\nkind: api_definition\nmetadata:\n name: example-api\n namespace: default\nspec: {}\n", "example_json": "{\n \"metadata\": {\n \"name\": \"example-api\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}\n" }, "x-f5xc-cli-domain": "api", "x-f5xc-recommended-oneof-variant": { "schema_updates_strategy": "mixed_schema_origin" }, "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": true }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "API definitions are scoped to application namespaces" }, "classification": { "category": "security", "multi_tenant_pattern": "per-tenant" } } }, "viewsapi_definitionReplaceSpecType": { "type": "object", "description": "Replace API Definition.", "title": "ReplaceSpecType", "x-displayname": "Replace API Definition.", "x-ves-oneof-field-schema_updates_strategy": "[\"mixed_schema_origin\",\"strict_schema_origin\"]", "x-ves-proto-message": "ves.io.schema.views.api_definition.ReplaceSpecType", "properties": { "api_inventory_exclusion_list": { "type": "array", "description": "List of API Endpoints excluded from the API Inventory.", "maxItems": 5000, "items": { "$ref": "#/components/schemas/viewsApiOperation" }, "x-displayname": "API Inventory Exclusion List.", "x-ves-validation-rules": { "ves.io.schema.rules.repeated.max_items": "5000", "ves.io.schema.rules.repeated.unique": "true" }, "x-validation-rules": { "ves.io.schema.rules.repeated.max_items": "5000", "ves.io.schema.rules.repeated.unique": "true" }, "x-f5xc-description-short": "List of API Endpoints excluded from the API Inventory.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 5000, "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "default": [], "x-f5xc-server-default": true }, "api_inventory_inclusion_list": { "type": "array", "description": "List of API Endpoints included in the API Inventory.\nTypically, discovered API endpoints are added to the API Inventory using this list.", "maxItems": 5000, "items": { "$ref": "#/components/schemas/viewsApiOperation" }, "x-displayname": "API Inventory Inclusion List.", "x-ves-validation-rules": { "ves.io.schema.rules.repeated.max_items": "5000", "ves.io.schema.rules.repeated.unique": "true" }, "x-validation-rules": { "ves.io.schema.rules.repeated.max_items": "5000", "ves.io.schema.rules.repeated.unique": "true" }, "x-f5xc-description-short": "List of API Endpoints included in the API Inventory. Typically, discovered API endpoints are added to the API Inventory using this list.", "x-f5xc-description-medium": "List of API Endpoints included in the API Inventory. Typically, discovered API endpoints are added to the API Inventory using this list.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 5000, "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "default": [], "x-f5xc-server-default": true }, "mixed_schema_origin": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-description-short": "Configuration parameter for mixed schema origin.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "strict_schema_origin" ] }, "non_api_endpoints": { "type": "array", "description": "List of Non-API Endpoints.", "maxItems": 5000, "items": { "$ref": "#/components/schemas/viewsApiOperation" }, "x-displayname": "API Discovery Exclusion List.", "x-ves-validation-rules": { "ves.io.schema.rules.repeated.max_items": "5000", "ves.io.schema.rules.repeated.unique": "true" }, "x-validation-rules": { "ves.io.schema.rules.repeated.max_items": "5000", "ves.io.schema.rules.repeated.unique": "true" }, "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 5000, "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "default": [], "x-f5xc-server-default": true }, "strict_schema_origin": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-description-short": "Configuration parameter for strict schema origin.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "default": {}, "x-f5xc-server-default": true, "x-f5xc-conflicts-with": [ "mixed_schema_origin" ] }, "swagger_specs": { "type": "array", "description": "URLs of versioned OpenAPI files uploaded through Web App & API Protection > Files > Swagger Files. The 512-byte item limit is a URL-length limit; inline string:/// OpenAPI content is rejected and does not create an API-definition object.", "maxItems": 20, "items": { "type": "string", "maxLength": 512 }, "x-displayname": "File Path", "x-ves-example": "https://example.tenant.domain/API/object_store/namespaces/example-ns/stored_objects/swagger/file-name/v1-22-01-12.", "x-ves-validation-rules": { "ves.io.schema.rules.repeated.items.string.max_bytes": "512", "ves.io.schema.rules.repeated.items.string.pattern": "/api/object_store/namespaces/([a-z]([-a-z0-9]*[a-z0-9])?)/stored_objects/swagger/([a-z]([-a-z0-9]*[a-z0-9])?)/(v|V)[0-9]+(-[0-9]{2}){3}$", "ves.io.schema.rules.repeated.max_items": "20", "ves.io.schema.rules.repeated.unique": "true" }, "x-f5xc-description-short": "URLs of versioned OpenAPI files uploaded through Web App & API Protection > Files > Swagger Files.", "x-f5xc-description-medium": "URLs of versioned OpenAPI files uploaded through Web App & API Protection > Files > Swagger Files. The 512-byte item limit is a URL-length limit; inline string:/// OpenAPI content is rejected and does not create an API-definition object.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 20, "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "default": [], "x-f5xc-server-default": true } }, "x-required": true, "x-f5xc-minimum-configuration": { "description": "API definition for documenting and protecting HTTP APIs", "required_fields": [ "metadata.name", "metadata.namespace" ], "mutually_exclusive_groups": [], "example_yaml": "apiVersion: v1\nkind: api_definition\nmetadata:\n name: example-api\n namespace: default\nspec: {}\n", "example_json": "{\n \"metadata\": {\n \"name\": \"example-api\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}\n" }, "x-f5xc-cli-domain": "api", "x-f5xc-recommended-oneof-variant": { "schema_updates_strategy": "mixed_schema_origin" }, "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": true }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "API definitions are scoped to application namespaces" }, "classification": { "category": "security", "multi_tenant_pattern": "per-tenant" } } }, "api_discoveryAuthParameterType": { "type": "string", "description": "Enumeration for authentication parameter types.", "title": "AuthParameterType", "enum": [ "QUERY_PARAMETER", "HEADER", "COOKIE" ], "default": "QUERY_PARAMETER", "x-displayname": "Authentication Parameter Type.", "x-ves-proto-enum": "ves.io.schema.api_sec.api_discovery.AuthParameterType", "x-f5xc-description-short": "Enumeration for authentication parameter types.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for api_discoveryAuthParameterType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_discoveryAuthParameterType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "api_discoveryCreateRequest": { "type": "object", "description": "This is the input message of the 'Create' RPC.", "title": "CreateRequest is used to create an instance of api_discovery", "x-displayname": "Create Request.", "x-ves-proto-message": "ves.io.schema.api_sec.api_discovery.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/api_discoveryCreateSpecType" } ], "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "API discovery configuration for automatic API endpoint detection", "required_fields": [ "metadata.name", "metadata.namespace", "spec.user_defined_api_discovery_policy" ], "mutually_exclusive_groups": [], "example_yaml": "apiVersion: v1\nkind: api_discovery\nmetadata:\n name: example-discovery\n namespace: default\nspec:\n user_defined_api_discovery_policy: {}\n", "example_json": "{\n \"metadata\": {\n \"name\": \"example-discovery\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"user_defined_api_discovery_policy\": {}\n }\n}\n" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "api_discoveryCreateResponse": { "type": "object", "x-ves-proto-message": "ves.io.schema.api_sec.api_discovery.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/api_discoveryGetSpecType" } ], "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 api_discoveryCreateResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_discoveryCreateResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "api_discoveryCreateSpecType": { "type": "object", "description": "Create API discovery creates a new object in the storage backend for metadata.namespace.", "title": "Create api discovery", "x-displayname": "Create API Discovery.", "x-ves-displayorder": "2,1", "x-ves-proto-message": "ves.io.schema.api_sec.api_discovery.CreateSpecType", "properties": { "custom_auth_types": { "type": "array", "description": "Select your custom authentication types to be detected in the API discovery.", "maxItems": 10, "items": { "$ref": "#/components/schemas/api_discoveryCustomAuthType" }, "x-displayname": "Custom Authentication Types.", "x-ves-validation-rules": { "ves.io.schema.rules.repeated.max_items": "10" }, "x-validation-rules": { "ves.io.schema.rules.repeated.max_items": "10" }, "x-f5xc-description-short": "Select your custom authentication types to be detected in the API discovery.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 10, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "default": [], "x-f5xc-server-default": true }, "user_defined_api_discovery_policy": { "allOf": [ { "$ref": "#/components/schemas/api_discoveryUserDefinedApiDiscoveryPolicy" } ], "x-f5xc-description-short": "Policy configuration for this feature.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Create API discovery creates a new object in the storage backend for metadata.namespace.", "x-f5xc-minimum-configuration": { "description": "API discovery configuration for automatic API endpoint detection", "required_fields": [ "metadata.name", "metadata.namespace", "spec.user_defined_api_discovery_policy" ], "mutually_exclusive_groups": [], "example_yaml": "apiVersion: v1\nkind: api_discovery\nmetadata:\n name: example-discovery\n namespace: default\nspec:\n user_defined_api_discovery_policy: {}\n", "example_json": "{\n \"metadata\": {\n \"name\": \"example-discovery\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"user_defined_api_discovery_policy\": {}\n }\n}\n" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "api_discoveryCustomAuthType": { "type": "object", "description": "Customize Authentication Type.", "title": "CustomAuthType", "x-displayname": "Custom Auth Type.", "x-ves-proto-message": "ves.io.schema.api_sec.api_discovery.CustomAuthType", "properties": { "parameter_name": { "type": "string", "description": "The authentication parameter name.", "title": "parameter name", "maxLength": 256, "x-displayname": "Parameter Name.", "x-ves-example": "X-auth-header.", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.string.max_bytes": "256", "ves.io.schema.rules.string.not_empty": "true", "ves.io.schema.rules.string.pattern": "^[!#$%&'*+\\\\-.^_`|~0-9A-Za-z]+$" }, "x-f5xc-example": "x-auth-header", "x-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.string.max_bytes": "256", "ves.io.schema.rules.string.not_empty": "true", "ves.io.schema.rules.string.pattern": "^[!#$%&'*+\\\\-.^_`|~0-9A-Za-z]+$" }, "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 256, "byteLength": { "max": 256 }, "pattern": "^[!#$%&'*+\\\\-.^_`|~0-9A-Za-z]+$", "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "parameter_type": { "allOf": [ { "$ref": "#/components/schemas/api_discoveryAuthParameterType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for api_discoveryCustomAuthType", "required_fields": [ "parameter_name" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_discoveryCustomAuthType\nmetadata:\n name: example\n namespace: default\nspec:\n parameter_name: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"parameter_name\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "api_discoveryDeleteRequest": { "type": "object", "description": "This is the input message of the 'DELETE' RPC.", "title": "DeleteRequest is used to delete a api_discovery", "x-displayname": "DELETE Request.", "x-ves-proto-message": "ves.io.schema.api_sec.api_discovery.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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for api_discoveryDeleteRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_discoveryDeleteRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "api_discoveryDiscoveryRule": { "type": "object", "description": "Defines a rule for classifying endpoints as API or Non-API.", "title": "DiscoveryRule", "x-displayname": "Discovery Rule.", "x-ves-proto-message": "ves.io.schema.api_sec.api_discovery.DiscoveryRule", "properties": { "labels": { "type": "object", "description": "Map of string keys and values that can be used to organize and categorize the rule.", "title": "labels", "x-displayname": "Labels", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "Map of string keys and values that can be used to organize and categorize the rule.", "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 } }, "rule_properties": { "allOf": [ { "$ref": "#/components/schemas/api_discoveryRuleProperties" } ], "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Defines a rule for classifying endpoints as API or Non-API.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for api_discoveryDiscoveryRule", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_discoveryDiscoveryRule\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "api_discoveryExclusionConfig": { "type": "object", "description": "Configuration for exclusion action.", "title": "ExclusionConfig", "x-displayname": "Exclusion Configuration.", "x-ves-oneof-field-action_choice": "[\"archive\",\"ignore\"]", "x-ves-proto-message": "ves.io.schema.api_sec.api_discovery.ExclusionConfig", "properties": { "archive": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "ignore" ] }, "ignore": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "archive" ] } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for api_discoveryExclusionConfig", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_discoveryExclusionConfig\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "api_discoveryGetResponse": { "type": "object", "description": "This is the output message of the 'GET' RPC.", "title": "GetResponse is the shape of a read api_discovery", "x-displayname": "GET Response.", "x-ves-proto-message": "ves.io.schema.api_sec.api_discovery.GetResponse", "properties": { "create_form": { "allOf": [ { "$ref": "#/components/schemas/api_discoveryCreateRequest" } ], "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/api_discoveryReplaceRequest" } ], "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/api_discoveryGetSpecType" } ], "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/api_discoveryStatusObject" }, "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-08-20T09:12:47+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 api_discoveryGetResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_discoveryGetResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "api_discoveryGetSpecType": { "type": "object", "description": "GET api_discovery reads a given object from storage backend for metadata.namespace.", "title": "Get api discovery", "x-displayname": "GET API Discovery.", "x-ves-displayorder": "2,1", "x-ves-proto-message": "ves.io.schema.api_sec.api_discovery.GetSpecType", "properties": { "custom_auth_types": { "type": "array", "description": "Select your custom authentication types to be detected in the API discovery.", "maxItems": 10, "items": { "$ref": "#/components/schemas/api_discoveryCustomAuthType" }, "x-displayname": "Custom Authentication Types.", "x-ves-validation-rules": { "ves.io.schema.rules.repeated.max_items": "10" }, "x-validation-rules": { "ves.io.schema.rules.repeated.max_items": "10" }, "x-f5xc-description-short": "Select your custom authentication types to be detected in the API discovery.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 10, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "default": [], "x-f5xc-server-default": true }, "user_defined_api_discovery_policy": { "allOf": [ { "$ref": "#/components/schemas/api_discoveryUserDefinedApiDiscoveryPolicy" } ], "x-f5xc-description-short": "Policy configuration for this feature.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "GET api_discovery reads a given object from storage backend for metadata.namespace.", "x-f5xc-minimum-configuration": { "description": "API discovery configuration for automatic API endpoint detection", "required_fields": [ "metadata.name", "metadata.namespace", "spec.user_defined_api_discovery_policy" ], "mutually_exclusive_groups": [], "example_yaml": "apiVersion: v1\nkind: api_discovery\nmetadata:\n name: example-discovery\n namespace: default\nspec:\n user_defined_api_discovery_policy: {}\n", "example_json": "{\n \"metadata\": {\n \"name\": \"example-discovery\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"user_defined_api_discovery_policy\": {}\n }\n}\n" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "api_discoveryHTTPHeaderCriteria": { "type": "object", "description": "Criteria for matching HTTP headers.", "title": "HTTPHeaderCriteria", "x-displayname": "HTTP Header Criteria.", "x-ves-proto-message": "ves.io.schema.api_sec.api_discovery.HTTPHeaderCriteria", "properties": { "field_name": { "type": "string", "description": "Human-readable name for the resource", "title": "field_name", "maxLength": 256, "x-displayname": "HTTP Header Name.", "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-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": "example-resource", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 256, "byteLength": { "max": 256 }, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "location": { "allOf": [ { "$ref": "#/components/schemas/api_discoveryRuleLocation" } ], "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-08-20T09:12:47+00:00" }, "match_type": { "allOf": [ { "$ref": "#/components/schemas/api_discoveryMatchType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "value": { "type": "string", "description": "Configuration parameter for value", "title": "value", "maxLength": 1024, "x-displayname": "Value", "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.not_empty": "true" }, "x-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.string.max_bytes": "1024", "ves.io.schema.rules.string.not_empty": "true" }, "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 1024, "byteLength": { "max": 1024 }, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false }, "minLength": 3, "x-reconciled-from-discovery": true, "x-reconciled-at": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for api_discoveryHTTPHeaderCriteria", "required_fields": [ "field_name", "value" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_discoveryHTTPHeaderCriteria\nmetadata:\n name: example\n namespace: default\nspec:\n field_name: value\n value: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"field_name\": \"value\",\n \"value\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "api_discoveryListResponse": { "type": "object", "description": "This is the output message of 'List' RPC.", "title": "ListResponse is the collection of api_discovery", "x-displayname": "List Response.", "x-ves-proto-message": "ves.io.schema.api_sec.api_discovery.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/api_discoveryListResponseItem" }, "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for api_discoveryListResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_discoveryListResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "api_discoveryListResponseItem": { "type": "object", "description": "By default a summary of api_discovery 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 api_discovery", "x-displayname": "List Item", "x-ves-proto-message": "ves.io.schema.api_sec.api_discovery.ListResponseItem", "properties": { "annotations": { "type": "object", "description": "The set of annotations present on this api_discovery.", "title": "annotations", "x-displayname": "Annotations.", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "The set of annotations present on this api_discovery.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "description": { "type": "string", "description": "The description set for this api_discovery.", "title": "description", "x-displayname": "Description.", "x-f5xc-description-short": "The description set for this api_discovery.", "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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "disabled": { "type": "boolean", "description": "A value of true indicates api_discovery is administratively disabled.", "title": "disabled", "format": "boolean", "x-displayname": "Disabled", "x-f5xc-example": "True", "x-f5xc-description-short": "Value of true indicates api_discovery is administratively disabled.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "get_spec": { "allOf": [ { "$ref": "#/components/schemas/api_discoveryGetSpecType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "labels": { "type": "object", "description": "The set of labels present on this api_discovery.", "title": "labels", "x-displayname": "Labels", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "The set of labels present on this api_discovery.", "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 api_discovery.", "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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/api_discoveryStatusObject" }, "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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "uid": { "type": "string", "description": "The unique uid of this api_discovery.", "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-08-20T09:12:47+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-08-20T09:12:47+00:00" } }, "x-f5xc-description-short": "By default a summary of api_discovery 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 api_discovery 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 api_discoveryListResponseItem", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_discoveryListResponseItem\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "api_discoveryMatchType": { "type": "string", "description": "Specifies how the value should be matched.", "title": "MatchType", "enum": [ "EXACT_MATCH", "SUBSTRING", "REGEX" ], "default": "EXACT_MATCH", "x-displayname": "Match Type.", "x-ves-proto-enum": "ves.io.schema.api_sec.api_discovery.MatchType", "x-f5xc-description-short": "Specifies how the value should be matched.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for api_discoveryMatchType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_discoveryMatchType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "api_discoveryReplaceRequest": { "type": "object", "description": "This is the input message of the 'Replace' RPC.", "title": "ReplaceRequest is used to replace contents of a api_discovery", "x-displayname": "Replace Request.", "x-ves-proto-message": "ves.io.schema.api_sec.api_discovery.ReplaceRequest", "properties": { "metadata": { "allOf": [ { "$ref": "#/components/schemas/schemaObjectReplaceMetaType" } ], "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "spec": { "allOf": [ { "$ref": "#/components/schemas/api_discoveryReplaceSpecType" } ], "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "resource_version": { "type": "string", "x-f5xc-concurrency-token": { "server_assigned": true, "echo_on_operations": [ "replace" ] } } }, "x-f5xc-minimum-configuration": { "description": "API discovery configuration for automatic API endpoint detection", "required_fields": [ "metadata.name", "metadata.namespace", "spec.user_defined_api_discovery_policy" ], "mutually_exclusive_groups": [], "example_yaml": "apiVersion: v1\nkind: api_discovery\nmetadata:\n name: example-discovery\n namespace: default\nspec:\n user_defined_api_discovery_policy: {}\n", "example_json": "{\n \"metadata\": {\n \"name\": \"example-discovery\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"user_defined_api_discovery_policy\": {}\n }\n}\n" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "api_discoveryReplaceResponse": { "type": "object", "x-ves-proto-message": "ves.io.schema.api_sec.api_discovery.ReplaceResponse", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for api_discoveryReplaceResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_discoveryReplaceResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "api_discoveryReplaceSpecType": { "type": "object", "description": "Replace api_discovery replaces an existing object in the storage backend for metadata.namespace.", "title": "Replace api discovery", "x-displayname": "Replace API Discovery.", "x-ves-displayorder": "2,1", "x-ves-proto-message": "ves.io.schema.api_sec.api_discovery.ReplaceSpecType", "properties": { "custom_auth_types": { "type": "array", "description": "Select your custom authentication types to be detected in the API discovery.", "maxItems": 10, "items": { "$ref": "#/components/schemas/api_discoveryCustomAuthType" }, "x-displayname": "Custom Authentication Types.", "x-ves-validation-rules": { "ves.io.schema.rules.repeated.max_items": "10" }, "x-validation-rules": { "ves.io.schema.rules.repeated.max_items": "10" }, "x-f5xc-description-short": "Select your custom authentication types to be detected in the API discovery.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 10, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "default": [], "x-f5xc-server-default": true }, "user_defined_api_discovery_policy": { "allOf": [ { "$ref": "#/components/schemas/api_discoveryUserDefinedApiDiscoveryPolicy" } ], "x-f5xc-description-short": "Policy configuration for this feature.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Replace api_discovery replaces an existing object in the storage backend for metadata.namespace.", "x-f5xc-minimum-configuration": { "description": "API discovery configuration for automatic API endpoint detection", "required_fields": [ "metadata.name", "metadata.namespace", "spec.user_defined_api_discovery_policy" ], "mutually_exclusive_groups": [], "example_yaml": "apiVersion: v1\nkind: api_discovery\nmetadata:\n name: example-discovery\n namespace: default\nspec:\n user_defined_api_discovery_policy: {}\n", "example_json": "{\n \"metadata\": {\n \"name\": \"example-discovery\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"user_defined_api_discovery_policy\": {}\n }\n}\n" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "api_discoveryRuleLocation": { "type": "string", "description": "Specifies whether the rule criteria should be evaluated against request or response\n\nApplies the rule to incoming traffic from the client.\nApplies the rule to outgoing traffic sent back to the client.", "title": "RuleLocation", "enum": [ "REQUEST", "RESPONSE" ], "default": "REQUEST", "x-displayname": "Rule Location.", "x-ves-proto-enum": "ves.io.schema.api_sec.api_discovery.RuleLocation", "x-f5xc-description-short": "Specifies whether the rule criteria should be evaluated against request or response Applies the rule to incoming traffic from the client.", "x-f5xc-description-medium": "Specifies whether the rule criteria should be evaluated against request or response Applies the rule to incoming traffic from the client. Applies the rule to outgoing traffic sent back to the client.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for api_discoveryRuleLocation", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_discoveryRuleLocation\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "api_discoveryRuleProperties": { "type": "object", "description": "Determines whether matching endpoints are included in API Discovery or excluded.", "title": "RuleProperties", "x-displayname": "Rule Properties.", "x-ves-oneof-field-criteria": "[\"http_header_criteria\",\"pattern\"]", "x-ves-oneof-field-rule_type_choice": "[\"exclusion\",\"inclusion\"]", "x-ves-proto-message": "ves.io.schema.api_sec.api_discovery.RuleProperties", "properties": { "exclusion": { "allOf": [ { "$ref": "#/components/schemas/api_discoveryExclusionConfig" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "inclusion" ] }, "http_header_criteria": { "allOf": [ { "$ref": "#/components/schemas/api_discoveryHTTPHeaderCriteria" } ], "x-f5xc-description-short": "Configuration parameter for http header criteria.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "pattern" ] }, "inclusion": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "exclusion" ] }, "pattern": { "type": "string", "description": "Exclusive with [http_header_criteria]\nPatterns are matched against the request path to identify endpoints by path structure, file extension, or version prefix. Endpoints that match this pattern are affected by the rule.", "title": "pattern", "maxLength": 512, "x-displayname": "Pattern", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.string.max_bytes": "512", "ves.io.schema.rules.string.not_empty": "true" }, "x-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.string.max_bytes": "512", "ves.io.schema.rules.string.not_empty": "true" }, "x-f5xc-description-short": "Exclusive with [http_header_criteria] Patterns are matched against the request path to identify endpoints by path structure, file extension, or...", "x-f5xc-description-medium": "Exclusive with [http_header_criteria] Patterns are matched against the request path to identify endpoints by path structure, file extension, or version prefix. Endpoints that match this pattern are affected by the rule.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 512, "byteLength": { "max": 512 }, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "http_header_criteria" ] } }, "x-f5xc-description-short": "Determines whether matching endpoints are included in API Discovery or excluded.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for api_discoveryRuleProperties", "required_fields": [ "pattern" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_discoveryRuleProperties\nmetadata:\n name: example\n namespace: default\nspec:\n pattern: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"pattern\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "api_discoveryStatusObject": { "type": "object", "description": "Most recently observed status of object.", "title": "Status of api_discovery", "x-displayname": "Status", "x-ves-proto-message": "ves.io.schema.api_sec.api_discovery.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 api_discoveryStatusObject", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_discoveryStatusObject\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "api_discoveryUserDefinedApiDiscoveryPolicy": { "type": "object", "description": "Rules are evaluated sequentially, top to bottom. If no rules are added, all traffic will be discovered or ignored based on the selection in the 'Default Behaviour of the Rule Set' field.", "title": "UserDefinedApiDiscoveryPolicy", "x-displayname": "User Defined API Discovery Policy.", "x-ves-oneof-field-default_behavior_choice": "[\"exclusive\",\"inclusive\"]", "x-ves-proto-message": "ves.io.schema.api_sec.api_discovery.UserDefinedApiDiscoveryPolicy", "properties": { "discovery_rules": { "type": "array", "description": "Define rules to include or exclude endpoints by path, domain, or header. Rules run top to bottom; unmatched endpoints follow the default action.", "title": "discovery_rules", "maxItems": 100, "items": { "$ref": "#/components/schemas/api_discoveryDiscoveryRule" }, "x-displayname": "Discovery 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": "Define rules to include or exclude endpoints by path, domain, or header. Rules run top to bottom; unmatched endpoints follow the default action.", "x-f5xc-description-medium": "Define rules to include or exclude endpoints by path, domain, or header. Rules run top to bottom; unmatched endpoints follow the default action.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 100, "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "default": [], "x-f5xc-server-default": true }, "exclusive": { "allOf": [ { "$ref": "#/components/schemas/api_discoveryExclusionConfig" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "inclusive" ] }, "inclusive": { "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": [ "exclusive" ] } }, "x-f5xc-description-short": "Rules are evaluated sequentially, top to bottom.", "x-f5xc-description-medium": "Rules are evaluated sequentially, top to bottom. If no rules are added, all traffic will be discovered or ignored based on the selection in the 'Default Behaviour of the Rule Set' field.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for api_discoveryUserDefinedApiDiscoveryPolicy", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_discoveryUserDefinedApiDiscoveryPolicy\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaMessageMetaType\nmetadata:\n name: example\n namespace: default\nspec:\n name: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"name\": \"value\"\n }\n}" }, "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": "none" } } }, "api_groupGetResponse": { "type": "object", "description": "This is the output message of the 'GET' RPC.", "title": "GetResponse is the shape of a read api_group", "x-displayname": "GET Response.", "x-ves-proto-message": "ves.io.schema.api_group.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/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 } }, "spec": { "allOf": [ { "$ref": "#/components/schemas/schemaapi_groupGetSpecType" } ], "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/api_groupStatusObject" }, "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-08-20T09:12:47+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 api_groupGetResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_groupGetResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "api_groupListResponse": { "type": "object", "description": "This is the output message of 'List' RPC.", "title": "ListResponse is the collection of api_group", "x-displayname": "List Response.", "x-ves-proto-message": "ves.io.schema.api_group.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/api_groupListResponseItem" }, "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for api_groupListResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_groupListResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "api_groupListResponseItem": { "type": "object", "description": "By default a summary of api_group 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 api_group", "x-displayname": "List Item", "x-ves-proto-message": "ves.io.schema.api_group.ListResponseItem", "properties": { "annotations": { "type": "object", "description": "The set of annotations present on this api_group.", "title": "annotations", "x-displayname": "Annotations.", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "The set of annotations present on this api_group.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "description": { "type": "string", "description": "The description set for this api_group.", "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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "disabled": { "type": "boolean", "description": "A value of true indicates api_group is administratively disabled.", "title": "disabled", "format": "boolean", "x-displayname": "Disabled", "x-f5xc-example": "True", "x-f5xc-description-short": "Value of true indicates api_group is administratively disabled.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "get_spec": { "nullable": true, "allOf": [ { "$ref": "#/components/schemas/schemaapi_groupGetSpecType" } ], "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 api_group.", "title": "labels", "x-displayname": "Labels", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "The set of labels present on this api_group.", "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 api_group.", "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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/api_groupStatusObject" }, "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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "uid": { "type": "string", "description": "The unique uid of this api_group.", "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-08-20T09:12:47+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-08-20T09:12:47+00:00" } }, "x-f5xc-description-short": "By default a summary of api_group 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 api_group 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 api_groupListResponseItem", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_groupListResponseItem\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "api_groupStatusObject": { "type": "object", "description": "Most recently observed status of object.", "title": "Status of API group", "x-displayname": "Status", "x-ves-proto-message": "ves.io.schema.api_group.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/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 api_groupStatusObject", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_groupStatusObject\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaObjectRefType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "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": "none" } } }, "schemaapi_groupGetSpecType": { "type": "object", "description": "GET api_group reads a given object from storage backend for metadata.namespace.", "title": "Get api group", "x-displayname": "GET API Group.", "x-ves-proto-message": "ves.io.schema.api_group.GetSpecType", "properties": { "element_specs": { "type": "array", "description": "Desired state specification", "maxItems": 5000, "items": { "$ref": "#/components/schemas/schemaapi_group_elementGlobalSpecType" }, "x-ves-validation-rules": { "ves.io.schema.rules.repeated.max_items": "5000" }, "x-validation-rules": { "ves.io.schema.rules.repeated.max_items": "5000" }, "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 5000, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "elements": { "type": "array", "description": "Configuration parameter for elements", "maxItems": 512, "items": { "$ref": "#/components/schemas/schemaObjectRefType" }, "x-ves-validation-rules": { "ves.io.schema.rules.repeated.max_items": "512" }, "x-validation-rules": { "ves.io.schema.rules.repeated.max_items": "512" }, "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 512, "minItems": 0, "uniqueItems": false, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" }, "deterministic": true }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "GET api_group reads a given object from storage backend for metadata.namespace.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for schemaapi_groupGetSpecType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemaapi_groupGetSpecType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "api_group_elementGetResponse": { "type": "object", "description": "This is the output message of the 'GET' RPC.", "title": "GetResponse is the shape of a read api_group_element", "x-displayname": "GET Response.", "x-ves-proto-message": "ves.io.schema.api_group_element.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/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 } }, "spec": { "allOf": [ { "$ref": "#/components/schemas/api_group_elementGetSpecType" } ], "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/api_group_elementStatusObject" }, "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-08-20T09:12:47+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 api_group_elementGetResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_group_elementGetResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "api_group_elementGetSpecType": { "type": "object", "description": "GET api_group_element reads a given object from storage backend for metadata.namespace.", "title": "Get api group element", "x-displayname": "GET API Group Element.", "x-ves-proto-message": "ves.io.schema.api_group_element.GetSpecType", "properties": { "methods": { "type": "array", "description": "List of method values to match the input request API method against.\nThe match is considered to succeed if the input request API method is a member of the list.", "minItems": 1, "items": { "$ref": "#/components/schemas/schemaHttpMethod" }, "x-displayname": "HTTP Methods.", "x-ves-example": "['PUT', 'POST', 'DELETE']", "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", "ves.io.schema.rules.repeated.min_items": "1", "ves.io.schema.rules.repeated.unique": "true" }, "x-f5xc-example": "['PUT', 'POST', 'DELETE']", "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", "ves.io.schema.rules.repeated.min_items": "1", "ves.io.schema.rules.repeated.unique": "true" }, "x-f5xc-description-short": "List of method values to match the input request API method against.", "x-f5xc-description-medium": "List of method values to match the input request API method against. The match is considered to succeed if the input request API method is a member of the list.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "minItems": 1, "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "path_regex": { "type": "string", "description": "Regular expression to match the input request API path against.\nThe match is considered to succeed if the input request API path matches the specified path regex.", "minLength": 1, "maxLength": 1024, "x-displayname": "Path Regex.", "x-ves-example": "/API/config/configconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfig.*/path[123]/$.", "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.regex": "true" }, "x-f5xc-example": "/api/config/configconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfig.*/path[123]/$", "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.regex": "true" }, "x-f5xc-description-short": "Regular expression to match the input request API path against.", "x-f5xc-description-medium": "Regular expression to match the input request API path against. The match is considered to succeed if the input request API path matches the specified path regex.", "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } } }, "x-f5xc-description-short": "GET api_group_element reads a given object from storage backend for metadata.namespace.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for api_group_elementGetSpecType", "required_fields": [ "methods", "path_regex" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_group_elementGetSpecType\nmetadata:\n name: example\n namespace: default\nspec:\n methods: value\n path_regex: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"methods\": \"value\",\n \"path_regex\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "api_group_elementListResponse": { "type": "object", "description": "This is the output message of 'List' RPC.", "title": "ListResponse is the collection of api_group_element", "x-displayname": "List Response.", "x-ves-proto-message": "ves.io.schema.api_group_element.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/api_group_elementListResponseItem" }, "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for api_group_elementListResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_group_elementListResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "api_group_elementListResponseItem": { "type": "object", "description": "By default a summary of api_group_element 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 api_group_element", "x-displayname": "List Item", "x-ves-proto-message": "ves.io.schema.api_group_element.ListResponseItem", "properties": { "annotations": { "type": "object", "description": "The set of annotations present on this api_group_element.", "title": "annotations", "x-displayname": "Annotations.", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "The set of annotations present on this api_group_element.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "description": { "type": "string", "description": "The description set for this api_group_element.", "title": "description", "x-displayname": "Description.", "x-f5xc-description-short": "The description set for this api_group_element.", "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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "disabled": { "type": "boolean", "description": "A value of true indicates api_group_element is administratively disabled.", "title": "disabled", "format": "boolean", "x-displayname": "Disabled", "x-f5xc-example": "True", "x-f5xc-description-short": "Value of true indicates api_group_element is administratively disabled.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "get_spec": { "allOf": [ { "$ref": "#/components/schemas/api_group_elementGetSpecType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "labels": { "type": "object", "description": "The set of labels present on this api_group_element.", "title": "labels", "x-displayname": "Labels", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "The set of labels present on this api_group_element.", "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 api_group_element.", "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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/api_group_elementStatusObject" }, "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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "uid": { "type": "string", "description": "The unique uid of this api_group_element.", "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 api_group_element.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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-08-20T09:12:47+00:00" } }, "x-f5xc-description-short": "By default a summary of api_group_element 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 api_group_element 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 api_group_elementListResponseItem", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_group_elementListResponseItem\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "api_group_elementStatusObject": { "type": "object", "title": "Most recently observed status of object", "x-displayname": "Status Object.", "x-ves-proto-message": "ves.io.schema.api_group_element.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/schemaObjectRefType" }, "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 api_group_elementStatusObject", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_group_elementStatusObject\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "api_testingApiKey": { "type": "object", "title": "Api Key", "x-displayname": "API Key", "x-ves-proto-message": "ves.io.schema.api_sec.api_testing.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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+00:00" } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for api_testingApiKey", "required_fields": [ "key" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_testingApiKey\nmetadata:\n name: example\n namespace: default\nspec:\n key: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"key\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "api_testingBasicAuthentication": { "type": "object", "title": "Basic Authentication", "x-displayname": "Basic Authentication.", "x-ves-proto-message": "ves.io.schema.api_sec.api_testing.BasicAuthentication", "properties": { "password": { "allOf": [ { "$ref": "#/components/schemas/schemaSecretType" } ], "x-f5xc-example": "MySecureP@ssw0rd123!", "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-08-20T09:12:47+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 api_testingBasicAuthentication", "required_fields": [ "user" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_testingBasicAuthentication\nmetadata:\n name: example\n namespace: default\nspec:\n user: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"user\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "api_testingBearer": { "type": "object", "title": "Bearer Authentication", "x-displayname": "Bearer", "x-ves-proto-message": "ves.io.schema.api_sec.api_testing.Bearer", "properties": { "token": { "allOf": [ { "$ref": "#/components/schemas/schemaSecretType" } ], "x-f5xc-example": "[REDACTED_API_TOKEN]", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for api_testingBearer", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_testingBearer\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "api_testingCreateRequest": { "type": "object", "description": "This is the input message of the 'Create' RPC.", "title": "CreateRequest is used to create an instance of api_testing", "x-displayname": "Create Request.", "x-ves-proto-message": "ves.io.schema.api_sec.api_testing.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/api_testingCreateSpecType" } ], "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 api_testingCreateRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_testingCreateRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "api_testingCreateResponse": { "type": "object", "x-ves-proto-message": "ves.io.schema.api_sec.api_testing.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/api_testingGetSpecType" } ], "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 api_testingCreateResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_testingCreateResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "api_testingCreateSpecType": { "type": "object", "title": "Create API Testing", "x-displayname": "Create API Testing.", "x-ves-oneof-field-frequency_choice": "[\"every_day\",\"every_month\",\"every_week\"]", "x-ves-proto-message": "ves.io.schema.api_sec.api_testing.CreateSpecType", "properties": { "custom_header_value": { "type": "string", "description": "Add x-F5-API-testing-identifier header value to prevent security flags on API testing traffic.", "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-08-20T09:12:47+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.", "maxItems": 32, "items": { "$ref": "#/components/schemas/api_testingDomainConfiguration" }, "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-08-20T09:12:47+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 api_testingCreateSpecType", "required_fields": [ "domains" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_testingCreateSpecType\nmetadata:\n name: example\n namespace: default\nspec:\n domains: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"domains\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-field-examples": { "spec.domains": "value" }, "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "api_testingCredentials": { "type": "object", "description": "Select the type of your credential, their values and roles.", "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.api_sec.api_testing.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/api_testingApiKey" } ], "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/api_testingBasicAuthentication" } ], "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/api_testingBearer" } ], "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-resource", "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "login_endpoint": { "allOf": [ { "$ref": "#/components/schemas/api_testingLoginEndpoint" } ], "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": "Select the type of your credential, their values and roles.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for api_testingCredentials", "required_fields": [ "credential_name" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_testingCredentials\nmetadata:\n name: example\n namespace: default\nspec:\n credential_name: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"credential_name\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "api_testingDeleteRequest": { "type": "object", "description": "This is the input message of the 'DELETE' RPC.", "title": "DeleteRequest is used to delete a api_testing", "x-displayname": "DELETE Request.", "x-ves-proto-message": "ves.io.schema.api_sec.api_testing.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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for api_testingDeleteRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_testingDeleteRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "api_testingDomainConfiguration": { "type": "object", "description": "The Domain configuration message.", "title": "Configured API Domains", "x-displayname": "Domain Configuration.", "x-ves-proto-message": "ves.io.schema.api_sec.api_testing.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": "Run API tests for 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/api_testingCredentials" }, "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-08-20T09:12:47+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-08-20T09:12:47+00:00" } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for api_testingDomainConfiguration", "required_fields": [ "credentials", "domain" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_testingDomainConfiguration\nmetadata:\n name: example\n namespace: default\nspec:\n credentials: value\n domain: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"credentials\": \"value\",\n \"domain\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "api_testingGetResponse": { "type": "object", "description": "This is the output message of the 'GET' RPC.", "title": "GetResponse is the shape of a read api_testing", "x-displayname": "GET Response.", "x-ves-proto-message": "ves.io.schema.api_sec.api_testing.GetResponse", "properties": { "create_form": { "allOf": [ { "$ref": "#/components/schemas/api_testingCreateRequest" } ], "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/api_testingReplaceRequest" } ], "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/api_testingGetSpecType" } ], "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/api_testingStatusObject" }, "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-08-20T09:12:47+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 api_testingGetResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_testingGetResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "api_testingGetSpecType": { "type": "object", "title": "Get API testing", "x-displayname": "GET API testing.", "x-ves-oneof-field-frequency_choice": "[\"every_day\",\"every_month\",\"every_week\"]", "x-ves-proto-message": "ves.io.schema.api_sec.api_testing.GetSpecType", "properties": { "custom_header_value": { "type": "string", "description": "Add x-F5-API-testing-identifier header value to prevent security flags on API testing traffic.", "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-08-20T09:12:47+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.", "maxItems": 32, "items": { "$ref": "#/components/schemas/api_testingDomainConfiguration" }, "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-08-20T09:12:47+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 api_testingGetSpecType", "required_fields": [ "domains" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_testingGetSpecType\nmetadata:\n name: example\n namespace: default\nspec:\n domains: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"domains\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "api_testingListResponse": { "type": "object", "description": "This is the output message of 'List' RPC.", "title": "ListResponse is the collection of api_testing", "x-displayname": "List Response.", "x-ves-proto-message": "ves.io.schema.api_sec.api_testing.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/api_testingListResponseItem" }, "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for api_testingListResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_testingListResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "api_testingListResponseItem": { "type": "object", "description": "By default a summary of api_testing 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 api_testing", "x-displayname": "List Item", "x-ves-proto-message": "ves.io.schema.api_sec.api_testing.ListResponseItem", "properties": { "annotations": { "type": "object", "description": "The set of annotations present on this api_testing.", "title": "annotations", "x-displayname": "Annotations.", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "The set of annotations present on this api_testing.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "description": { "type": "string", "description": "The description set for this api_testing.", "title": "description", "x-displayname": "Description.", "x-f5xc-description-short": "The description set for this api_testing.", "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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "disabled": { "type": "boolean", "description": "A value of true indicates api_testing is administratively disabled.", "title": "disabled", "format": "boolean", "x-displayname": "Disabled", "x-f5xc-example": "True", "x-f5xc-description-short": "Value of true indicates api_testing is administratively disabled.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "get_spec": { "allOf": [ { "$ref": "#/components/schemas/api_testingGetSpecType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "labels": { "type": "object", "description": "The set of labels present on this api_testing.", "title": "labels", "x-displayname": "Labels", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "The set of labels present on this api_testing.", "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 api_testing.", "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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/api_testingStatusObject" }, "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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "uid": { "type": "string", "description": "The unique uid of this api_testing.", "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-08-20T09:12:47+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-08-20T09:12:47+00:00" } }, "x-f5xc-description-short": "By default a summary of api_testing 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 api_testing 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 api_testingListResponseItem", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_testingListResponseItem\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "api_testingLoginEndpoint": { "type": "object", "title": "Login Endpoint", "x-displayname": "Login Endpoint.", "x-ves-proto-message": "ves.io.schema.api_sec.api_testing.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-08-20T09:12:47+00:00" }, "deterministic": true }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "token_response_key": { "type": "string", "description": "Configuration parameter for token response key", "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": "Configuration parameter for token response key.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for api_testingLoginEndpoint", "required_fields": [ "path", "token_response_key" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_testingLoginEndpoint\nmetadata:\n name: example\n namespace: default\nspec:\n path: value\n token_response_key: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"path\": \"value\",\n \"token_response_key\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "api_testingReplaceRequest": { "type": "object", "description": "This is the input message of the 'Replace' RPC.", "title": "ReplaceRequest is used to replace contents of a api_testing", "x-displayname": "Replace Request.", "x-ves-proto-message": "ves.io.schema.api_sec.api_testing.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/api_testingReplaceSpecType" } ], "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 api_testingReplaceRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_testingReplaceRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "api_testingReplaceResponse": { "type": "object", "x-ves-proto-message": "ves.io.schema.api_sec.api_testing.ReplaceResponse", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for api_testingReplaceResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_testingReplaceResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "api_testingReplaceSpecType": { "type": "object", "title": "Replace API Testing", "x-displayname": "Replace API testing.", "x-ves-oneof-field-frequency_choice": "[\"every_day\",\"every_month\",\"every_week\"]", "x-ves-proto-message": "ves.io.schema.api_sec.api_testing.ReplaceSpecType", "properties": { "custom_header_value": { "type": "string", "description": "Add x-F5-API-testing-identifier header value to prevent security flags on API testing traffic.", "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-08-20T09:12:47+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.", "maxItems": 32, "items": { "$ref": "#/components/schemas/api_testingDomainConfiguration" }, "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-08-20T09:12:47+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 api_testingReplaceSpecType", "required_fields": [ "domains" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_testingReplaceSpecType\nmetadata:\n name: example\n namespace: default\nspec:\n domains: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"domains\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "api_testingStatusObject": { "type": "object", "title": "Most recently observed status of object", "x-displayname": "Status Object.", "x-ves-proto-message": "ves.io.schema.api_sec.api_testing.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-minimum-configuration": { "description": "Minimum configuration for api_testingStatusObject", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_testingStatusObject\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "api_credentialAPICredentialType": { "type": "string", "description": "Types of API credential given when requesting credentials from F5 Distributed Cloud\n\nF5XC user certificate to access F5XC public API using mTLS\nusing self credential (my credential)\nKubernetes config file to access Virtual Kubernetes API in F5 Distributed Cloud\nusing self credential (my credential)\nAPI token to access F5XC public API\nusing self credential (my credential)\nAPI token for service credentials\nusing service user credential (service credential)\nAPI certificate for service credentials\nusing service user credential (service credential)\nService Credential kubeconfig\nusing service user credential (service credential)\nKubeconfig for accessing Site via Global Controller\nusing self credential (my credential)\nToken for the SCIM public APIs used to sync users and groups with the F5XC platform.\nExternal identity provider's SCIM client can use this token as Bearer token with Authorization header\nService Credential Kubeconfig for accessing Site via Global Controller\nusing service user credential (service credential)", "title": "API Credential type", "enum": [ "API_CERTIFICATE", "KUBE_CONFIG", "API_TOKEN", "SERVICE_API_TOKEN", "SERVICE_API_CERTIFICATE", "SERVICE_KUBE_CONFIG", "SITE_GLOBAL_KUBE_CONFIG", "SCIM_API_TOKEN", "SERVICE_SITE_GLOBAL_KUBE_CONFIG" ], "default": "API_CERTIFICATE", "x-displayname": "Credential Type.", "x-ves-proto-enum": "ves.io.schema.api_credential.APICredentialType", "x-f5xc-description-short": "Types of API credential given when requesting credentials from F5 Distributed Cloud F5XC user certificate to access F5XC public API using mTLS...", "x-f5xc-description-medium": "Types of API credential given when requesting credentials from F5 Distributed Cloud F5XC user certificate to access F5XC public API using mTLS using self credential (my credential) Kubernetes config file to access Virtual Kubernetes API in F5 Distributed Cloud using self credential (my...", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for api_credentialAPICredentialType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_credentialAPICredentialType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "API credentials are platform-level identity" }, "classification": { "category": "identity", "multi_tenant_pattern": "none" } } }, "api_credentialApiCertificateType": { "type": "object", "description": "Service API Certificate parameters.", "title": "api_certificate", "x-displayname": "Service API Certificate Specification.", "x-ves-proto-message": "ves.io.schema.api_credential.ApiCertificateType", "properties": { "password": { "type": "string", "description": "Password is used for generating an API certificate P12 bundle user can use to protect access to it.\nThis password will not be saved/persisted anywhere in the system. Applicable for credential type API_CERTIFICATE\nUsers have to use this password when they use the certificate, e.g. In curl or while adding to key chain.", "title": "Password for API certificate", "minLength": 6, "maxLength": 50, "x-displayname": "Password", "x-ves-example": "MyPassw0rd123.", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.string.max_bytes": "50", "ves.io.schema.rules.string.min_bytes": "6" }, "x-f5xc-example": "myPassw0rd123", "x-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.string.max_bytes": "50", "ves.io.schema.rules.string.min_bytes": "6" }, "x-f5xc-description-short": "Password is used for generating an API certificate P12 bundle user can use to protect access to it.", "x-f5xc-description-medium": "Password is used for generating an API certificate P12 bundle user can use to protect access to it. This password will not be saved/persisted anywhere in the system. Applicable for credential type API_CERTIFICATE Users have to use this password when they use the certificate, e.g.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "minLength": 6, "maxLength": 50, "byteLength": { "max": 50, "min": 6 }, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for api_credentialApiCertificateType", "required_fields": [ "password" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_credentialApiCertificateType\nmetadata:\n name: example\n namespace: default\nspec:\n password: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"password\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "certificates", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "API credentials are platform-level identity" }, "classification": { "category": "identity", "multi_tenant_pattern": "none" } } }, "api_credentialBulkRevokeRequest": { "type": "object", "description": "Request format for revoking multiple API credentials.", "title": "Bulk Revoke Request", "x-displayname": "Bulk Revoke Request.", "x-ves-oneof-field-bulkrevoke_choice": "[\"expired_selector\",\"name_selector\"]", "x-ves-proto-message": "ves.io.schema.api_credential.BulkRevokeRequest", "properties": { "expired_selector": { "allOf": [ { "$ref": "#/components/schemas/api_credentialExpiredSelector" } ], "x-f5xc-description-short": "Configuration parameter for expired selector.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "name_selector" ] }, "name_selector": { "allOf": [ { "$ref": "#/components/schemas/api_credentialNameSelector" } ], "x-f5xc-example": "example-resource", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "expired_selector" ] } }, "x-f5xc-description-short": "Request format for revoking multiple API credentials.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for api_credentialBulkRevokeRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_credentialBulkRevokeRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "API credentials are platform-level identity" }, "classification": { "category": "identity", "multi_tenant_pattern": "none" } } }, "api_credentialBulkRevokeResponse": { "type": "object", "description": "Response format for revoking multiple API credentials.", "title": "Bulk Revoke Response", "x-displayname": "Bulk Revoke Response.", "x-ves-proto-message": "ves.io.schema.api_credential.BulkRevokeResponse", "properties": { "credentials_failed": { "type": "array", "description": "Names of credentials that are not marked as DELETE due to some error.", "title": "Credentials Failed", "items": { "type": "string" }, "x-displayname": "Credentials Failed.", "x-f5xc-description-short": "Names of credentials that are not marked as DELETE due to some error.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "credentials_marked_for_deletion": { "type": "array", "description": "Names of credentials that are successfully marked for deletion.", "title": "Credentials Success", "items": { "type": "string" }, "x-displayname": "Credentials Success.", "x-f5xc-description-short": "Names of credentials that are successfully marked for deletion.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "error_message": { "type": "string", "description": "Error message about the failures of bulk revoke of credentials.", "title": "error message", "x-displayname": "Error Message.", "x-f5xc-description-short": "Error message about the failures of bulk revoke of credentials.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Response format for revoking multiple API credentials.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for api_credentialBulkRevokeResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_credentialBulkRevokeResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "API credentials are platform-level identity" }, "classification": { "category": "identity", "multi_tenant_pattern": "none" } } }, "api_credentialCreateRequest": { "type": "object", "description": "CreateRequest is the request format for generating API credential.", "title": "Create Request", "x-displayname": "Create Request.", "x-ves-displayorder": "1,2,3,5", "x-ves-proto-message": "ves.io.schema.api_credential.CreateRequest", "properties": { "expiration_days": { "type": "integer", "description": "Qty of days of service credential expiration.", "title": "Expiry in days", "format": "int64", "x-displayname": "Expiry in days.", "x-ves-example": "Value", "x-f5xc-example": "value", "x-f5xc-description-short": "Qty of days of service credential expiration.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "name": { "type": "string", "description": "Name of API credential record. It will be saved in metadata.", "title": "Name", "x-displayname": "Name", "x-ves-example": "Value", "x-f5xc-example": "value", "x-f5xc-description-short": "Name of API credential record. It will be saved in metadata.", "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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" }, "namespace": { "type": "string", "description": "Value of namespace is always \"system\".", "title": "Namespace", "x-displayname": "Namespace", "x-ves-example": "Value", "x-f5xc-example": "value", "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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" }, "spec": { "allOf": [ { "$ref": "#/components/schemas/api_credentialCustomCreateSpecType" } ], "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "CreateRequest is the request format for generating API credential.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for api_credentialCreateRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_credentialCreateRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "API credentials are platform-level identity" }, "classification": { "category": "identity", "multi_tenant_pattern": "none" } } }, "api_credentialCreateResponse": { "type": "object", "description": "CreateResponse is the response format for the credential's create request.", "title": "Create response", "x-displayname": "Create Response.", "x-ves-displayorder": "1", "x-ves-proto-message": "ves.io.schema.api_credential.CreateResponse", "properties": { "active": { "type": "boolean", "format": "boolean", "description": "Indicates if the resource is active", "x-f5xc-example": "True", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "data": { "type": "string", "description": "Data is the response format based on the API credential type.\nIn case of API_CERTIFICATES, the response is the base64 encoded value of\ncertificate in PKCS12 format.\nIn case of KUBE_CONFIG, the response is the base64 encoded value of the K8s kubeconfig file\nwith contents as requested - cluster,namespace and base64 encoded certificate, key and CA.", "title": "Credentials", "x-displayname": "Credentials.", "x-ves-example": "Value", "x-f5xc-example": "value", "x-f5xc-description-short": "Data is the response format based on the API credential type.", "x-f5xc-description-medium": "Data is the response format based on the API credential type. In case of API_CERTIFICATES, the response is the base64 encoded value of certificate in PKCS12 format. In case of KUBE_CONFIG, the response is the base64 encoded value of the K8s kubeconfig file with contents as requested ...", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "expiration_timestamp": { "type": "string", "format": "date-time", "description": "Configuration parameter for expiration timestamp", "x-f5xc-description-short": "Configuration parameter for expiration timestamp.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "format": "date-time", "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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", "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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" } }, "x-f5xc-description-short": "CreateResponse is the response format for the credential's create request.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for api_credentialCreateResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_credentialCreateResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "API credentials are platform-level identity" }, "classification": { "category": "identity", "multi_tenant_pattern": "none" } } }, "api_credentialCreateServiceCredentialsRequest": { "type": "object", "description": "CreateServiceCredentialsRequest is the request format for creating service credentials.", "title": "Create Service Credentials Request", "x-displayname": "Create Service Credentials Request.", "x-ves-oneof-field-service_credential_choice": "[\"api_certificate\",\"api_token\",\"site_kubeconfig\",\"vk8s_kubeconfig\"]", "x-ves-proto-message": "ves.io.schema.api_credential.CreateServiceCredentialsRequest", "properties": { "api_certificate": { "allOf": [ { "$ref": "#/components/schemas/api_credentialApiCertificateType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "api_token", "site_kubeconfig", "vk8s_kubeconfig" ] }, "api_token": { "allOf": [ { "$ref": "#/components/schemas/schemaEmpty" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "api_certificate", "site_kubeconfig", "vk8s_kubeconfig" ] }, "expiration_days": { "type": "integer", "description": "Qty of days of service credential expiration.", "title": "Expiry in days", "format": "int64", "x-displayname": "Expiry in days.", "x-ves-example": "Value", "x-f5xc-example": "value", "x-f5xc-description-short": "Qty of days of service credential expiration.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "name": { "type": "string", "description": "Name of API credential record. It will be saved in metadata.", "title": "Name", "x-displayname": "Name", "x-ves-example": "Svc-cred-app1.", "x-f5xc-example": "svc-cred-app1", "x-f5xc-description-short": "Name of API credential record. It will be saved in metadata.", "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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" }, "namespace": { "type": "string", "description": "Value of namespace is always \"system\".", "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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" }, "namespace_roles": { "type": "array", "description": "List of roles per namespace to be assigned to service credentials.", "title": "Roles", "items": { "$ref": "#/components/schemas/schemaNamespaceRoleType" }, "x-displayname": "List of roles.", "x-ves-example": "Value", "x-f5xc-example": "value", "x-f5xc-description-short": "List of roles per namespace to be assigned to service credentials.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "password": { "type": "string", "description": "Password is used for generating an API certificate P12 bundle user can use to protect access to it.\nThis password will not be saved/persisted anywhere in the system. Applicable for credential type API_CERTIFICATE\nUsers have to use this password when they use the certificate, e.g. In curl or while adding to key chain.", "title": "Password for API certificate", "x-displayname": "Password", "x-ves-example": "MyPassw0rd123.", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true" }, "x-f5xc-example": "myPassw0rd123", "x-validation-rules": { "ves.io.schema.rules.message.required": "true" }, "x-f5xc-description-short": "Password is used for generating an API certificate P12 bundle user can use to protect access to it.", "x-f5xc-description-medium": "Password is used for generating an API certificate P12 bundle user can use to protect access to it. This password will not be saved/persisted anywhere in the system. Applicable for credential type API_CERTIFICATE Users have to use this password when they use the certificate, e.g.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "site_kubeconfig": { "allOf": [ { "$ref": "#/components/schemas/api_credentialSiteKubeconfigType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "api_certificate", "api_token", "vk8s_kubeconfig" ] }, "type": { "allOf": [ { "$ref": "#/components/schemas/api_credentialAPICredentialType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "user_group_names": { "type": "array", "description": "List of user_groups assigned to this service credential.", "title": "User Groups Names", "items": { "type": "string" }, "x-displayname": "Groups", "x-ves-example": "[\"dev-group-1\"]", "x-f5xc-example": "\"[\"dev-group-1\"]\"", "x-f5xc-description-short": "List of user_groups assigned to this service credential.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "virtual_k8s_name": { "type": "string", "description": "Name of virtual_k8s cluster. Applicable for KUBE_CONFIG.", "title": "virtual k8s cluster name", "x-displayname": "VK8s Cluster.", "x-ves-example": "Vk8s-product-app1.", "x-f5xc-example": "vk8s-product-app1", "x-f5xc-description-short": "Name of virtual_k8s cluster. Applicable for KUBE_CONFIG.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "virtual_k8s_namespace": { "type": "string", "description": "Namespace of virtual_k8s cluster. Applicable for KUBE_CONFIG.", "title": "Virtual k8s namespace", "x-displayname": "VK8s Namespace.", "x-ves-example": "App-ns1", "x-f5xc-example": "app-ns1", "x-f5xc-description-short": "Namespace of virtual_k8s cluster. Applicable for KUBE_CONFIG.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "vk8s_kubeconfig": { "allOf": [ { "$ref": "#/components/schemas/api_credentialVk8sKubeconfigType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "api_certificate", "api_token", "site_kubeconfig" ] } }, "x-f5xc-description-short": "CreateServiceCredentialsRequest is the request format for creating service credentials.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for api_credentialCreateServiceCredentialsRequest", "required_fields": [ "password" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_credentialCreateServiceCredentialsRequest\nmetadata:\n name: example\n namespace: default\nspec:\n password: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"password\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "API credentials are platform-level identity" }, "classification": { "category": "identity", "multi_tenant_pattern": "none" } } }, "api_credentialCustomCreateSpecType": { "type": "object", "description": "Create request specification.", "title": "Create Spec Type", "x-displayname": "Create API Credential.", "x-ves-displayorder": "1,2,5,3,4", "x-ves-proto-message": "ves.io.schema.api_credential.CustomCreateSpecType", "properties": { "password": { "type": "string", "description": "Password is used for generating an API certificate P12 bundle user can use to protect access to it.\nThis password will not be saved/persisted anywhere in the system. Applicable for credential type API_CERTIFICATE\nUsers have to use this password when they use the certificate, e.g. In curl or while adding to key chain.", "title": "Password for API certificate", "x-displayname": "Password", "x-ves-example": "MyPassw0rd123.", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true" }, "x-f5xc-example": "myPassw0rd123", "x-validation-rules": { "ves.io.schema.rules.message.required": "true" }, "x-f5xc-description-short": "Password is used for generating an API certificate P12 bundle user can use to protect access to it.", "x-f5xc-description-medium": "Password is used for generating an API certificate P12 bundle user can use to protect access to it. This password will not be saved/persisted anywhere in the system. Applicable for credential type API_CERTIFICATE Users have to use this password when they use the certificate, e.g.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "type": { "allOf": [ { "$ref": "#/components/schemas/api_credentialAPICredentialType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "virtual_k8s_name": { "type": "string", "description": "Name of virtual K8s cluster. Applicable for KUBE_CONFIG.", "title": "virtual k8s cluster name", "x-displayname": "VK8s Cluster.", "x-ves-example": "Vk8s-product-app1.", "x-f5xc-example": "vk8s-product-app1", "x-f5xc-description-short": "Name of virtual K8s cluster. Applicable for KUBE_CONFIG.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "virtual_k8s_namespace": { "type": "string", "description": "Namespace of virtual K8s cluster. Applicable for KUBE_CONFIG.", "title": "Virtual K8s namespace", "x-displayname": "VK8s Namespace.", "x-ves-example": "App-ns1", "x-f5xc-example": "app-ns1", "x-f5xc-description-short": "Namespace of virtual K8s cluster. Applicable for KUBE_CONFIG.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for api_credentialCustomCreateSpecType", "required_fields": [ "password" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_credentialCustomCreateSpecType\nmetadata:\n name: example\n namespace: default\nspec:\n password: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"password\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-field-examples": { "spec.password": "value" }, "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "API credentials are platform-level identity" }, "classification": { "category": "identity", "multi_tenant_pattern": "none" } } }, "api_credentialExpiredSelector": { "type": "object", "description": "It specifies which expired credentials needs to be deleted.", "title": "Expired Selector", "x-displayname": "Expired Selector.", "x-ves-oneof-field-expired_credential_choice": "[\"all\",\"credential_type\"]", "x-ves-proto-message": "ves.io.schema.api_credential.ExpiredSelector", "properties": { "all": { "allOf": [ { "$ref": "#/components/schemas/schemaEmpty" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "credential_type" ] }, "credential_type": { "allOf": [ { "$ref": "#/components/schemas/api_credentialAPICredentialType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "all" ] } }, "x-f5xc-description-short": "It specifies which expired credentials needs to be deleted.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for api_credentialExpiredSelector", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_credentialExpiredSelector\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "API credentials are platform-level identity" }, "classification": { "category": "identity", "multi_tenant_pattern": "none" } } }, "api_credentialGetRequest": { "type": "object", "description": "GET credential object with a given name.", "title": "Get credential request", "x-displayname": "GET Credential.", "x-ves-proto-message": "ves.io.schema.api_credential.GetRequest", "properties": { "name": { "type": "string", "description": "Name of API credential.", "title": "Credential name", "x-displayname": "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": 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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" }, "namespace": { "type": "string", "description": "Value of namespace is always \"system\".", "title": "Namespace", "x-displayname": "Namespace", "x-ves-example": "System", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true" }, "x-f5xc-example": "system", "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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" } }, "x-f5xc-description-short": "GET credential object with a given name.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for api_credentialGetRequest", "required_fields": [ "name", "namespace" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_credentialGetRequest\nmetadata:\n name: example\n namespace: default\nspec:\n name: value\n namespace: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"name\": \"value\",\n \"namespace\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "API credentials are platform-level identity" }, "classification": { "category": "identity", "multi_tenant_pattern": "none" } } }, "api_credentialGetResponse": { "type": "object", "description": "Response of GET credential request with a given name.", "title": "Get credential response", "x-displayname": "GET Credential Response.", "x-ves-proto-message": "ves.io.schema.api_credential.GetResponse", "properties": { "object": { "allOf": [ { "$ref": "#/components/schemas/api_credentialObject" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Response of GET credential request with a given name.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for api_credentialGetResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_credentialGetResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "API credentials are platform-level identity" }, "classification": { "category": "identity", "multi_tenant_pattern": "none" } } }, "api_credentialGetServiceCredentialsResponse": { "type": "object", "description": "Response of GET service credentials request with a given name.", "title": "Get service credentials response", "x-displayname": "GET Service Credentials Response.", "x-ves-proto-message": "ves.io.schema.api_credential.GetServiceCredentialsResponse", "properties": { "active": { "type": "boolean", "description": "Possibility to deactivate credential with no deletion.", "title": "Active", "format": "boolean", "x-displayname": "Active", "x-ves-example": "True", "x-f5xc-example": "true", "x-f5xc-description-short": "Possibility to deactivate credential with no deletion.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "create_timestamp": { "type": "string", "description": "Create time of service credential.", "title": "Create timestamp", "format": "date-time", "x-displayname": "Creation Time.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "format": "date-time", "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "expiry_timestamp": { "type": "string", "description": "Expiry time of service credential.", "title": "Expiry time", "format": "date-time", "x-displayname": "Expiry Time.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "format": "date-time", "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "name": { "type": "string", "description": "Name of service credential object.", "title": "Credential name", "x-displayname": "Name", "x-ves-example": "Value", "x-f5xc-example": "value", "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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" }, "namespace": { "type": "string", "description": "Namespace of service credential object.", "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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" }, "namespace_access": { "allOf": [ { "$ref": "#/components/schemas/schemaNamespaceAccessType" } ], "x-f5xc-example": "example-resource", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "type": { "allOf": [ { "$ref": "#/components/schemas/api_credentialAPICredentialType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "uid": { "type": "string", "description": "Uid of service credential object.", "title": "uid of the record", "x-displayname": "UUID", "x-ves-example": "00000000-0000-4000-8000-676e83e049e2.", "x-f5xc-example": "00000000-0000-4000-8000-676e83e049e2", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "user_email": { "type": "string", "description": "Email of the service user attached to service credential .", "title": "Email of user", "x-displayname": "User", "x-ves-example": "Admin@example.com.", "x-f5xc-example": "admin@example.com", "x-f5xc-description-short": "Email of the service user attached to service credential .", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "user_group_names": { "type": "array", "description": "User group list associated to this service credential.", "title": "User Groups Names", "items": { "type": "string" }, "x-displayname": "User Groups.", "x-ves-example": "[\"dev-group-1\"]", "x-f5xc-example": "\"[\"dev-group-1\"]\"", "x-f5xc-description-short": "User group list associated to this service credential.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Response of GET service credentials request with a given name.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for api_credentialGetServiceCredentialsResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_credentialGetServiceCredentialsResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "API credentials are platform-level identity" }, "classification": { "category": "identity", "multi_tenant_pattern": "none" } } }, "api_credentialGlobalSpecType": { "type": "object", "description": "Keeps track of user requested API credentials.", "title": "API credentials", "x-displayname": "API Credentials.", "x-ves-proto-message": "ves.io.schema.api_credential.GlobalSpecType", "properties": { "active": { "type": "boolean", "description": "Possibility to deactivate/activate credential with no deletion.", "title": "Active", "format": "boolean", "x-displayname": "Active", "x-f5xc-example": "True", "x-f5xc-description-short": "Possibility to deactivate/activate credential with no deletion.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "certificate_serial_num": { "type": "string", "description": "Serial number of the client certificate part of credential type API Certificate or Kubeconfig.", "title": "Certificate Serial Number", "maxLength": 32, "x-displayname": "Certificate Serial Number.", "x-ves-validation-rules": { "ves.io.schema.rules.string.max_len": "32" }, "x-validation-rules": { "ves.io.schema.rules.string.max_len": "32" }, "x-f5xc-description-short": "Serial number of the client certificate part of credential type API Certificate or Kubeconfig.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 32, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "created_timestamp": { "type": "string", "description": "Timestamp of credential creation.", "title": "Created timestamp", "format": "date-time", "x-displayname": "Created timestamp.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "format": "date-time", "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "digest": { "type": "string", "description": "Digest sha1 of credential.", "title": "Digest sha1", "x-displayname": "Digest sha1.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "expiration_timestamp": { "type": "string", "description": "Timestamp of credential expiration.", "title": "Expiry timestamp", "format": "date-time", "x-displayname": "Expiry timestamp.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "format": "date-time", "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "site_name": { "type": "string", "description": "Site name when global kubeconfig is issued for physical K8s site.", "title": "Site Name", "x-displayname": "Site Name", "x-f5xc-example": "example-resource", "x-f5xc-description-short": "Site name when global kubeconfig is issued for physical K8s site.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "type": { "allOf": [ { "$ref": "#/components/schemas/api_credentialAPICredentialType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "users": { "type": "array", "description": "Reference to user for whom API credential is created.", "title": "user requesting credential", "maxItems": 1, "items": { "$ref": "#/components/schemas/schemaObjectRefType" }, "x-displayname": "User", "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 for whom API credential is created.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 1, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "virtual_k8s_name": { "type": "string", "description": "Name of virtual K8s cluster.", "title": "Virtual K8s", "x-displayname": "Virtual K8s.", "x-f5xc-example": "example-resource", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "virtual_k8s_namespace": { "type": "string", "description": "Namespace of virtual_k8s.", "title": "Virtual K8s namespace", "x-displayname": "Namespace", "x-f5xc-example": "example-resource", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Keeps track of user requested API credentials.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for api_credentialGlobalSpecType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_credentialGlobalSpecType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "API credentials are platform-level identity" }, "classification": { "category": "identity", "multi_tenant_pattern": "none" } } }, "api_credentialListResponse": { "type": "object", "description": "Response of request to list all of users credential objects.", "title": "List credential response", "x-displayname": "List Credential Response.", "x-ves-proto-message": "ves.io.schema.api_credential.ListResponse", "properties": { "items": { "type": "array", "description": "List of credential items.", "title": "List of the credentials", "items": { "$ref": "#/components/schemas/api_credentialListResponseItem" }, "x-displayname": "Credentials.", "x-f5xc-example": "[\"item1\", \"item2\", \"item3\"]", "x-f5xc-constraints": { "constraintType": "array", "category": "general", "minItems": 0, "maxItems": 256, "uniqueItems": false, "metadata": { "source": "inferred", "confidence": 0.7, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Response of request to list all of users credential objects.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for api_credentialListResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_credentialListResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "API credentials are platform-level identity" }, "classification": { "category": "identity", "multi_tenant_pattern": "none" } } }, "api_credentialListResponseItem": { "type": "object", "description": "Each item of credential list request.", "title": "List Credential item", "x-displayname": "List credential response item.", "x-ves-proto-message": "ves.io.schema.api_credential.ListResponseItem", "properties": { "active": { "type": "boolean", "description": "Possibility to deactivate credential with no deletion.", "title": "Active", "format": "boolean", "x-displayname": "Active", "x-ves-example": "True", "x-f5xc-example": "true", "x-f5xc-description-short": "Possibility to deactivate credential with no deletion.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "create_timestamp": { "type": "string", "description": "Create time of API credential.", "title": "Create timestamp", "format": "date-time", "x-displayname": "Creation Time.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "format": "date-time", "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "expiry_timestamp": { "type": "string", "description": "Expiry time of credential.", "title": "Expiry time", "format": "date-time", "x-displayname": "Expiry Time.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "format": "date-time", "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "name": { "type": "string", "description": "Name of API credential object.", "title": "Credential name", "x-displayname": "Name", "x-ves-example": "Value", "x-f5xc-example": "value", "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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" }, "namespace": { "type": "string", "description": "Namespace of API credential object.", "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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" }, "type": { "allOf": [ { "$ref": "#/components/schemas/api_credentialAPICredentialType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "uid": { "type": "string", "description": "UUID of API credential object.", "title": "uuid of the record", "x-displayname": "UUID", "x-ves-example": "00000000-0000-4000-8000-676e83e049e2.", "x-f5xc-example": "00000000-0000-4000-8000-676e83e049e2", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "user_email": { "type": "string", "description": "User email of user that requested credential .", "title": "Email of user", "x-displayname": "User", "x-ves-example": "Admin@example.com.", "x-f5xc-example": "admin@example.com", "x-f5xc-description-short": "User email of user that requested credential .", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for api_credentialListResponseItem", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_credentialListResponseItem\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "API credentials are platform-level identity" }, "classification": { "category": "identity", "multi_tenant_pattern": "none" } } }, "api_credentialListServiceCredentialsResponse": { "type": "object", "description": "Response of request to list all of service credential objects.", "title": "List service credential response", "x-displayname": "List Service Credential Response.", "x-ves-proto-message": "ves.io.schema.api_credential.ListServiceCredentialsResponse", "properties": { "items": { "type": "array", "description": "List of service credential items.", "title": "List of the service credentials", "items": { "$ref": "#/components/schemas/api_credentialListServiceCredentialsResponseItem" }, "x-displayname": "Service Credentials.", "x-f5xc-example": "[\"item1\", \"item2\", \"item3\"]", "x-f5xc-constraints": { "constraintType": "array", "category": "general", "minItems": 0, "maxItems": 256, "uniqueItems": false, "metadata": { "source": "inferred", "confidence": 0.7, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Response of request to list all of service credential objects.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for api_credentialListServiceCredentialsResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_credentialListServiceCredentialsResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "API credentials are platform-level identity" }, "classification": { "category": "identity", "multi_tenant_pattern": "none" } } }, "api_credentialListServiceCredentialsResponseItem": { "type": "object", "description": "Each item of service credential list request.", "title": "List Service Credential item", "x-displayname": "List service credential response item.", "x-ves-proto-message": "ves.io.schema.api_credential.ListServiceCredentialsResponseItem", "properties": { "active": { "type": "boolean", "description": "Possibility to deactivate credential with no deletion.", "title": "Active", "format": "boolean", "x-displayname": "Active", "x-ves-example": "True", "x-f5xc-example": "true", "x-f5xc-description-short": "Possibility to deactivate credential with no deletion.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "create_timestamp": { "type": "string", "description": "Create time of API credential.", "title": "Create timestamp", "format": "date-time", "x-displayname": "Creation Time.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "format": "date-time", "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "expiry_timestamp": { "type": "string", "description": "Expiry time of credential.", "title": "Expiry time", "format": "date-time", "x-displayname": "Expiry Time.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "format": "date-time", "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "name": { "type": "string", "description": "Name of API credential object.", "title": "Credential name", "x-displayname": "Name", "x-ves-example": "Value", "x-f5xc-example": "value", "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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" }, "namespace": { "type": "string", "description": "Namespace of API credential object.", "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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" }, "namespace_access": { "allOf": [ { "$ref": "#/components/schemas/schemaNamespaceAccessType" } ], "x-f5xc-example": "example-resource", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "type": { "allOf": [ { "$ref": "#/components/schemas/api_credentialAPICredentialType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "uid": { "type": "string", "description": "UUID of API credential object.", "title": "uuid of the record", "x-displayname": "UUID", "x-ves-example": "00000000-0000-4000-8000-676e83e049e2.", "x-f5xc-example": "00000000-0000-4000-8000-676e83e049e2", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "user_email": { "type": "string", "description": "User email of user that requested credential .", "title": "Email of user", "x-displayname": "User", "x-ves-example": "Admin@example.com.", "x-f5xc-example": "admin@example.com", "x-f5xc-description-short": "User email of user that requested credential .", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "user_group_names": { "type": "array", "description": "User group list associated to this service credential.", "title": "User Groups Names", "items": { "type": "string" }, "x-displayname": "User Groups.", "x-ves-example": "[\"dev-group-1\"]", "x-f5xc-example": "\"[\"dev-group-1\"]\"", "x-f5xc-description-short": "User group list associated to this service credential.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Each item of service credential list request.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for api_credentialListServiceCredentialsResponseItem", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_credentialListServiceCredentialsResponseItem\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "API credentials are platform-level identity" }, "classification": { "category": "identity", "multi_tenant_pattern": "none" } } }, "api_credentialNameSelector": { "type": "object", "description": "Revoke Credentials by their names.", "title": "Name Selector", "x-displayname": "Name Selector.", "x-ves-proto-message": "ves.io.schema.api_credential.NameSelector", "properties": { "names": { "type": "array", "description": "It contains the names of credentials which needs to be deleted.", "title": "name of api credential", "minItems": 1, "maxItems": 200, "items": { "type": "string" }, "x-displayname": "Name of API Credentials.", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.repeated.max_items": "200", "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": "200", "ves.io.schema.rules.repeated.min_items": "1", "ves.io.schema.rules.repeated.unique": "true" }, "x-f5xc-example": "example-resource", "x-f5xc-description-short": "It contains the names of credentials which needs to be deleted.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "minItems": 1, "maxItems": 200, "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for api_credentialNameSelector", "required_fields": [ "names" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_credentialNameSelector\nmetadata:\n name: example\n namespace: default\nspec:\n names: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"names\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "API credentials are platform-level identity" }, "classification": { "category": "identity", "multi_tenant_pattern": "none" } } }, "api_credentialObject": { "type": "object", "description": "API Credential object represents the user request to create a certificate.", "title": "API Credentials", "x-displayname": "Credentials.", "x-ves-proto-message": "ves.io.schema.api_credential.Object", "properties": { "metadata": { "allOf": [ { "$ref": "#/components/schemas/schemaObjectMetaType" } ], "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "spec": { "allOf": [ { "$ref": "#/components/schemas/api_credentialSpecType" } ], "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "system_metadata": { "allOf": [ { "$ref": "#/components/schemas/schemaSystemObjectMetaType__ves_io_schema_api_credential" } ], "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "API Credential object represents the user request to create a certificate.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for api_credentialObject", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_credentialObject\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "API credentials are platform-level identity" }, "classification": { "category": "identity", "multi_tenant_pattern": "none" } } }, "api_credentialRecreateScimTokenRequest": { "type": "object", "description": "RecreateScimTokenRequest is the request format for generating SCIM API credential.", "title": "Recreate SCIM Token Request", "x-displayname": "Recreate SCIM Token Request.", "x-ves-proto-message": "ves.io.schema.api_credential.RecreateScimTokenRequest", "properties": { "expiration_days": { "type": "integer", "description": "Qty of days of service credential expiration. Default value is 180.\nExpiration days value can range between 1 and 730.", "title": "Expiry in days", "format": "int64", "x-displayname": "Expiry in days.", "x-ves-example": "Value", "x-ves-validation-rules": { "ves.io.schema.rules.uint32.gte": "1", "ves.io.schema.rules.uint32.lte": "730" }, "x-f5xc-example": "value", "x-validation-rules": { "ves.io.schema.rules.uint32.gte": "1", "ves.io.schema.rules.uint32.lte": "730" }, "x-f5xc-description-short": "Qty of days of service credential expiration. Default value is 180.", "x-f5xc-description-medium": "Qty of days of service credential expiration. Default value is 180. Expiration days value can range between 1 and 730.", "x-f5xc-constraints": { "constraintType": "number", "category": "discovery", "minimum": 1, "maximum": 730, "deterministic": true, "metadata": { "source": "api-probed", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "namespace": { "type": "string", "description": "Value of namespace is always \"system\".", "title": "Namespace", "x-displayname": "Namespace", "x-ves-example": "Value", "x-f5xc-example": "value", "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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" } }, "x-f5xc-description-short": "RecreateScimTokenRequest is the request format for generating SCIM API credential.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for api_credentialRecreateScimTokenRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_credentialRecreateScimTokenRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "API credentials are platform-level identity" }, "classification": { "category": "identity", "multi_tenant_pattern": "none" } } }, "api_credentialRenewRequest": { "type": "object", "description": "Request to renew a credential object.", "title": "Renew Credential request", "x-displayname": "Renew Credentials.", "x-ves-proto-message": "ves.io.schema.api_credential.RenewRequest", "properties": { "expiration_days": { "type": "integer", "description": "Qty of days of service credential expiration.", "title": "Expiry in days", "format": "int64", "x-displayname": "Expiry in days.", "x-ves-example": "Value", "x-f5xc-example": "value", "x-f5xc-description-short": "Qty of days of service credential expiration.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "name": { "type": "string", "description": "Name of API credential object.", "title": "Credential name", "x-displayname": "Name", "x-ves-example": "API-cred-00000000-0000-4000-8000-c725f8541661.", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true" }, "x-f5xc-example": "api-cred-00000000-0000-4000-8000-c725f8541661", "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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" }, "namespace": { "type": "string", "description": "Value of namespace is always \"system\" .", "title": "Namespace", "x-displayname": "Namespace", "x-ves-example": "System", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true" }, "x-f5xc-example": "system", "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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for api_credentialRenewRequest", "required_fields": [ "name", "namespace" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_credentialRenewRequest\nmetadata:\n name: example\n namespace: default\nspec:\n name: value\n namespace: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"name\": \"value\",\n \"namespace\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "API credentials are platform-level identity" }, "classification": { "category": "identity", "multi_tenant_pattern": "none" } } }, "api_credentialReplaceServiceCredentialsRequest": { "type": "object", "description": "Request format for replacing service credentials.", "title": "Replace Service Credentials Request", "x-displayname": "Replace Service Credentials Request.", "x-ves-proto-message": "ves.io.schema.api_credential.ReplaceServiceCredentialsRequest", "properties": { "name": { "type": "string", "description": "Name of service credential object.", "title": "Service Credential name", "x-displayname": "Name", "x-ves-example": "API-cred-00000000-0000-4000-8000-c725f8541661.", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true" }, "x-f5xc-example": "api-cred-00000000-0000-4000-8000-c725f8541661", "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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" }, "namespace": { "type": "string", "description": "Namespace of the service credential user.\nValue of namespace is always \"system\".", "title": "namespace", "x-displayname": "Namespace", "x-ves-example": "System", "x-f5xc-example": "system", "x-f5xc-description-short": "Namespace of the service credential user. Value of namespace is always \"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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" }, "namespace_access": { "allOf": [ { "$ref": "#/components/schemas/schemaNamespaceAccessType" } ], "x-f5xc-example": "example-resource", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "user_group_names": { "type": "array", "description": "List of user_groups to be replaced for this service credentials.", "title": "User Groups Names", "items": { "type": "string" }, "x-displayname": "Groups", "x-ves-example": "[\"dev-group-1\"]", "x-f5xc-example": "\"[\"dev-group-1\"]\"", "x-f5xc-description-short": "List of user_groups to be replaced for this service credentials.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Request format for replacing service credentials.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for api_credentialReplaceServiceCredentialsRequest", "required_fields": [ "name" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_credentialReplaceServiceCredentialsRequest\nmetadata:\n name: example\n namespace: default\nspec:\n name: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"name\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "API credentials are platform-level identity" }, "classification": { "category": "identity", "multi_tenant_pattern": "none" } } }, "api_credentialReplaceServiceCredentialsResponse": { "type": "object", "description": "Response format for the credential's replace request.", "title": "Replace service credentials response", "x-displayname": "Replace service credentials response.", "x-ves-proto-message": "ves.io.schema.api_credential.ReplaceServiceCredentialsResponse", "properties": { "active": { "type": "boolean", "description": "Specifies if service credential is active or not.", "title": "Active", "format": "boolean", "x-displayname": "Active", "x-ves-example": "True", "x-f5xc-example": "true", "x-f5xc-description-short": "Specifies if service credential is active or not.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "expiration_timestamp": { "type": "string", "description": "Specifies the expiration timestamp.", "title": "Expiry", "format": "date-time", "x-displayname": "Expiry", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "format": "date-time", "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "name": { "type": "string", "description": "Name of API credential record.", "title": "Name", "x-displayname": "Name", "x-ves-example": "Svc-cred-app1.", "x-f5xc-example": "svc-cred-app1", "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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" } }, "x-f5xc-description-short": "Response format for the credential's replace request.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for api_credentialReplaceServiceCredentialsResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_credentialReplaceServiceCredentialsResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "API credentials are platform-level identity" }, "classification": { "category": "identity", "multi_tenant_pattern": "none" } } }, "api_credentialScimTokenRequest": { "type": "object", "description": "ScimTokenRequest is used for fetching or revoking scim token.", "title": "Scim Token Request", "x-displayname": "Scim Token Request.", "x-ves-proto-message": "ves.io.schema.api_credential.ScimTokenRequest", "properties": { "namespace": { "type": "string", "description": "Value of namespace is always \"system\".", "title": "Namespace", "x-displayname": "Namespace", "x-ves-example": "System", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true" }, "x-f5xc-example": "system", "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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" } }, "x-f5xc-description-short": "ScimTokenRequest is used for fetching or revoking scim token.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for api_credentialScimTokenRequest", "required_fields": [ "namespace" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_credentialScimTokenRequest\nmetadata:\n name: example\n namespace: default\nspec:\n namespace: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"namespace\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "API credentials are platform-level identity" }, "classification": { "category": "identity", "multi_tenant_pattern": "none" } } }, "api_credentialSiteKubeconfigType": { "type": "object", "description": "Site Global Kube Config parameters.", "title": "site_kubeconfig", "x-displayname": "Site Global Kube Config Specification.", "x-ves-proto-message": "ves.io.schema.api_credential.SiteKubeconfigType", "properties": { "site": { "type": "string", "description": "Name of the site for which kubeconfig is being requested.", "title": "Site", "minLength": 1, "maxLength": 64, "x-displayname": "Site", "x-ves-example": "Ce398", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.string.max_bytes": "64", "ves.io.schema.rules.string.min_bytes": "1" }, "x-f5xc-example": "ce398", "x-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.string.max_bytes": "64", "ves.io.schema.rules.string.min_bytes": "1" }, "x-f5xc-description-short": "Name of the site for which kubeconfig is being requested.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "minLength": 1, "maxLength": 64, "byteLength": { "max": 64, "min": 1 }, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for api_credentialSiteKubeconfigType", "required_fields": [ "site" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_credentialSiteKubeconfigType\nmetadata:\n name: example\n namespace: default\nspec:\n site: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"site\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "API credentials are platform-level identity" }, "classification": { "category": "identity", "multi_tenant_pattern": "none" } } }, "api_credentialSpecType": { "type": "object", "description": "Shape of the API credential specification.", "title": "Specification for API credentials", "x-displayname": "Specifications.", "x-ves-proto-message": "ves.io.schema.api_credential.SpecType", "properties": { "gc_spec": { "allOf": [ { "$ref": "#/components/schemas/api_credentialGlobalSpecType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Shape of the API credential specification.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for api_credentialSpecType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_credentialSpecType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "API credentials are platform-level identity" }, "classification": { "category": "identity", "multi_tenant_pattern": "none" } } }, "api_credentialStatusResponse": { "type": "object", "description": "API credential status response.", "title": "API credential status response", "x-displayname": "API credential status response.", "x-ves-proto-message": "ves.io.schema.api_credential.StatusResponse", "properties": { "status": { "type": "boolean", "description": "Result status flag.", "title": "Status", "format": "boolean", "x-displayname": "Status", "x-ves-example": "True", "x-f5xc-example": "true", "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-08-20T09:12:47+00:00" } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for api_credentialStatusResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_credentialStatusResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "API credentials are platform-level identity" }, "classification": { "category": "identity", "multi_tenant_pattern": "none" } } }, "api_credentialVk8sKubeconfigType": { "type": "object", "description": "Service Kube Config parameters.", "title": "vk8s_kubeconfig", "x-displayname": "Service Kube Config Specification.", "x-ves-proto-message": "ves.io.schema.api_credential.Vk8sKubeconfigType", "properties": { "vk8s_cluster_name": { "type": "string", "description": "Name of virtual K8s cluster.", "title": "virtual k8s cluster name", "x-displayname": "VK8s Cluster.", "x-ves-example": "Vk8s-product-app1.", "x-ves-validation-rules": { "ves.io.schema.rules.string.ves_object_name": "true" }, "x-f5xc-example": "vk8s-product-app1", "x-validation-rules": { "ves.io.schema.rules.string.ves_object_name": "true" }, "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 1024, "format": "dns-label", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$", "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" }, "vk8s_namespace": { "type": "string", "description": "Namespace of virtual K8s cluster. Applicable for KUBE_CONFIG.", "title": "Virtual k8s namespace", "x-displayname": "VK8s Namespace.", "x-ves-example": "App-ns1", "x-ves-validation-rules": { "ves.io.schema.rules.string.ves_object_name": "true" }, "x-f5xc-example": "app-ns1", "x-validation-rules": { "ves.io.schema.rules.string.ves_object_name": "true" }, "x-f5xc-description-short": "Namespace of virtual K8s cluster. Applicable for KUBE_CONFIG.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 1024, "format": "dns-label", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$", "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for api_credentialVk8sKubeconfigType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_credentialVk8sKubeconfigType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "API credentials are platform-level identity" }, "classification": { "category": "identity", "multi_tenant_pattern": "none" } } }, "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_yaml": "# Minimal example for schemaEmpty\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "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": "none" } } }, "schemaNamespaceAccessType": { "type": "object", "description": "Access info in the namespaces for the entity.", "title": "Namespace Access", "x-displayname": "Namespace Access.", "x-ves-proto-message": "ves.io.schema.NamespaceAccessType", "properties": { "namespace_role_map": { "type": "object", "description": "List of all the roles for the entity in the namespaces.", "title": "Namespace Role Map", "x-displayname": "Namespace Role Map.", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.map.keys.string.max_len": "256", "ves.io.schema.rules.message.required": "true" }, "x-f5xc-example": "' []'", "x-validation-rules": { "ves.io.schema.rules.map.keys.string.max_len": "256", "ves.io.schema.rules.message.required": "true" }, "x-f5xc-description-short": "List of all the roles for the entity in the namespaces.", "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } } }, "x-f5xc-description-short": "Access info in the namespaces for the entity.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for schemaNamespaceAccessType", "required_fields": [ "namespace_role_map" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemaNamespaceAccessType\nmetadata:\n name: example\n namespace: default\nspec:\n namespace_role_map: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"namespace_role_map\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "tenant_and_identity", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Namespace management is platform-level administration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "schemaNamespaceRoleType": { "type": "object", "description": "Allows linking namespaces and roles.", "title": "Namespace role", "x-displayname": "Namespace Role.", "x-ves-proto-message": "ves.io.schema.NamespaceRoleType", "properties": { "namespace": { "type": "string", "description": "Namespace the role applies to\n'*' value implies all namespaces.", "title": "Namespace", "maxLength": 256, "x-displayname": "Namespace", "x-ves-example": "Ns1", "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": "ns1", "x-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.string.max_len": "256" }, "x-f5xc-description-short": "Namespace the role applies to '*' value implies all namespaces.", "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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" }, "role": { "type": "string", "description": "Users role for this namespace.", "title": "Role", "maxLength": 256, "x-displayname": "Role", "x-ves-example": "VES-I/O-monitor-role.", "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.ves_object_name": "true" }, "x-f5xc-example": "ves-io-monitor-role", "x-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.string.max_len": "256", "ves.io.schema.rules.string.ves_object_name": "true" }, "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 256, "format": "dns-label", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$", "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false }, "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for schemaNamespaceRoleType", "required_fields": [ "namespace", "role" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemaNamespaceRoleType\nmetadata:\n name: example\n namespace: default\nspec:\n namespace: value\n role: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"namespace\": \"value\",\n \"role\": \"value\"\n }\n}" }, "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": "identity", "multi_tenant_pattern": "per-tenant" } } }, "schemaObjectMetaType": { "type": "object", "description": "ObjectMetaType is metadata(common attributes) of an object that all configuration objects will have.\nThe information in this type can be specified by user during create and replace APIs.", "title": "ObjectMetaType", "x-displayname": "Metadata", "x-ves-proto-message": "ves.io.schema.ObjectMetaType", "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" }, "additionalProperties": { "type": "string" }, "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-08-20T09:12:47+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-08-20T09:12:47+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", "additionalProperties": { "type": "string" }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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. Object create will fail if\nprovided by the client and the value exists in the system. Typically generated by the\nserver on successful creation of an object and is not allowed to change once populated.\nShadowed by SystemObjectMeta's uid field.", "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. Object create will fail if provided by the client and the value exists in the system.", "x-f5xc-description-medium": "Uid is the unique in time and space value for this object. Object create will fail if provided by the client and the value exists in the system. Typically generated by the server on successful creation of an object and is not allowed to change once populated.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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-08-20T09:12:47+00:00" } }, "x-f5xc-description-short": "ObjectMetaType is metadata(common attributes) of an object that all configuration objects will have.", "x-f5xc-description-medium": "ObjectMetaType is metadata(common attributes) of an object that all configuration objects will have. The information in this type can be specified by user during create and replace APIs.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for schemaObjectMetaType", "required_fields": [ "name" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemaObjectMetaType\nmetadata:\n name: example\n namespace: default\nspec:\n name: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"name\": \"value\"\n }\n}" }, "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": "none" } } }, "schemaSystemObjectMetaType__ves_io_schema_api_credential": { "type": "object", "description": "SystemObjectMetaType is metadata generated or populated by the system for all persisted objects and\ncannot be updated directly by users.", "title": "SystemObjectMetaType", "x-displayname": "System Metadata.", "x-ves-proto-message": "ves.io.schema.SystemObjectMetaType", "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "readOnly": true, "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": "Value", "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "readOnly": true, "x-field-mutability": "read-only" }, "creator_cookie": { "type": "string", "description": "This can used by the creator of the object for later audit for e.g. By storing the\nversion identifying information of the object so at future it can be determined if\nversion present at remote end is current or stale.", "title": "creator_cookie", "x-displayname": "Creator Cookie.", "x-ves-example": "Value", "x-f5xc-example": "value", "x-f5xc-description-short": "Can used by the creator of the object for later audit for e.g.", "x-f5xc-description-medium": "Can used by the creator of the object for later audit for e.g. By storing the version identifying information of the object so at future it can be determined if version present at remote end is current or stale.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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": "Value", "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "readOnly": true, "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "direct_ref_hash": { "type": "string", "description": "A hash of the UIDs of direct references on this object. This can be used to determine if\nthis object hash has had references become resolved/unresolved.", "title": "direct_ref_hash", "x-displayname": "Direct Reference Hash.", "x-f5xc-description-short": "Hash of the UIDs of direct references on this object. This can be used to determine if this object hash has had references become resolved/unresolved.", "x-f5xc-description-medium": "Hash of the UIDs of direct references on this object. This can be used to determine if this object hash has had references become resolved/unresolved.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "readOnly": true, "x-field-mutability": "read-only" }, "namespace": { "type": "array", "description": "The namespace this object belongs to. This is populated by the service based on the\nmetadata.namespace field when an object is created.", "title": "namespace", "maxItems": 1, "items": { "$ref": "#/components/schemas/schemaObjectRefType" }, "x-displayname": "Namespace 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-example": "example-resource", "x-f5xc-description-short": "The namespace this object belongs to. This is populated by the service based on the metadata.namespace field when an object is created.", "x-f5xc-description-medium": "The namespace this object belongs to. This is populated by the service based on the metadata.namespace field when an object is created.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 1, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "maxLength": 6, "minLength": 6, "x-reconciled-from-discovery": true, "x-reconciled-at": "2026-08-20T09:12:47+00:00" }, "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 }, "readOnly": true, "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" } ] }, "revision": { "type": "string", "description": "A revision number which always increases with each modification of the object in storage\nThis doesn't necessarily increase sequentially, but should always increase.\nThis will be 0 when first created, and before any modifications.", "title": "revision", "format": "int64", "x-displayname": "Revision", "x-f5xc-description-short": "Revision number which always increases with each modification of the object in storage This doesn't necessarily increase sequentially, but should...", "x-f5xc-description-medium": "Revision number which always increases with each modification of the object in storage This doesn't necessarily increase sequentially, but should always increase. This will be 0 when first created, and before any modifications.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "format": "int64", "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "sre_disable": { "type": "boolean", "description": "This should be set to true If F5XC/SRE operator wants to suppress an object from being\npresented to business-logic of a daemon(e.g. Due to bad-form/issue-causing Object).\nThis is meant only to be used in temporary situations for operational continuity till\na fix is rolled out in business-logic.", "title": "sre_disable", "format": "boolean", "x-displayname": "SRE Disable.", "x-ves-example": "True", "x-f5xc-example": "true", "x-f5xc-description-short": "Should be set to true If F5XC/SRE operator wants to suppress an object from being presented to business-logic of a daemon(e.g.", "x-f5xc-description-medium": "Should be set to true If F5XC/SRE operator wants to suppress an object from being presented to business-logic of a daemon(e.g. Due to bad-form/issue-causing Object). This is meant only to be used in temporary situations for operational continuity till a fix is rolled out in business-logic.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "trace_info": { "type": "string", "description": "Trace_info holds information(::) of the request doing\nthe object modification. This can be used on the watch side to create subsequent spans.\nThis information can be used to co-relate activities across services (modulo state compression)\nfor a synchronous API.", "title": "trace_info", "x-displayname": "Trace Info.", "x-ves-example": "Value", "x-f5xc-example": "value", "x-f5xc-description-short": "Trace_info holds information(::) of the request doing the object modification.", "x-f5xc-description-medium": "Trace_info holds information(::) of the request doing the object modification. This can be used on the watch side to create subsequent spans. This information can be used to co-relate activities across services (modulo state compression) for a synchronous API.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "vtrp_id": { "type": "string", "description": "Indicate origin of this object.", "title": "vtrp_id", "x-displayname": "VTRP ID", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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": "SystemObjectMetaType is metadata generated or populated by the system for all persisted objects and cannot be updated directly by users.", "x-f5xc-description-medium": "SystemObjectMetaType 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 schemaSystemObjectMetaType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemaSystemObjectMetaType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "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": "none" } } }, "app_api_groupApiEndpoint": { "type": "object", "description": "The API Endpoint according to OpenAPI specification.", "title": "Api Endpoint", "x-displayname": "API Endpoint.", "x-ves-proto-message": "ves.io.schema.views.app_api_group.ApiEndpoint", "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-08-20T09:12:47+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": "The API Endpoint according to OpenAPI specification.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for app_api_groupApiEndpoint", "required_fields": [ "path" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for app_api_groupApiEndpoint\nmetadata:\n name: example\n namespace: default\nspec:\n path: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"path\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "api", "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" } } }, "app_api_groupApiGroupId": { "type": "object", "description": "The API Group ID for the API Groups stats response.", "title": "API Group ID", "x-displayname": "API Group ID.", "x-ves-proto-message": "ves.io.schema.views.app_api_group.ApiGroupId", "properties": { "name": { "type": "string", "description": "Name of the API Group.", "title": "Name", "x-displayname": "Name", "x-ves-example": "Sensitive", "x-f5xc-example": "sensitive", "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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" }, "namespace": { "type": "string", "description": "Namespace of the API Group.", "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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" } }, "x-f5xc-description-short": "The API Group ID for the API Groups stats response.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for app_api_groupApiGroupId", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for app_api_groupApiGroupId\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "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" } } }, "app_api_groupApiGroupScopeBIGIPVirtualServer": { "type": "object", "description": "Set the scope of the API Group to a specific BIG-IP Virtual Server.", "title": "ApiGroupScopeBIGIPVirtualServer", "x-displayname": "API Group Scope BIG-IP Virtual Server.", "x-ves-proto-message": "ves.io.schema.views.app_api_group.ApiGroupScopeBIGIPVirtualServer", "properties": { "bigip_virtual_server": { "allOf": [ { "$ref": "#/components/schemas/schemaviewsObjectRefType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-references": [ { "resource_kind": "bigip_virtual_server", "field_path": "bigip_virtual_server", "gated_by": null, "required": false, "cardinality": "single" } ] } }, "x-f5xc-description-short": "Set the scope of the API Group to a specific BIG-IP Virtual Server.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for app_api_groupApiGroupScopeBIGIPVirtualServer", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for app_api_groupApiGroupScopeBIGIPVirtualServer\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "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" } } }, "app_api_groupApiGroupScopeCDNLoadbalancer": { "type": "object", "description": "Set the scope of the API Group to a specific CDN Loadbalancer.", "title": "ApiGroupScopeCdnLoadbalancer", "x-displayname": "API Group Scope CDN Loadbalancer.", "x-ves-proto-message": "ves.io.schema.views.app_api_group.ApiGroupScopeCDNLoadbalancer", "properties": { "cdn_loadbalancer": { "allOf": [ { "$ref": "#/components/schemas/schemaviewsObjectRefType" } ], "x-f5xc-description-short": "Configuration parameter for cdn loadbalancer.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-references": [ { "resource_kind": "cdn_loadbalancer", "field_path": "cdn_loadbalancer", "gated_by": null, "required": false, "cardinality": "single" } ] } }, "x-f5xc-description-short": "Set the scope of the API Group to a specific CDN Loadbalancer.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for app_api_groupApiGroupScopeCDNLoadbalancer", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for app_api_groupApiGroupScopeCDNLoadbalancer\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "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" } } }, "app_api_groupApiGroupScopeHttpLoadbalancer": { "type": "object", "description": "Set the scope of the API Group to a specific HTTP Loadbalancer.", "title": "ApiGroupScopeHttpLoadbalancer", "x-displayname": "API Group Scope HTTP Loadbalancer.", "x-ves-proto-message": "ves.io.schema.views.app_api_group.ApiGroupScopeHttpLoadbalancer", "properties": { "http_loadbalancer": { "allOf": [ { "$ref": "#/components/schemas/schemaviewsObjectRefType" } ], "x-f5xc-description-short": "Configuration parameter for http loadbalancer.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-references": [ { "resource_kind": "http_load_balancer", "field_path": "http_loadbalancer", "gated_by": null, "required": false, "cardinality": "single" } ] } }, "x-f5xc-description-short": "Set the scope of the API Group to a specific HTTP Loadbalancer.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for app_api_groupApiGroupScopeHttpLoadbalancer", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for app_api_groupApiGroupScopeHttpLoadbalancer\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "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" } } }, "app_api_groupApiGroupStats": { "type": "object", "description": "The API Group Stats for the API Groups stats response.", "title": "API Group Stats", "x-displayname": "API Group Stats.", "x-ves-proto-message": "ves.io.schema.views.app_api_group.ApiGroupStats", "properties": { "outdated_api_endpoints_count": { "type": "integer", "description": "Number of outdated API Endpoints is the difference in the stored API Group contents and\nthe contents if it be evaluated against current state.", "title": "outdated_api_endpoints_count", "format": "int64", "x-displayname": "Outdated API Endpoints Count.", "x-ves-example": "5", "x-f5xc-example": "5", "x-f5xc-description-short": "Number of outdated API Endpoints is the difference in the stored API Group contents and the contents if it be evaluated against current state.", "x-f5xc-description-medium": "Number of outdated API Endpoints is the difference in the stored API Group contents and the contents if it be evaluated against current state.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "The API Group Stats for the API Groups stats response.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for app_api_groupApiGroupStats", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for app_api_groupApiGroupStats\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "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" } } }, "app_api_groupApiGroupsStatsItem": { "type": "object", "description": "API Groups Stats Item.", "title": "API Groups Stats Item", "x-displayname": "API Groups Stats Item.", "x-ves-proto-message": "ves.io.schema.views.app_api_group.ApiGroupsStatsItem", "properties": { "id": { "allOf": [ { "$ref": "#/components/schemas/app_api_groupApiGroupId" } ], "x-f5xc-example": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "stats": { "allOf": [ { "$ref": "#/components/schemas/app_api_groupApiGroupStats" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for app_api_groupApiGroupsStatsItem", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for app_api_groupApiGroupsStatsItem\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "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" } } }, "app_api_groupCreateRequest": { "type": "object", "description": "This is the input message of the 'Create' RPC.", "title": "CreateRequest is used to create an instance of app_api_group", "x-displayname": "Create Request.", "x-ves-proto-message": "ves.io.schema.views.app_api_group.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/viewsapp_api_groupCreateSpecType" } ], "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_api_groupCreateRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for app_api_groupCreateRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "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" } } }, "app_api_groupCreateResponse": { "type": "object", "x-ves-proto-message": "ves.io.schema.views.app_api_group.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/viewsapp_api_groupGetSpecType" } ], "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_api_groupCreateResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for app_api_groupCreateResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "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" } } }, "app_api_groupDeleteRequest": { "type": "object", "description": "This is the input message of the 'DELETE' RPC.", "title": "DeleteRequest is used to delete a app_api_group", "x-displayname": "DELETE Request.", "x-ves-proto-message": "ves.io.schema.views.app_api_group.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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for app_api_groupDeleteRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for app_api_groupDeleteRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "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" } } }, "app_api_groupEvaluateApiGroupReq": { "type": "object", "description": "Request shape for Evaluate API Group.", "title": "Evaluate API Group Request", "x-displayname": "Evaluate API Group Request.", "x-ves-proto-message": "ves.io.schema.views.app_api_group.EvaluateApiGroupReq", "properties": { "api_group": { "allOf": [ { "$ref": "#/components/schemas/viewsapp_api_groupGlobalSpecType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "namespace": { "type": "string", "description": "Namespace of the API Group for the current request.", "title": "Namespace", "x-displayname": "Namespace", "x-ves-example": "Shared", "x-f5xc-example": "shared", "x-f5xc-description-short": "Namespace of the API Group 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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for app_api_groupEvaluateApiGroupReq", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for app_api_groupEvaluateApiGroupReq\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "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" } } }, "app_api_groupEvaluateApiGroupRsp": { "type": "object", "description": "Response for the Evaluate API Group request.", "title": "Evaluate API Group Response", "x-displayname": "Evaluate API Group Response.", "x-ves-proto-message": "ves.io.schema.views.app_api_group.EvaluateApiGroupRsp", "properties": { "api_group": { "allOf": [ { "$ref": "#/components/schemas/viewsapp_api_groupGlobalSpecType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "apieps_timestamp": { "type": "string", "description": "The API endpoints timestamp indicates when the most recent update of API endpoints happened\nFor example, if the referenced object is HTTP LB then the API Discovery periodically updates\nthe 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 when the most recent update of API endpoints happened For example, if the referenced object is HTTP LB then...", "x-f5xc-description-medium": "The API endpoints timestamp indicates when the most recent update of API endpoints happened For example, if the referenced object is HTTP LB then 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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "matching_api_endpoints": { "type": "array", "description": "List of API Endpoints matched by the query expression.\nThe paths appear here with parameters as defined in OpenAPI spec file.", "title": "matching_api_endpoints", "items": { "$ref": "#/components/schemas/app_api_groupApiEndpoint" }, "x-displayname": "Matching API Endpoints.", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "List of API Endpoints matched by the query expression. The paths appear here with parameters as defined in OpenAPI spec file.", "x-f5xc-description-medium": "List of API Endpoints matched by the query expression. The paths appear here with parameters as defined in OpenAPI spec file.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Response for the Evaluate API Group request.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for app_api_groupEvaluateApiGroupRsp", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for app_api_groupEvaluateApiGroupRsp\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "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" } } }, "app_api_groupGetApiGroupsStatsReq": { "type": "object", "description": "Request shape for API Groups Stats.", "title": "API Groups Stats Request", "x-displayname": "API Groups Stats Request.", "x-ves-proto-message": "ves.io.schema.views.app_api_group.GetApiGroupsStatsReq", "properties": { "namespace": { "type": "string", "description": "Namespace of the API Group for the current request.", "title": "Namespace", "x-displayname": "Namespace", "x-ves-example": "Shared", "x-f5xc-example": "shared", "x-f5xc-description-short": "Namespace of the API Group 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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for app_api_groupGetApiGroupsStatsReq", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for app_api_groupGetApiGroupsStatsReq\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "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" } } }, "app_api_groupGetApiGroupsStatsRsp": { "type": "object", "description": "Response for the API Groups Stats request.", "title": "API Groups Stats Response", "x-displayname": "API Groups Stats Response.", "x-ves-proto-message": "ves.io.schema.views.app_api_group.GetApiGroupsStatsRsp", "properties": { "items": { "type": "array", "description": "A list of API Groups stats, where each item contains an API Group ID and stats.", "title": "items", "items": { "$ref": "#/components/schemas/app_api_groupApiGroupsStatsItem" }, "x-displayname": "API Groups Stats.", "x-f5xc-example": "[\"item1\", \"item2\", \"item3\"]", "x-f5xc-description-short": "List of API Groups stats, where each item contains an API Group ID and stats.", "x-f5xc-constraints": { "constraintType": "array", "category": "general", "minItems": 0, "maxItems": 256, "uniqueItems": false, "metadata": { "source": "inferred", "confidence": 0.7, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Response for the API Groups Stats request.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for app_api_groupGetApiGroupsStatsRsp", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for app_api_groupGetApiGroupsStatsRsp\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "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" } } }, "app_api_groupGetResponse": { "type": "object", "description": "This is the output message of the 'GET' RPC.", "title": "GetResponse is the shape of a read app_api_group", "x-displayname": "GET Response.", "x-ves-proto-message": "ves.io.schema.views.app_api_group.GetResponse", "properties": { "create_form": { "allOf": [ { "$ref": "#/components/schemas/app_api_groupCreateRequest" } ], "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/app_api_groupReplaceRequest" } ], "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/viewsapp_api_groupGetSpecType" } ], "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_api_groupStatusObject" }, "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-08-20T09:12:47+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_api_groupGetResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for app_api_groupGetResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "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" } } }, "app_api_groupListResponse": { "type": "object", "description": "This is the output message of 'List' RPC.", "title": "ListResponse is the collection of app_api_group", "x-displayname": "List Response.", "x-ves-proto-message": "ves.io.schema.views.app_api_group.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_api_groupListResponseItem" }, "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for app_api_groupListResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for app_api_groupListResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "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" } } }, "app_api_groupListResponseItem": { "type": "object", "description": "By default a summary of app_api_group 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_api_group", "x-displayname": "List Item", "x-ves-proto-message": "ves.io.schema.views.app_api_group.ListResponseItem", "properties": { "annotations": { "type": "object", "description": "The set of annotations present on this app_api_group.", "title": "annotations", "x-displayname": "Annotations.", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "The set of annotations present on this app_api_group.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "description": { "type": "string", "description": "The description set for this app_api_group.", "title": "description", "x-displayname": "Description.", "x-f5xc-description-short": "The description set for this app_api_group.", "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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "disabled": { "type": "boolean", "description": "A value of true indicates app_api_group is administratively disabled.", "title": "disabled", "format": "boolean", "x-displayname": "Disabled", "x-f5xc-example": "True", "x-f5xc-description-short": "Value of true indicates app_api_group is administratively disabled.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "get_spec": { "allOf": [ { "$ref": "#/components/schemas/viewsapp_api_groupGetSpecType" } ], "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_api_group.", "title": "labels", "x-displayname": "Labels", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "The set of labels present on this app_api_group.", "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 app_api_group.", "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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/app_api_groupStatusObject" }, "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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "uid": { "type": "string", "description": "The unique uid of this app_api_group.", "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-08-20T09:12:47+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-08-20T09:12:47+00:00" } }, "x-f5xc-description-short": "By default a summary of app_api_group 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_api_group 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_api_groupListResponseItem", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for app_api_groupListResponseItem\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "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" } } }, "app_api_groupReplaceRequest": { "type": "object", "description": "This is the input message of the 'Replace' RPC.", "title": "ReplaceRequest is used to replace contents of a app_api_group", "x-displayname": "Replace Request.", "x-ves-proto-message": "ves.io.schema.views.app_api_group.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/viewsapp_api_groupReplaceSpecType" } ], "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_api_groupReplaceRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for app_api_groupReplaceRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "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" } } }, "app_api_groupReplaceResponse": { "type": "object", "x-ves-proto-message": "ves.io.schema.views.app_api_group.ReplaceResponse", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for app_api_groupReplaceResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for app_api_groupReplaceResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "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" } } }, "app_api_groupStatusObject": { "type": "object", "description": "Most recently observed status of object.", "title": "Status of API group", "x-displayname": "Status", "x-ves-proto-message": "ves.io.schema.views.app_api_group.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 app_api_groupStatusObject", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for app_api_groupStatusObject\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "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" } } }, "viewsapp_api_groupCreateSpecType": { "type": "object", "description": "Create app_api_group creates a new object in the storage backend for metadata.namespace.", "title": "Create app_api_group", "x-displayname": "Create API Group.", "x-ves-oneof-field-scope_choice": "[\"bigip_virtual_server\",\"cdn_loadbalancer\",\"http_loadbalancer\"]", "x-ves-proto-message": "ves.io.schema.views.app_api_group.CreateSpecType", "properties": { "bigip_virtual_server": { "allOf": [ { "$ref": "#/components/schemas/app_api_groupApiGroupScopeBIGIPVirtualServer" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "cdn_loadbalancer", "http_loadbalancer" ] }, "cdn_loadbalancer": { "allOf": [ { "$ref": "#/components/schemas/app_api_groupApiGroupScopeCDNLoadbalancer" } ], "x-f5xc-description-short": "Configuration parameter for cdn loadbalancer.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "bigip_virtual_server", "http_loadbalancer" ] }, "elements": { "type": "array", "description": "List of API group elements with methods and path regex for matching requests.", "maxItems": 5000, "items": { "$ref": "#/components/schemas/schemaapi_group_elementGlobalSpecType" }, "x-displayname": "API Group Elements.", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.repeated.max_items": "5000" }, "x-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.repeated.max_items": "5000" }, "x-f5xc-description-short": "List of API group elements with methods and path regex for matching requests.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 5000, "minItems": 0, "uniqueItems": false, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" }, "deterministic": true }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "http_loadbalancer": { "allOf": [ { "$ref": "#/components/schemas/app_api_groupApiGroupScopeHttpLoadbalancer" } ], "x-f5xc-description-short": "Configuration parameter for http loadbalancer.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "bigip_virtual_server", "cdn_loadbalancer" ] } }, "x-f5xc-description-short": "Create app_api_group creates a new object in the storage backend for metadata.namespace.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for viewsapp_api_groupCreateSpecType", "required_fields": [ "elements" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for viewsapp_api_groupCreateSpecType\nmetadata:\n name: example\n namespace: default\nspec:\n elements: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"elements\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-field-examples": { "spec.elements": "value" }, "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" } } }, "viewsapp_api_groupGetSpecType": { "type": "object", "description": "GET app_api_group reads a given object from storage backend for metadata.namespace.", "title": "Get app_api_group", "x-displayname": "GET API Group.", "x-ves-oneof-field-scope_choice": "[\"bigip_virtual_server\",\"cdn_loadbalancer\",\"http_loadbalancer\"]", "x-ves-proto-message": "ves.io.schema.views.app_api_group.GetSpecType", "properties": { "api_endpoints_count": { "type": "integer", "description": "Number of API Endpoints in the actual API Group.\nIf the lists included, matched, excluded are disjoint then the length is\nlen(included) + len(matched) - excluded.", "format": "int64", "x-displayname": "API Endpoints Count.", "x-ves-example": "25", "x-f5xc-example": "25", "x-f5xc-description-short": "Number of API Endpoints in the actual API Group.", "x-f5xc-description-medium": "Number of API Endpoints in the actual API Group. If the lists included, matched, excluded are disjoint then the length is len(included) + len(matched) - excluded.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "bigip_virtual_server": { "allOf": [ { "$ref": "#/components/schemas/app_api_groupApiGroupScopeBIGIPVirtualServer" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "cdn_loadbalancer", "http_loadbalancer" ] }, "cdn_loadbalancer": { "allOf": [ { "$ref": "#/components/schemas/app_api_groupApiGroupScopeCDNLoadbalancer" } ], "x-f5xc-description-short": "Configuration parameter for cdn loadbalancer.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "bigip_virtual_server", "http_loadbalancer" ] }, "elements": { "type": "array", "description": "List of API group elements with methods and path regex for matching requests.", "maxItems": 5000, "items": { "$ref": "#/components/schemas/schemaapi_group_elementGlobalSpecType" }, "x-displayname": "API Group Elements.", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.repeated.max_items": "5000" }, "x-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.repeated.max_items": "5000" }, "x-f5xc-description-short": "List of API group elements with methods and path regex for matching requests.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 5000, "minItems": 0, "uniqueItems": false, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" }, "deterministic": true }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "http_loadbalancer": { "allOf": [ { "$ref": "#/components/schemas/app_api_groupApiGroupScopeHttpLoadbalancer" } ], "x-f5xc-description-short": "Configuration parameter for http loadbalancer.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "bigip_virtual_server", "cdn_loadbalancer" ] } }, "x-f5xc-description-short": "GET app_api_group reads a given object from storage backend for metadata.namespace.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for viewsapp_api_groupGetSpecType", "required_fields": [ "elements" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for viewsapp_api_groupGetSpecType\nmetadata:\n name: example\n namespace: default\nspec:\n elements: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"elements\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "api", "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" } } }, "viewsapp_api_groupGlobalSpecType": { "type": "object", "description": "Shape of app_api_group in the storage backend.", "title": "GlobalSpecType", "x-displayname": "Specification.", "x-ves-oneof-field-scope_choice": "[\"bigip_virtual_server\",\"cdn_loadbalancer\",\"http_loadbalancer\"]", "x-ves-proto-message": "ves.io.schema.views.app_api_group.GlobalSpecType", "properties": { "api_endpoints_count": { "type": "integer", "description": "Number of API Endpoints in the actual API Group.\nIf the lists included, matched, excluded are disjoint then the length is\nlen(included) + len(matched) - excluded.", "title": "api_endpoints_count", "format": "int64", "x-displayname": "API Endpoints Count.", "x-ves-example": "25", "x-f5xc-example": "25", "x-f5xc-description-short": "Number of API Endpoints in the actual API Group.", "x-f5xc-description-medium": "Number of API Endpoints in the actual API Group. If the lists included, matched, excluded are disjoint then the length is len(included) + len(matched) - excluded.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "bigip_virtual_server": { "allOf": [ { "$ref": "#/components/schemas/app_api_groupApiGroupScopeBIGIPVirtualServer" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "cdn_loadbalancer", "http_loadbalancer" ] }, "cdn_loadbalancer": { "allOf": [ { "$ref": "#/components/schemas/app_api_groupApiGroupScopeCDNLoadbalancer" } ], "x-f5xc-description-short": "Configuration parameter for cdn loadbalancer.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "bigip_virtual_server", "http_loadbalancer" ] }, "elements": { "type": "array", "description": "List of API group elements with methods and path regex for matching requests.", "title": "elements", "maxItems": 5000, "items": { "$ref": "#/components/schemas/schemaapi_group_elementGlobalSpecType" }, "x-displayname": "API Group Elements.", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.repeated.max_items": "5000" }, "x-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.repeated.max_items": "5000" }, "x-f5xc-description-short": "List of API group elements with methods and path regex for matching requests.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 5000, "minItems": 0, "uniqueItems": false, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" }, "deterministic": true }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "http_loadbalancer": { "allOf": [ { "$ref": "#/components/schemas/app_api_groupApiGroupScopeHttpLoadbalancer" } ], "x-f5xc-description-short": "Configuration parameter for http loadbalancer.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "bigip_virtual_server", "cdn_loadbalancer" ] } }, "x-f5xc-description-short": "Shape of app_api_group in the storage backend.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for viewsapp_api_groupGlobalSpecType", "required_fields": [ "elements" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for viewsapp_api_groupGlobalSpecType\nmetadata:\n name: example\n namespace: default\nspec:\n elements: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"elements\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "api", "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" } } }, "viewsapp_api_groupReplaceSpecType": { "type": "object", "description": "Replace app_api_group replaces an existing object in the storage backend for metadata.namespace.", "title": "Replace app_api_group", "x-displayname": "Replace API Group.", "x-ves-oneof-field-scope_choice": "[\"bigip_virtual_server\",\"cdn_loadbalancer\",\"http_loadbalancer\"]", "x-ves-proto-message": "ves.io.schema.views.app_api_group.ReplaceSpecType", "properties": { "bigip_virtual_server": { "allOf": [ { "$ref": "#/components/schemas/app_api_groupApiGroupScopeBIGIPVirtualServer" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "cdn_loadbalancer", "http_loadbalancer" ] }, "cdn_loadbalancer": { "allOf": [ { "$ref": "#/components/schemas/app_api_groupApiGroupScopeCDNLoadbalancer" } ], "x-f5xc-description-short": "Configuration parameter for cdn loadbalancer.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "bigip_virtual_server", "http_loadbalancer" ] }, "elements": { "type": "array", "description": "List of API group elements with methods and path regex for matching requests.", "maxItems": 5000, "items": { "$ref": "#/components/schemas/schemaapi_group_elementGlobalSpecType" }, "x-displayname": "API Group Elements.", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.repeated.max_items": "5000" }, "x-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.repeated.max_items": "5000" }, "x-f5xc-description-short": "List of API group elements with methods and path regex for matching requests.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 5000, "minItems": 0, "uniqueItems": false, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" }, "deterministic": true }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "http_loadbalancer": { "allOf": [ { "$ref": "#/components/schemas/app_api_groupApiGroupScopeHttpLoadbalancer" } ], "x-f5xc-description-short": "Configuration parameter for http loadbalancer.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "bigip_virtual_server", "cdn_loadbalancer" ] } }, "x-f5xc-description-short": "Replace app_api_group replaces an existing object in the storage backend for metadata.namespace.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for viewsapp_api_groupReplaceSpecType", "required_fields": [ "elements" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for viewsapp_api_groupReplaceSpecType\nmetadata:\n name: example\n namespace: default\nspec:\n elements: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"elements\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "api", "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" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for common_wafAPIEndpointProtectionRule\nmetadata:\n name: example\n namespace: default\nspec:\n api_endpoint_path: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"api_endpoint_path\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "virtual", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "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_yaml": "# Minimal example for common_wafAPIProtectionRuleAction\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "virtual", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for common_wafApiEndpointDetails\nmetadata:\n name: example\n namespace: default\nspec:\n path: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"path\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "virtual", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for common_wafApiEndpointRule\nmetadata:\n name: example\n namespace: default\nspec:\n api_endpoint_path: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"api_endpoint_path\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "virtual", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for common_wafCustomFallThroughMode\nmetadata:\n name: example\n namespace: default\nspec:\n open_api_validation_rules: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"open_api_validation_rules\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "virtual", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for common_wafFallThroughRule\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "virtual", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for common_wafInlineRateLimiter\nmetadata:\n name: example\n namespace: default\nspec:\n threshold: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"threshold\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "virtual", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "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_yaml": "# Minimal example for common_wafOpenApiFallThroughMode\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "virtual", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "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_yaml": "# Minimal example for common_wafOpenApiValidationAllSpecEndpointsSettings\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "virtual", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "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_yaml": "# Minimal example for common_wafOpenApiValidationCommonSettings\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "virtual", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "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_yaml": "# Minimal example for common_wafOpenApiValidationMode\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "virtual", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for common_wafOpenApiValidationModeActive\nmetadata:\n name: example\n namespace: default\nspec:\n request_validation_properties: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"request_validation_properties\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "virtual", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for common_wafOpenApiValidationModeActiveResponse\nmetadata:\n name: example\n namespace: default\nspec:\n response_validation_properties: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"response_validation_properties\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "virtual", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for common_wafOpenApiValidationRule\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "virtual", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "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_yaml": "# Minimal example for common_wafValidationPropertySetting\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "virtual", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "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_yaml": "# Minimal example for common_wafValidationSettingForQueryParameters\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "virtual", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for http_loadbalancerBodySectionMaskingOptions\nmetadata:\n name: example\n namespace: default\nspec:\n fields: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"fields\": \"value\"\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_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_yaml": "# Minimal example for http_loadbalancerSensitiveDataTypes\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for policyAsnMatchList\nmetadata:\n name: example\n namespace: default\nspec:\n as_numbers: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"as_numbers\": \"value\"\n }\n}" }, "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": "none" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for policyAsnMatcherType\nmetadata:\n name: example\n namespace: default\nspec:\n asn_sets: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"asn_sets\": \"value\"\n }\n}" }, "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": "none" } } }, "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_yaml": "# Minimal example for policyClientMatcher\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "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": "none" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for policyCookieMatcherType\nmetadata:\n name: example\n namespace: default\nspec:\n name: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"name\": \"value\"\n }\n}" }, "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": "none" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for policyHttpMethodMatcherType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "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": "none" } } }, "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_yaml": "# Minimal example for policyIPThreatCategory\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "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": "none" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for policyIpMatcherType\nmetadata:\n name: example\n namespace: default\nspec:\n prefix_sets: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"prefix_sets\": \"value\"\n }\n}" }, "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": "none" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for policyJWTClaimMatcherType\nmetadata:\n name: example\n namespace: default\nspec:\n name: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"name\": \"value\"\n }\n}" }, "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": "none" } } }, "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_yaml": "# Minimal example for policyKnownTlsFingerprintClass\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "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": "none" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for policyMatcherType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "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": "none" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for policyPrefixMatchList\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "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": "none" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for policyRequestMatcher\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "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": "none" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for policyTlsFingerprintMatcherType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "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": "none" } } }, "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_yaml": "# Minimal example for policyTransformer\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "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": "none" } } }, "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_yaml": "# Minimal example for rate_limiterRateLimitPeriodUnit\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "rule_suggestionGetSuggestedAPIEndpointProtectionRuleReq": { "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.api_sec.rule_suggestion.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 } }, "namespace": { "type": "string", "description": "Namespace of the App type for current request.", "title": "Namespace", "x-displayname": "Namespace", "x-ves-example": "Shared", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true" }, "x-f5xc-example": "shared", "x-validation-rules": { "ves.io.schema.rules.message.required": "true" }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "deterministic": true }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "virtual_host_name": { "type": "string", "description": "Virtual Host for which this API endpoint protection rule applied.", "title": "Name", "x-displayname": "Virtual Host Name.", "x-ves-example": "VES-I/O-frontend.", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true" }, "x-f5xc-example": "ves-io-frontend", "x-validation-rules": { "ves.io.schema.rules.message.required": "true" }, "x-f5xc-description-short": "Virtual Host for which this API endpoint protection rule applied.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "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 rule_suggestionGetSuggestedAPIEndpointProtectionRuleReq", "required_fields": [ "namespace", "path", "virtual_host_name" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for rule_suggestionGetSuggestedAPIEndpointProtectionRuleReq\nmetadata:\n name: example\n namespace: default\nspec:\n namespace: value\n path: value\n virtual_host_name: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"namespace\": \"value\",\n \"path\": \"value\",\n \"virtual_host_name\": \"value\"\n }\n}" }, "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": "none" } } }, "rule_suggestionGetSuggestedAPIEndpointProtectionRuleRsp": { "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.api_sec.rule_suggestion.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 } }, "loadbalancer_type": { "allOf": [ { "$ref": "#/components/schemas/virtual_hostVirtualHostType" } ], "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 rule_suggestionGetSuggestedAPIEndpointProtectionRuleRsp", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for rule_suggestionGetSuggestedAPIEndpointProtectionRuleRsp\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "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": "none" } } }, "rule_suggestionGetSuggestedOasValidationRuleReq": { "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.api_sec.rule_suggestion.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 } }, "namespace": { "type": "string", "description": "Namespace of the App type for current request.", "title": "Namespace", "x-displayname": "Namespace", "x-ves-example": "Shared", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true" }, "x-f5xc-example": "shared", "x-validation-rules": { "ves.io.schema.rules.message.required": "true" }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "deterministic": true }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "virtual_host_name": { "type": "string", "description": "Virtual Host for which this Open API specification validation rule applied.", "title": "Name", "x-displayname": "Virtual Host Name.", "x-ves-example": "VES-I/O-frontend.", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true" }, "x-f5xc-example": "ves-io-frontend", "x-validation-rules": { "ves.io.schema.rules.message.required": "true" }, "x-f5xc-description-short": "Virtual Host for which this Open API specification validation rule applied.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "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 rule_suggestionGetSuggestedOasValidationRuleReq", "required_fields": [ "namespace", "path", "virtual_host_name" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for rule_suggestionGetSuggestedOasValidationRuleReq\nmetadata:\n name: example\n namespace: default\nspec:\n namespace: value\n path: value\n virtual_host_name: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"namespace\": \"value\",\n \"path\": \"value\",\n \"virtual_host_name\": \"value\"\n }\n}" }, "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": "none" } } }, "rule_suggestionGetSuggestedOasValidationRuleRsp": { "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.api_sec.rule_suggestion.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 } }, "loadbalancer_type": { "allOf": [ { "$ref": "#/components/schemas/virtual_hostVirtualHostType" } ], "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 rule_suggestionGetSuggestedOasValidationRuleRsp", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for rule_suggestionGetSuggestedOasValidationRuleRsp\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "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": "none" } } }, "rule_suggestionGetSuggestedRateLimitRuleReq": { "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.api_sec.rule_suggestion.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 } }, "namespace": { "type": "string", "description": "Namespace of the App type for current request.", "title": "Namespace", "x-displayname": "Namespace", "x-ves-example": "Shared", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true" }, "x-f5xc-example": "shared", "x-validation-rules": { "ves.io.schema.rules.message.required": "true" }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "deterministic": true }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "virtual_host_name": { "type": "string", "description": "Virtual Host for which this rate limit rule applied.", "title": "Name", "x-displayname": "Virtual Host Name.", "x-ves-example": "VES-I/O-frontend.", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true" }, "x-f5xc-example": "ves-io-frontend", "x-validation-rules": { "ves.io.schema.rules.message.required": "true" }, "x-f5xc-description-short": "Virtual Host for which this rate limit rule applied.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "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 rule_suggestionGetSuggestedRateLimitRuleReq", "required_fields": [ "namespace", "path", "virtual_host_name" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for rule_suggestionGetSuggestedRateLimitRuleReq\nmetadata:\n name: example\n namespace: default\nspec:\n namespace: value\n path: value\n virtual_host_name: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"namespace\": \"value\",\n \"path\": \"value\",\n \"virtual_host_name\": \"value\"\n }\n}" }, "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": "none" } } }, "rule_suggestionGetSuggestedRateLimitRuleRsp": { "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.api_sec.rule_suggestion.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 } }, "loadbalancer_type": { "allOf": [ { "$ref": "#/components/schemas/virtual_hostVirtualHostType" } ], "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 rule_suggestionGetSuggestedRateLimitRuleRsp", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for rule_suggestionGetSuggestedRateLimitRuleRsp\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "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": "none" } } }, "rule_suggestionGetSuggestedSensitiveDataRuleReq": { "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.api_sec.rule_suggestion.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 } }, "namespace": { "type": "string", "description": "Namespace of the App type for current request.", "title": "Namespace", "x-displayname": "Namespace", "x-ves-example": "Shared", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true" }, "x-f5xc-example": "shared", "x-validation-rules": { "ves.io.schema.rules.message.required": "true" }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "deterministic": true }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "virtual_host_name": { "type": "string", "description": "Virtual Host for which this sensitive data rule applied.", "title": "Name", "x-displayname": "Virtual Host Name.", "x-ves-example": "VES-I/O-frontend.", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true" }, "x-f5xc-example": "ves-io-frontend", "x-validation-rules": { "ves.io.schema.rules.message.required": "true" }, "x-f5xc-description-short": "Virtual Host for which this sensitive data rule applied.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "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 rule_suggestionGetSuggestedSensitiveDataRuleReq", "required_fields": [ "namespace", "path", "virtual_host_name" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for rule_suggestionGetSuggestedSensitiveDataRuleReq\nmetadata:\n name: example\n namespace: default\nspec:\n namespace: value\n path: value\n virtual_host_name: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"namespace\": \"value\",\n \"path\": \"value\",\n \"virtual_host_name\": \"value\"\n }\n}" }, "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": "none" } } }, "rule_suggestionGetSuggestedSensitiveDataRuleRsp": { "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.api_sec.rule_suggestion.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 } }, "loadbalancer_type": { "allOf": [ { "$ref": "#/components/schemas/virtual_hostVirtualHostType" } ], "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 rule_suggestionGetSuggestedSensitiveDataRuleRsp", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for rule_suggestionGetSuggestedSensitiveDataRuleRsp\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "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": "none" } } }, "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 ::= | \",\" \n ::= [!] KEY [ | ]\n ::= \"\" | \n ::= | \n ::= \"notin\"\n ::= \"in\"\n ::= \"(\" \")\"\n ::= VALUE | VALUE \",\" \n ::= [\"=\"|\"==\"|\"!=\"] 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-08-20T09:12:47+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_yaml": "# Minimal example for schemaLabelSelectorType\nmetadata:\n name: example\n namespace: default\nspec:\n expressions: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"expressions\": \"value\"\n }\n}" }, "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" } } }, "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_yaml": "# Minimal example for schemaOpenApiValidationProperties\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "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": "none" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemapolicyHeaderMatcherType\nmetadata:\n name: example\n namespace: default\nspec:\n name: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"name\": \"value\"\n }\n}" }, "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": "none" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for schemapolicyIPThreatCategoryListType\nmetadata:\n name: example\n namespace: default\nspec:\n ip_threat_categories: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"ip_threat_categories\": \"value\"\n }\n}" }, "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": "none" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemapolicyQueryParameterMatcherType\nmetadata:\n name: example\n namespace: default\nspec:\n key: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"key\": \"value\"\n }\n}" }, "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": "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_yaml": "# Minimal example for virtual_hostVirtualHostType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "code_base_integrationAzureReposIntegration": { "type": "object", "title": "Azure Repos Integration", "x-displayname": "Azure Repos Integration.", "x-ves-proto-message": "ves.io.schema.api_sec.code_base_integration.AzureReposIntegration", "properties": { "access_token": { "allOf": [ { "$ref": "#/components/schemas/schemaSecretType" } ], "x-f5xc-description-short": "Configuration parameter for access token.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for code_base_integrationAzureReposIntegration", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for code_base_integrationAzureReposIntegration\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Canonical create identity pending namespace CRUD verification" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "code_base_integrationBitBucketCloudIntegration": { "type": "object", "title": "BitBucket Cloud Integration", "x-displayname": "BitBucket Cloud Integration.", "x-ves-proto-message": "ves.io.schema.api_sec.code_base_integration.BitBucketCloudIntegration", "properties": { "passwd": { "allOf": [ { "$ref": "#/components/schemas/schemaSecretType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "username": { "type": "string", "description": "Human-readable name for the resource", "title": "username", "x-displayname": "BitBucket Username.", "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": "example-resource", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "identity", "maxLength": 1024, "minLength": 1, "pattern": "^[a-zA-Z0-9_.-]+$", "characterSet": { "allowed": "[a-zA-Z0-9_.-]", "description": "Alphanumeric with underscores, dots, hyphens" }, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for code_base_integrationBitBucketCloudIntegration", "required_fields": [ "username" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for code_base_integrationBitBucketCloudIntegration\nmetadata:\n name: example\n namespace: default\nspec:\n username: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"username\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Canonical create identity pending namespace CRUD verification" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "code_base_integrationBitBucketServerIntegration": { "type": "object", "title": "BitBucket Server Integration", "x-displayname": "BitBucket Server Integration.", "x-ves-proto-message": "ves.io.schema.api_sec.code_base_integration.BitBucketServerIntegration", "properties": { "passwd": { "allOf": [ { "$ref": "#/components/schemas/schemaSecretType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "url": { "type": "string", "description": "URL or URI reference", "title": "url", "x-displayname": "BitBucket Server URL.", "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" }, "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-08-20T09:12:47+00:00" }, "deterministic": true }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "username": { "type": "string", "description": "Human-readable name for the resource", "title": "username", "x-displayname": "BitBucket Server Username.", "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": "example-resource", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "identity", "maxLength": 1024, "minLength": 1, "pattern": "^[a-zA-Z0-9_.-]+$", "characterSet": { "allowed": "[a-zA-Z0-9_.-]", "description": "Alphanumeric with underscores, dots, hyphens" }, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "verify_ssl": { "type": "boolean", "title": "verify_ssl", "format": "boolean", "x-displayname": "Verify SSL.", "description": "Configuration parameter for verify ssl", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for code_base_integrationBitBucketServerIntegration", "required_fields": [ "url", "username" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for code_base_integrationBitBucketServerIntegration\nmetadata:\n name: example\n namespace: default\nspec:\n url: value\n username: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"url\": \"value\",\n \"username\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Canonical create identity pending namespace CRUD verification" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "code_base_integrationCodeBaseIntegration": { "type": "object", "description": "Choose your code base (e.g. GitHub, GitLab, Bitbucket, Azure) and provide credentials and connection details.", "title": "Code Base", "x-displayname": "Integration Data.", "x-ves-oneof-field-type": "[\"azure_repos\",\"bitbucket\",\"bitbucket_server\",\"github\",\"github_enterprise\",\"gitlab\",\"gitlab_enterprise\"]", "x-ves-proto-message": "ves.io.schema.api_sec.code_base_integration.CodeBaseIntegration", "properties": { "azure_repos": { "allOf": [ { "$ref": "#/components/schemas/code_base_integrationAzureReposIntegration" } ], "x-f5xc-description-short": "Configuration parameter for azure repos.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "bitbucket", "bitbucket_server", "github", "github_enterprise", "gitlab", "gitlab_enterprise" ] }, "bitbucket": { "allOf": [ { "$ref": "#/components/schemas/code_base_integrationBitBucketCloudIntegration" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "azure_repos", "bitbucket_server", "github", "github_enterprise", "gitlab", "gitlab_enterprise" ] }, "bitbucket_server": { "allOf": [ { "$ref": "#/components/schemas/code_base_integrationBitBucketServerIntegration" } ], "x-f5xc-description-short": "Configuration parameter for bitbucket server.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "azure_repos", "bitbucket", "github", "github_enterprise", "gitlab", "gitlab_enterprise" ] }, "github": { "allOf": [ { "$ref": "#/components/schemas/code_base_integrationGithubIntegration" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "azure_repos", "bitbucket", "bitbucket_server", "github_enterprise", "gitlab", "gitlab_enterprise" ] }, "github_enterprise": { "allOf": [ { "$ref": "#/components/schemas/code_base_integrationGithubEnterpriseIntegration" } ], "x-f5xc-description-short": "Configuration parameter for github enterprise.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "azure_repos", "bitbucket", "bitbucket_server", "github", "gitlab", "gitlab_enterprise" ] }, "gitlab": { "allOf": [ { "$ref": "#/components/schemas/code_base_integrationGitlabCloudIntegration" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "azure_repos", "bitbucket", "bitbucket_server", "github", "github_enterprise", "gitlab_enterprise" ] }, "gitlab_enterprise": { "allOf": [ { "$ref": "#/components/schemas/code_base_integrationGitlabEnterpriseIntegration" } ], "x-f5xc-description-short": "Configuration parameter for gitlab enterprise.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "azure_repos", "bitbucket", "bitbucket_server", "github", "github_enterprise", "gitlab" ] } }, "x-f5xc-description-short": "Choose your code base (e.g. GitHub, GitLab, Bitbucket, Azure) and provide credentials and connection details.", "x-f5xc-description-medium": "Choose your code base (e.g. GitHub, GitLab, Bitbucket, Azure) and provide credentials and connection details.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for code_base_integrationCodeBaseIntegration", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for code_base_integrationCodeBaseIntegration\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Canonical create identity pending namespace CRUD verification" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "code_base_integrationCreateRequest": { "type": "object", "description": "This is the input message of the 'Create' RPC.", "title": "CreateRequest is used to create an instance of code_base_integration", "x-displayname": "Create Request.", "x-ves-proto-message": "ves.io.schema.api_sec.code_base_integration.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/code_base_integrationCreateSpecType" } ], "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 code_base_integrationCreateRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for code_base_integrationCreateRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Canonical create identity pending namespace CRUD verification" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "code_base_integrationCreateResponse": { "type": "object", "x-ves-proto-message": "ves.io.schema.api_sec.code_base_integration.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/code_base_integrationGetSpecType" } ], "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 code_base_integrationCreateResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for code_base_integrationCreateResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Canonical create identity pending namespace CRUD verification" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "code_base_integrationCreateSpecType": { "type": "object", "description": "CREATE integration details.", "title": "CREATE integration details", "x-displayname": "CREATE Code Base Integration.", "x-ves-proto-message": "ves.io.schema.api_sec.code_base_integration.CreateSpecType", "properties": { "code_base_integration": { "allOf": [ { "$ref": "#/components/schemas/code_base_integrationCodeBaseIntegration" } ], "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-minimum-configuration": { "description": "Minimum configuration for code_base_integrationCreateSpecType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for code_base_integrationCreateSpecType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Canonical create identity pending namespace CRUD verification" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "code_base_integrationDeleteRequest": { "type": "object", "description": "This is the input message of the 'DELETE' RPC.", "title": "DeleteRequest is used to delete a code_base_integration", "x-displayname": "DELETE Request.", "x-ves-proto-message": "ves.io.schema.api_sec.code_base_integration.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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for code_base_integrationDeleteRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for code_base_integrationDeleteRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Canonical create identity pending namespace CRUD verification" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "code_base_integrationGetResponse": { "type": "object", "description": "This is the output message of the 'GET' RPC.", "title": "GetResponse is the shape of a read code_base_integration", "x-displayname": "GET Response.", "x-ves-proto-message": "ves.io.schema.api_sec.code_base_integration.GetResponse", "properties": { "create_form": { "allOf": [ { "$ref": "#/components/schemas/code_base_integrationCreateRequest" } ], "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/code_base_integrationReplaceRequest" } ], "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/code_base_integrationGetSpecType" } ], "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/code_base_integrationStatusObject" }, "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-08-20T09:12:47+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 code_base_integrationGetResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for code_base_integrationGetResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Canonical create identity pending namespace CRUD verification" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "code_base_integrationGetSpecType": { "type": "object", "description": "GET code base integration details.", "title": "GET integration details", "x-displayname": "GET Code Base Integration.", "x-ves-proto-message": "ves.io.schema.api_sec.code_base_integration.GetSpecType", "properties": { "code_base_integration": { "allOf": [ { "$ref": "#/components/schemas/code_base_integrationCodeBaseIntegration" } ], "x-f5xc-description-short": "Configuration parameter for code base integration.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "integration_health": { "allOf": [ { "$ref": "#/components/schemas/code_base_integrationIntegrationHealth" } ], "x-f5xc-description-short": "Configuration parameter for integration health.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "number_of_api_repos": { "type": "integer", "description": "Number of API repositories found in the code base.", "format": "int32", "x-displayname": "Number of API Repositories.", "x-f5xc-description-short": "Number of API repositories found in the code base.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "number_of_repos": { "type": "integer", "description": "Number of repositories found in the code base.", "format": "int32", "x-displayname": "Number of Repositories.", "x-f5xc-description-short": "Number of repositories found in the code base.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "updated_at": { "type": "string", "description": "The last time where the coed base was scanned.", "format": "date-time", "x-displayname": "Last Scan", "x-f5xc-example": "2025-01-15T10:30:00Z", "x-f5xc-description-short": "The last time where the coed base was scanned.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "temporal", "maxLength": 1024, "format": "date-time", "minLength": 20, "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d{3})?Z?$", "formatDescription": "ISO 8601 date-time (e.g., 2026-01-19T12:00:00Z)", "validation": { "standard": "ISO 8601" }, "metadata": { "source": "inferred", "confidence": 0.95, "validatedAt": "2026-08-20T09:12:47+00:00" }, "deterministic": true }, "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 code_base_integrationGetSpecType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for code_base_integrationGetSpecType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Canonical create identity pending namespace CRUD verification" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "code_base_integrationGithubEnterpriseIntegration": { "type": "object", "title": "Github Enterprise Integration", "x-displayname": "GitHub Enterprise Integration.", "x-ves-proto-message": "ves.io.schema.api_sec.code_base_integration.GithubEnterpriseIntegration", "properties": { "access_token": { "allOf": [ { "$ref": "#/components/schemas/schemaSecretType" } ], "x-f5xc-description-short": "Configuration parameter for access token.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "hostname": { "type": "string", "description": "Human-readable name for the resource", "title": "hostname", "x-displayname": "GitHub Hostname.", "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": "example-resource", "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-08-20T09:12:47+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 }, "username": { "type": "string", "description": "Human-readable name for the resource", "title": "username", "x-displayname": "GitHub Username.", "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": "example-resource", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "identity", "maxLength": 1024, "minLength": 1, "pattern": "^[a-zA-Z0-9_.-]+$", "characterSet": { "allowed": "[a-zA-Z0-9_.-]", "description": "Alphanumeric with underscores, dots, hyphens" }, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for code_base_integrationGithubEnterpriseIntegration", "required_fields": [ "hostname", "username" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for code_base_integrationGithubEnterpriseIntegration\nmetadata:\n name: example\n namespace: default\nspec:\n hostname: value\n username: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"hostname\": \"value\",\n \"username\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Canonical create identity pending namespace CRUD verification" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "code_base_integrationGithubIntegration": { "type": "object", "title": "Github Integration", "x-displayname": "Github Integration.", "x-ves-proto-message": "ves.io.schema.api_sec.code_base_integration.GithubIntegration", "properties": { "access_token": { "allOf": [ { "$ref": "#/components/schemas/schemaSecretType" } ], "x-f5xc-description-short": "Configuration parameter for access token.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "username": { "type": "string", "description": "Human-readable name for the resource", "title": "username", "x-displayname": "GitHub Username.", "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": "example-resource", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "identity", "maxLength": 1024, "minLength": 1, "pattern": "^[a-zA-Z0-9_.-]+$", "characterSet": { "allowed": "[a-zA-Z0-9_.-]", "description": "Alphanumeric with underscores, dots, hyphens" }, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "verify_ssl": { "type": "boolean", "title": "verify_ssl", "format": "boolean", "x-displayname": "GitHub Verify SSL.", "description": "Configuration parameter for verify ssl", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for code_base_integrationGithubIntegration", "required_fields": [ "username" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for code_base_integrationGithubIntegration\nmetadata:\n name: example\n namespace: default\nspec:\n username: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"username\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Canonical create identity pending namespace CRUD verification" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "code_base_integrationGitlabCloudIntegration": { "type": "object", "title": "GitLab Cloud Integration", "x-displayname": "GitLab Cloud Integration.", "x-ves-proto-message": "ves.io.schema.api_sec.code_base_integration.GitlabCloudIntegration", "properties": { "access_token": { "allOf": [ { "$ref": "#/components/schemas/schemaSecretType" } ], "x-f5xc-description-short": "Configuration parameter for access token.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for code_base_integrationGitlabCloudIntegration", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for code_base_integrationGitlabCloudIntegration\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Canonical create identity pending namespace CRUD verification" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "code_base_integrationGitlabEnterpriseIntegration": { "type": "object", "title": "GitLab Enterprise Integration", "x-displayname": "GitLab Enterprise Integration.", "x-ves-proto-message": "ves.io.schema.api_sec.code_base_integration.GitlabEnterpriseIntegration", "properties": { "access_token": { "allOf": [ { "$ref": "#/components/schemas/schemaSecretType" } ], "x-f5xc-description-short": "Configuration parameter for access token.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "url": { "type": "string", "description": "URL or URI reference", "title": "url", "x-displayname": "GitLab URL.", "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" }, "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-08-20T09:12:47+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 code_base_integrationGitlabEnterpriseIntegration", "required_fields": [ "url" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for code_base_integrationGitlabEnterpriseIntegration\nmetadata:\n name: example\n namespace: default\nspec:\n url: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"url\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Canonical create identity pending namespace CRUD verification" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "code_base_integrationHealthStatus": { "type": "string", "description": "Union of all possible Health Status OPTIONS.", "title": "HealthStatus", "enum": [ "INITIALIZING", "CONNECTED", "DISCONNECTED", "AUTHENTICATION_ERROR", "CODE_BASE_ERROR", "REPO_NOT_FOUND", "REPO_NO_API_FOUND", "GENERAL_ERROR", "SCAN_ERROR" ], "default": "INITIALIZING", "x-displayname": "Health Status.", "x-ves-proto-enum": "ves.io.schema.api_sec.code_base_integration.HealthStatus", "x-f5xc-description-short": "Union of all possible Health Status OPTIONS.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for code_base_integrationHealthStatus", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for code_base_integrationHealthStatus\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Canonical create identity pending namespace CRUD verification" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "code_base_integrationIntegrationHealth": { "type": "object", "title": "Integration Health", "x-displayname": "Code Base Integration Health Status.", "x-ves-proto-message": "ves.io.schema.api_sec.code_base_integration.IntegrationHealth", "properties": { "health_status": { "allOf": [ { "$ref": "#/components/schemas/code_base_integrationHealthStatus" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "reason": { "type": "string", "title": "Integration Health Status Reason", "x-displayname": "Health Status Reason.", "description": "Configuration parameter for reason", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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-08-20T09:12:47+00:00" } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for code_base_integrationIntegrationHealth", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for code_base_integrationIntegrationHealth\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Canonical create identity pending namespace CRUD verification" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "code_base_integrationListResponse": { "type": "object", "description": "This is the output message of 'List' RPC.", "title": "ListResponse is the collection of code_base_integration", "x-displayname": "List Response.", "x-ves-proto-message": "ves.io.schema.api_sec.code_base_integration.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/code_base_integrationListResponseItem" }, "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for code_base_integrationListResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for code_base_integrationListResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Canonical create identity pending namespace CRUD verification" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "code_base_integrationListResponseItem": { "type": "object", "description": "By default a summary of code_base_integration 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 code_base_integration", "x-displayname": "List Item", "x-ves-proto-message": "ves.io.schema.api_sec.code_base_integration.ListResponseItem", "properties": { "annotations": { "type": "object", "description": "The set of annotations present on this code_base_integration.", "title": "annotations", "x-displayname": "Annotations.", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "The set of annotations present on this code_base_integration.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "description": { "type": "string", "description": "The description set for this code_base_integration.", "title": "description", "x-displayname": "Description.", "x-f5xc-description-short": "The description set for this code_base_integration.", "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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "disabled": { "type": "boolean", "description": "A value of true indicates code_base_integration is administratively disabled.", "title": "disabled", "format": "boolean", "x-displayname": "Disabled", "x-f5xc-example": "True", "x-f5xc-description-short": "Value of true indicates code_base_integration is administratively disabled.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "get_spec": { "allOf": [ { "$ref": "#/components/schemas/code_base_integrationGetSpecType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "labels": { "type": "object", "description": "The set of labels present on this code_base_integration.", "title": "labels", "x-displayname": "Labels", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "The set of labels present on this code_base_integration.", "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 code_base_integration.", "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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/code_base_integrationStatusObject" }, "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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "uid": { "type": "string", "description": "The unique uid of this code_base_integration.", "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 code_base_integration.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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-08-20T09:12:47+00:00" } }, "x-f5xc-description-short": "By default a summary of code_base_integration is returned in 'List'.", "x-f5xc-description-medium": "By default a summary of code_base_integration 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 code_base_integrationListResponseItem", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for code_base_integrationListResponseItem\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Canonical create identity pending namespace CRUD verification" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "code_base_integrationReplaceRequest": { "type": "object", "description": "This is the input message of the 'Replace' RPC.", "title": "ReplaceRequest is used to replace contents of a code_base_integration", "x-displayname": "Replace Request.", "x-ves-proto-message": "ves.io.schema.api_sec.code_base_integration.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/code_base_integrationReplaceSpecType" } ], "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 code_base_integrationReplaceRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for code_base_integrationReplaceRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Canonical create identity pending namespace CRUD verification" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "code_base_integrationReplaceResponse": { "type": "object", "x-ves-proto-message": "ves.io.schema.api_sec.code_base_integration.ReplaceResponse", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for code_base_integrationReplaceResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for code_base_integrationReplaceResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Canonical create identity pending namespace CRUD verification" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "code_base_integrationReplaceSpecType": { "type": "object", "description": "Replace integration details.", "title": "Replace integration details", "x-displayname": "Replace Code Base Integration.", "x-ves-proto-message": "ves.io.schema.api_sec.code_base_integration.ReplaceSpecType", "properties": { "code_base_integration": { "allOf": [ { "$ref": "#/components/schemas/code_base_integrationCodeBaseIntegration" } ], "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-minimum-configuration": { "description": "Minimum configuration for code_base_integrationReplaceSpecType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for code_base_integrationReplaceSpecType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Canonical create identity pending namespace CRUD verification" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "code_base_integrationStatusObject": { "type": "object", "description": "Most recently observed status of object.", "title": "Status of a code_base_integration", "x-displayname": "Code Base Integration object status.", "x-ves-proto-message": "ves.io.schema.api_sec.code_base_integration.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 code_base_integrationStatusObject", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for code_base_integrationStatusObject\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Canonical create identity pending namespace CRUD verification" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "discoveryCBIPClusterStatus": { "type": "object", "title": "Status for each BIG-IP cluster", "x-ves-proto-message": "ves.io.schema.discovery.CBIPClusterStatus", "properties": { "cluster_name": { "type": "string", "description": "Name of the BIG-IP cluster.", "title": "Cluster name\nx-displayName: \"Cluster Name\"\nName of the BIG-IP cluster", "x-displayname": "Cluster Name.", "x-f5xc-example": "example-resource", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "condition": { "allOf": [ { "$ref": "#/components/schemas/schemaConditionType" } ], "x-f5xc-example": "ready", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "devices_status": { "type": "array", "description": "Device status of the BIG-IP cluster.", "title": "Devices status\nx-displayName: \"Devices Status\"\nx-required\nDevice status of the BIG-IP cluster", "minItems": 1, "maxItems": 8, "items": { "$ref": "#/components/schemas/discoveryCBIPDeviceStatus" }, "x-displayname": "Devices Status.", "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" }, "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" }, "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "minItems": 1, "maxItems": 8, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for discoveryCBIPClusterStatus", "required_fields": [ "devices_status" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for discoveryCBIPClusterStatus\nmetadata:\n name: example\n namespace: default\nspec:\n devices_status: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"devices_status\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Service discovery is platform-level" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "discoveryCBIPDeviceStatus": { "type": "object", "title": "Status for each BIG-IP device", "x-ves-proto-message": "ves.io.schema.discovery.CBIPDeviceStatus", "properties": { "cbip_mgmt_ip": { "type": "string", "description": "IP Address of the BIG-IP device.", "title": "Management IP", "x-displayname": "Management IP.", "x-ves-example": "192.0.2.14.", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.string.ipv4": "true" }, "x-f5xc-example": "192.0.2.14", "x-validation-rules": { "ves.io.schema.rules.message.required": "true", "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "conditions": { "type": "array", "description": "Discovery Status conditions of the device.", "title": "Status conditions", "minItems": 1, "maxItems": 4, "items": { "$ref": "#/components/schemas/schemaConditionType" }, "x-displayname": "Conditions.", "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-short": "Discovery Status conditions of the device.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "minItems": 1, "maxItems": 4, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for discoveryCBIPDeviceStatus", "required_fields": [ "cbip_mgmt_ip", "conditions" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for discoveryCBIPDeviceStatus\nmetadata:\n name: example\n namespace: default\nspec:\n cbip_mgmt_ip: value\n conditions: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"cbip_mgmt_ip\": \"value\",\n \"conditions\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Service discovery is platform-level" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "discoveryConsulAccessInfo": { "type": "object", "description": "Hashicorp Consul API server information.", "title": "ConsulAccessInfo", "x-displayname": "Hashicorp Consul Parameters.", "x-ves-proto-message": "ves.io.schema.discovery.ConsulAccessInfo", "properties": { "connection_info": { "allOf": [ { "$ref": "#/components/schemas/discoveryRestConfigType" } ], "x-f5xc-description-short": "Configuration parameter for connection info.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "http_basic_auth_info": { "allOf": [ { "$ref": "#/components/schemas/discoveryConsulHttpBasicAuthInfoType" } ], "x-f5xc-description-short": "Configuration parameter for http basic auth info.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Hashicorp Consul API server information.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for discoveryConsulAccessInfo", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for discoveryConsulAccessInfo\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Service discovery is platform-level" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "discoveryConsulDiscoveryType": { "type": "object", "description": "Discovery configuration for Hashicorp Consul.", "title": "consul discovery type", "x-displayname": "Consul Discovery Configuration.", "x-ves-oneof-field-namespace_mapping_choice": "[]", "x-ves-proto-message": "ves.io.schema.discovery.ConsulDiscoveryType", "properties": { "access_info": { "allOf": [ { "$ref": "#/components/schemas/discoveryConsulAccessInfo" } ], "x-f5xc-description-short": "Configuration parameter for access info.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "publish_info": { "allOf": [ { "$ref": "#/components/schemas/discoveryConsulVipDiscoveryInfoType" } ], "x-f5xc-description-short": "Configuration parameter for publish info.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Discovery configuration for Hashicorp Consul.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for discoveryConsulDiscoveryType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for discoveryConsulDiscoveryType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Service discovery is platform-level" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "discoveryConsulHttpBasicAuthInfoType": { "type": "object", "description": "Authentication parameters to access Hashicorp Consul.", "title": "Hashicorp Consul Credentials", "x-displayname": "Hashicorp Consul Credentials.", "x-ves-proto-message": "ves.io.schema.discovery.ConsulHttpBasicAuthInfoType", "properties": { "passwd_url": { "allOf": [ { "$ref": "#/components/schemas/schemaSecretType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "user_name": { "type": "string", "description": "Username in consul.", "title": "username", "maxLength": 64, "x-displayname": "User Name", "x-ves-example": "Joe", "x-ves-validation-rules": { "ves.io.schema.rules.string.max_len": "64" }, "x-f5xc-example": "Joe", "x-validation-rules": { "ves.io.schema.rules.string.max_len": "64" }, "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 64, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Authentication parameters to access Hashicorp Consul.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for discoveryConsulHttpBasicAuthInfoType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for discoveryConsulHttpBasicAuthInfoType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Service discovery is platform-level" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "discoveryConsulVipDiscoveryInfoType": { "type": "object", "description": "Consul Configuration to publish VIPs.", "title": "Consul VIP Discovery Info Type", "x-displayname": "VIP Publish Configuration.", "x-ves-oneof-field-publish_choice": "[\"disable\",\"publish\"]", "x-ves-proto-message": "ves.io.schema.discovery.ConsulVipDiscoveryInfoType", "properties": { "disable": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "publish" ] }, "publish": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "disable" ] } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for discoveryConsulVipDiscoveryInfoType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for discoveryConsulVipDiscoveryInfoType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Service discovery is platform-level" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "discoveryCreateRequest": { "type": "object", "description": "This is the input message of the 'Create' RPC.", "title": "CreateRequest is used to create an instance of discovery", "x-displayname": "Create Request.", "x-ves-proto-message": "ves.io.schema.discovery.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/discoveryCreateSpecType" } ], "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 discoveryCreateRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for discoveryCreateRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Service discovery is platform-level" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "discoveryCreateResponse": { "type": "object", "x-ves-proto-message": "ves.io.schema.discovery.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/discoveryGetSpecType" } ], "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 discoveryCreateResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for discoveryCreateResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Service discovery is platform-level" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "discoveryCreateSpecType": { "type": "object", "description": "API to create discovery object for a site or virtual site in system namespace.", "title": "Create discovery", "x-displayname": "Create Discovery.", "x-ves-oneof-field-cluster_identifier_choice": "[\"cluster_id\",\"no_cluster_id\"]", "x-ves-oneof-field-discovery_choice": "[\"discovery_consul\",\"discovery_k8s\"]", "x-ves-proto-message": "ves.io.schema.discovery.CreateSpecType", "properties": { "cluster_id": { "type": "string", "description": "Exclusive with [no_cluster_id]\nSpecify identifier for discovery cluster. This identifier can be\nspecified in endpoint object to discover only from this discovery object.", "maxLength": 256, "x-displayname": "Discovery cluster 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-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "Exclusive with [no_cluster_id] Specify identifier for discovery cluster.", "x-f5xc-description-medium": "Exclusive with [no_cluster_id] Specify identifier for discovery cluster. This identifier can be specified in endpoint object to discover only from this discovery object.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 256, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-field-mutability": "read-only", "x-f5xc-conflicts-with": [ "no_cluster_id" ] }, "discovery_consul": { "allOf": [ { "$ref": "#/components/schemas/discoveryConsulDiscoveryType" } ], "x-f5xc-description-short": "Configuration parameter for discovery consul.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "discovery_k8s" ] }, "discovery_k8s": { "allOf": [ { "$ref": "#/components/schemas/discoveryK8SDiscoveryType" } ], "x-f5xc-description-short": "Configuration parameter for discovery k8s.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "discovery_consul" ] }, "no_cluster_id": { "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", "x-f5xc-conflicts-with": [ "cluster_id" ] }, "where": { "allOf": [ { "$ref": "#/components/schemas/schemaNetworkSiteRefSelector__ves_io_schema_discovery" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-references": [ { "resource_kind": "site", "field_path": "where", "gated_by": null, "required": false, "cardinality": "single" } ] } }, "x-f5xc-description-short": "API to create discovery object for a site or virtual site in system namespace.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for discoveryCreateSpecType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for discoveryCreateSpecType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Service discovery is platform-level" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "discoveryDeleteRequest": { "type": "object", "description": "This is the input message of the 'DELETE' RPC.", "title": "DeleteRequest is used to delete a discovery", "x-displayname": "DELETE Request.", "x-ves-proto-message": "ves.io.schema.discovery.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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for discoveryDeleteRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for discoveryDeleteRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Service discovery is platform-level" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "discoveryDiscoveredServiceType": { "type": "object", "description": "Details of each Discovered Service.", "title": "Discovered Service", "x-displayname": "Service", "x-ves-proto-message": "ves.io.schema.discovery.DiscoveredServiceType", "properties": { "cluster_ip": { "type": "string", "description": "IP Address of the service.", "title": "Service IP", "x-displayname": "IP", "x-ves-example": "192.0.2.106.", "x-ves-validation-rules": { "ves.io.schema.rules.string.ip": "true" }, "x-f5xc-example": "192.0.2.106", "x-validation-rules": { "ves.io.schema.rules.string.ip": "true" }, "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 1024, "format": "ip", "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "cluster_ipv6": { "type": "string", "description": "IPv6 Address of the service.", "title": "Service IPv6", "x-displayname": "IPv6", "x-ves-example": "2001:0db8:85a3:0000:0000:8a2e:0370:7334.", "x-ves-validation-rules": { "ves.io.schema.rules.string.ip": "true" }, "x-f5xc-example": "2001:0db8:85a3:0000:0000:8a2e:0370:7334", "x-validation-rules": { "ves.io.schema.rules.string.ip": "true" }, "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 1024, "format": "ip", "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "labels": { "type": "object", "description": "Key value pairs defined as labels for the service.", "title": "Service labels", "x-displayname": "Labels", "x-ves-validation-rules": { "ves.io.schema.rules.map.max_pairs": "16", "ves.io.schema.rules.map.values.string.k8s_label_value": "true" }, "x-validation-rules": { "ves.io.schema.rules.map.max_pairs": "16", "ves.io.schema.rules.map.values.string.k8s_label_value": "true" }, "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "Key value pairs defined as labels for the service.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "namespace": { "type": "string", "description": "Namespace of the discovered service.", "title": "Namespace", "maxLength": 64, "x-displayname": "Namespace", "x-ves-example": "Example-namespace.", "x-ves-validation-rules": { "ves.io.schema.rules.string.max_len": "64" }, "x-f5xc-example": "example-namespace", "x-validation-rules": { "ves.io.schema.rules.string.max_len": "64" }, "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 64, "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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" }, "pods": { "type": "array", "description": "List of pod-name to IP address mappings for the service.", "title": "POD list", "items": { "$ref": "#/components/schemas/discoveryPodInfoType" }, "x-displayname": "PODs", "x-f5xc-description-short": "List of pod-name to IP address mappings for the service.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "ports": { "type": "array", "description": "List of ports along with protocol on which the service is exposed.", "title": "Port list", "items": { "$ref": "#/components/schemas/discoveryPortInfoType" }, "x-displayname": "Ports", "x-f5xc-description-short": "List of ports along with protocol on which the service is exposed.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "service_name": { "type": "string", "description": "Name of the discovered service.", "title": "Service name", "maxLength": 64, "x-displayname": "Service", "x-ves-example": "Example-service.", "x-ves-validation-rules": { "ves.io.schema.rules.string.max_len": "64" }, "x-f5xc-example": "example-service", "x-validation-rules": { "ves.io.schema.rules.string.max_len": "64" }, "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 64, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "service_type": { "type": "string", "description": "Type of discovered service. Examples include \"ClusterIP\", \"NodePort\" etc.", "title": "Service Type", "maxLength": 64, "x-displayname": "Type", "x-ves-example": "NodePort", "x-ves-validation-rules": { "ves.io.schema.rules.string.max_len": "64" }, "x-f5xc-example": "NodePort", "x-validation-rules": { "ves.io.schema.rules.string.max_len": "64" }, "x-f5xc-description-short": "Type of discovered service. Examples include \"ClusterIP\", \"NodePort\" etc.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 64, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for discoveryDiscoveredServiceType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for discoveryDiscoveredServiceType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Service discovery is platform-level" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "discoveryDownloadCertificatesRequest": { "type": "object", "description": "Download Certificates Of Log Collector.", "title": "DownloadCertificatesRequest", "x-displayname": "Download Certificates.", "x-ves-proto-message": "ves.io.schema.discovery.DownloadCertificatesRequest", "properties": { "name": { "type": "string", "description": "Identifies the discovery name.", "title": "Discovery Name", "x-displayname": "Discovery Name.", "x-ves-example": "Ds1", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true" }, "x-f5xc-example": "ds1", "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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" }, "namespace": { "type": "string", "description": "Namespace of the discovered service for current request.", "title": "Namespace", "x-displayname": "Namespace", "x-ves-example": "Shared", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true" }, "x-f5xc-example": "shared", "x-validation-rules": { "ves.io.schema.rules.message.required": "true" }, "x-f5xc-description-short": "Namespace of the discovered service 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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for discoveryDownloadCertificatesRequest", "required_fields": [ "name", "namespace" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for discoveryDownloadCertificatesRequest\nmetadata:\n name: example\n namespace: default\nspec:\n name: value\n namespace: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"name\": \"value\",\n \"namespace\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "certificates", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Service discovery is platform-level" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "discoveryDownloadCertificatesResponse": { "type": "object", "description": "Response to the DownloadCertificatesResponse\nA zip file with the certificates files:\n- client.crt\n- client.key\n- server_ca.crt.", "title": "DownloadCertificatesResponse", "x-displayname": "Download Certificates Response.", "x-ves-displayorder": "1", "x-ves-proto-message": "ves.io.schema.discovery.DownloadCertificatesResponse", "properties": { "data": { "type": "string", "description": "Data is base64 encoded value of certificate in PKCS12 format.", "title": "Data", "format": "byte", "x-displayname": "Credentials.", "x-ves-example": "Value", "x-f5xc-example": "value", "x-f5xc-description-short": "Data is base64 encoded value of certificate in PKCS12 format.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "format": "byte", "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Response to the DownloadCertificatesResponse A zip file with the certificates files: - client.crt - client.key - server_ca.crt.", "x-f5xc-description-medium": "Response to the DownloadCertificatesResponse A zip file with the certificates files: - client.crt - client.key - server_ca.crt.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for discoveryDownloadCertificatesResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for discoveryDownloadCertificatesResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "certificates", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Service discovery is platform-level" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "discoveryGetResponse": { "type": "object", "description": "This is the output message of the 'GET' RPC.", "title": "GetResponse is the shape of a read discovery", "x-displayname": "GET Response.", "x-ves-proto-message": "ves.io.schema.discovery.GetResponse", "properties": { "create_form": { "allOf": [ { "$ref": "#/components/schemas/discoveryCreateRequest" } ], "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/discoveryReplaceRequest" } ], "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/discoveryGetSpecType" } ], "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/discoveryStatusObject" }, "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-08-20T09:12:47+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 discoveryGetResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for discoveryGetResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Service discovery is platform-level" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "discoveryGetSpecType": { "type": "object", "description": "API to GET discovery object for a site or virtual site in system namespace.", "title": "Get discovery", "x-displayname": "GET Discovery.", "x-ves-oneof-field-cluster_identifier_choice": "[\"cluster_id\",\"no_cluster_id\"]", "x-ves-oneof-field-discovery_choice": "[\"discovery_consul\",\"discovery_k8s\"]", "x-ves-proto-message": "ves.io.schema.discovery.GetSpecType", "properties": { "cluster_id": { "type": "string", "description": "Exclusive with [no_cluster_id]\nSpecify identifier for discovery cluster. This identifier can be\nspecified in endpoint object to discover only from this discovery object.", "maxLength": 256, "x-displayname": "Discovery cluster 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-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "Exclusive with [no_cluster_id] Specify identifier for discovery cluster.", "x-f5xc-description-medium": "Exclusive with [no_cluster_id] Specify identifier for discovery cluster. This identifier can be specified in endpoint object to discover only from this discovery object.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 256, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-field-mutability": "read-only", "x-f5xc-conflicts-with": [ "no_cluster_id" ] }, "discovery_consul": { "allOf": [ { "$ref": "#/components/schemas/discoveryConsulDiscoveryType" } ], "x-f5xc-description-short": "Configuration parameter for discovery consul.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "discovery_k8s" ] }, "discovery_k8s": { "allOf": [ { "$ref": "#/components/schemas/discoveryK8SDiscoveryType" } ], "x-f5xc-description-short": "Configuration parameter for discovery k8s.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "discovery_consul" ] }, "no_cluster_id": { "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", "x-f5xc-conflicts-with": [ "cluster_id" ] }, "where": { "allOf": [ { "$ref": "#/components/schemas/schemaNetworkSiteRefSelector__ves_io_schema_discovery" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-references": [ { "resource_kind": "virtual_site", "field_path": "where", "gated_by": null, "required": false, "cardinality": "single" } ] } }, "x-f5xc-description-short": "API to GET discovery object for a site or virtual site in system namespace.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for discoveryGetSpecType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for discoveryGetSpecType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Service discovery is platform-level" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "discoveryK8SAccessInfo": { "type": "object", "description": "K8s API server access.", "title": "K8S access info", "x-displayname": "K8s API Server.", "x-ves-displayorder": "10,11", "x-ves-oneof-field-config_type": "[\"connection_info\",\"kubeconfig_url\"]", "x-ves-oneof-field-k8s_pod_network_choice": "[\"isolated\",\"reachable\"]", "x-ves-proto-message": "ves.io.schema.discovery.K8SAccessInfo", "properties": { "connection_info": { "allOf": [ { "$ref": "#/components/schemas/discoveryRestConfigType" } ], "x-f5xc-description-short": "Configuration parameter for connection info.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "kubeconfig_url" ] }, "isolated": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "reachable" ] }, "kubeconfig_url": { "allOf": [ { "$ref": "#/components/schemas/schemaSecretType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "connection_info" ] }, "reachable": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "isolated" ] } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for discoveryK8SAccessInfo", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for discoveryK8SAccessInfo\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Service discovery is platform-level" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "discoveryK8SDNSMode": { "type": "string", "description": "Two modes are possible\n\nCoreDNS: Whether external K8s cluster is running core-DNS\nKubeDNS: External K8s cluster is running kube-DNS.", "title": "K8SDNSMode", "enum": [ "CORE_DNS", "KUBE_DNS" ], "default": "CORE_DNS", "x-displayname": "DNS Mode", "x-ves-proto-enum": "ves.io.schema.discovery.K8SDNSMode", "x-f5xc-description-short": "Two modes are possible CoreDNS: Whether external K8s cluster is running core-DNS KubeDNS: External K8s cluster is running kube-DNS.", "x-f5xc-description-medium": "Two modes are possible CoreDNS: Whether external K8s cluster is running core-DNS KubeDNS: External K8s cluster is running kube-DNS.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for discoveryK8SDNSMode", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for discoveryK8SDNSMode\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Service discovery is platform-level" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "discoveryK8SDelegationType": { "type": "object", "title": "K8SDelegationType", "x-displayname": "K8SDelegationType.", "x-ves-proto-message": "ves.io.schema.discovery.K8SDelegationType", "properties": { "dns_mode": { "allOf": [ { "$ref": "#/components/schemas/discoveryK8SDNSMode" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "subdomain": { "type": "string", "description": "The DNS subdomain for which F5XC will respond to DNS queries.", "title": "subdomain", "maxLength": 256, "x-displayname": "Subdomain", "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": "The DNS subdomain for which F5XC will respond to DNS queries.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 256, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for discoveryK8SDelegationType", "required_fields": [ "subdomain" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for discoveryK8SDelegationType\nmetadata:\n name: example\n namespace: default\nspec:\n subdomain: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"subdomain\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Service discovery is platform-level" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "discoveryK8SDiscoveryType": { "type": "object", "description": "Discovery configuration for K8s.", "title": "K8s discovery type", "x-displayname": "K8s Discovery Configuration.", "x-ves-oneof-field-namespace_mapping_choice": "[\"default_all\",\"namespace_mapping\"]", "x-ves-proto-message": "ves.io.schema.discovery.K8SDiscoveryType", "properties": { "access_info": { "allOf": [ { "$ref": "#/components/schemas/discoveryK8SAccessInfo" } ], "x-f5xc-description-short": "Configuration parameter for access info.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "default_all": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-description-short": "Configuration parameter for default all.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "namespace_mapping" ] }, "namespace_mapping": { "allOf": [ { "$ref": "#/components/schemas/discoveryK8SNamespaceMapping" } ], "x-f5xc-example": "example-resource", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "default_all" ] }, "publish_info": { "allOf": [ { "$ref": "#/components/schemas/discoveryK8SVipDiscoveryInfoType" } ], "x-f5xc-description-short": "Configuration parameter for publish info.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for discoveryK8SDiscoveryType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for discoveryK8SDiscoveryType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Service discovery is platform-level" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "discoveryK8SNamespaceMapping": { "type": "object", "description": "Select the mapping between K8s namespaces from which services will be discovered and App Namespace to which the discovered services will be shared.", "title": "K8S Namespace Mapping", "x-displayname": "K8s Namespace Mapping.", "x-ves-proto-message": "ves.io.schema.discovery.K8SNamespaceMapping", "properties": { "items": { "type": "array", "description": "Map K8s namespace(s) to App Namespaces. In Shared Configuration, Discovered Services can only be mapped to a single App Namespace, which is determined by the first matched regex.", "title": "K8S Namespace to App Namespace Mapping", "minItems": 1, "maxItems": 32, "items": { "$ref": "#/components/schemas/discoveryK8SNamespaceMappingItem" }, "x-displayname": "Regex Matching.", "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": "[\"item1\", \"item2\", \"item3\"]", "x-f5xc-description-medium": "Map K8s namespace(s) to App Namespaces. In Shared Configuration, Discovered Services can only be mapped to a single App Namespace, which is determined by the first matched regex.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "minItems": 1, "maxItems": 32, "uniqueItems": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" }, "deterministic": true }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } } }, "x-f5xc-description-short": "Select the mapping between K8s namespaces from which services will be discovered and App Namespace to which the discovered services will be shared.", "x-f5xc-description-medium": "Select the mapping between K8s namespaces from which services will be discovered and App Namespace to which the discovered services will be shared.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for discoveryK8SNamespaceMapping", "required_fields": [ "items" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for discoveryK8SNamespaceMapping\nmetadata:\n name: example\n namespace: default\nspec:\n items: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"items\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "tenant_and_identity", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Service discovery is platform-level" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "discoveryK8SNamespaceMappingItem": { "type": "object", "description": "Map K8s Namespace(s) to an App Namespace. If not specified, all virtual\nservers will be discovered under shared namespace.", "title": "K8S Namespace Mapping Item", "x-displayname": "K8s Namespace Mapping Item.", "x-ves-proto-message": "ves.io.schema.discovery.K8SNamespaceMappingItem", "properties": { "namespace": { "type": "string", "description": "Select a namespace.", "title": "App Namespace", "x-displayname": "F5XC Application Namespaces.", "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", "validation": { "rfc": "RFC 1035", "standard": "DNS-1035 label (alpha-first)" }, "metadata": { "source": "inferred", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" }, "namespace_regex": { "type": "string", "description": "The regex here will be used to match K8s namespace(s).", "title": "Kubernetes Namespace Regex", "maxLength": 256, "x-displayname": "K8s Namespaces.", "x-ves-validation-rules": { "ves.io.schema.rules.string.max_len": "256", "ves.io.schema.rules.string.regex": "true" }, "x-validation-rules": { "ves.io.schema.rules.string.max_len": "256", "ves.io.schema.rules.string.regex": "true" }, "x-f5xc-example": "example-resource", "x-f5xc-description-short": "The regex here will be used to match K8s namespace(s).", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 256, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Map K8s Namespace(s) to an App Namespace. If not specified, all virtual servers will be discovered under shared namespace.", "x-f5xc-description-medium": "Map K8s Namespace(s) to an App Namespace. If not specified, all virtual servers will be discovered under shared namespace.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for discoveryK8SNamespaceMappingItem", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for discoveryK8SNamespaceMappingItem\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "tenant_and_identity", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Service discovery is platform-level" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "discoveryK8SPublishType": { "type": "object", "title": "K8SPublishType", "x-displayname": "K8SPublishType.", "x-ves-proto-message": "ves.io.schema.discovery.K8SPublishType", "properties": { "namespace": { "type": "string", "description": "The namespace where the service/endpoints need to be created if it's not included in the domain.\nThe external K8s administrator needs to ensure that the namespace exists.", "title": "namespace", "maxLength": 64, "x-displayname": "Default Namespace.", "x-ves-example": "Default", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.string.max_len": "64" }, "x-f5xc-example": "default", "x-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.string.max_len": "64" }, "x-f5xc-description-short": "The namespace where the service/endpoints need to be created if it's not included in the domain.", "x-f5xc-description-medium": "The namespace where the service/endpoints need to be created if it's not included in the domain. The external K8s administrator needs to ensure that the namespace exists.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 64, "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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for discoveryK8SPublishType", "required_fields": [ "namespace" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for discoveryK8SPublishType\nmetadata:\n name: example\n namespace: default\nspec:\n namespace: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"namespace\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Service discovery is platform-level" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "discoveryK8SVipDiscoveryInfoType": { "type": "object", "description": "K8s Configuration to publish VIPs.", "title": "K8S VIP Discovery Info Type", "x-displayname": "VIP Publish Configurations.", "x-ves-oneof-field-publish_choice": "[\"disable\",\"dns_delegation\",\"publish\",\"publish_fqdns\"]", "x-ves-proto-message": "ves.io.schema.discovery.K8SVipDiscoveryInfoType", "properties": { "disable": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "dns_delegation", "publish", "publish_fqdns" ] }, "dns_delegation": { "allOf": [ { "$ref": "#/components/schemas/discoveryK8SDelegationType" } ], "x-f5xc-description-short": "Configuration parameter for dns delegation.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "disable", "publish", "publish_fqdns" ] }, "publish": { "allOf": [ { "$ref": "#/components/schemas/discoveryK8SPublishType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "disable", "dns_delegation", "publish_fqdns" ] }, "publish_fqdns": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-description-short": "Configuration parameter for publish fqdns.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "disable", "dns_delegation", "publish" ] } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for discoveryK8SVipDiscoveryInfoType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for discoveryK8SVipDiscoveryInfoType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Service discovery is platform-level" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "discoveryListResponse": { "type": "object", "description": "This is the output message of 'List' RPC.", "title": "ListResponse is the collection of discovery", "x-displayname": "List Response.", "x-ves-proto-message": "ves.io.schema.discovery.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/discoveryListResponseItem" }, "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for discoveryListResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for discoveryListResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Service discovery is platform-level" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "discoveryListResponseItem": { "type": "object", "description": "By default a summary of discovery 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 discovery", "x-displayname": "List Item", "x-ves-proto-message": "ves.io.schema.discovery.ListResponseItem", "properties": { "annotations": { "type": "object", "description": "The set of annotations present on this discovery.", "title": "annotations", "x-displayname": "Annotations.", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "The set of annotations present on this discovery.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "description": { "type": "string", "description": "The description set for this discovery.", "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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "disabled": { "type": "boolean", "description": "A value of true indicates discovery is administratively disabled.", "title": "disabled", "format": "boolean", "x-displayname": "Disabled", "x-f5xc-example": "True", "x-f5xc-description-short": "Value of true indicates discovery is administratively disabled.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "get_spec": { "allOf": [ { "$ref": "#/components/schemas/discoveryGetSpecType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "labels": { "type": "object", "description": "The set of labels present on this discovery.", "title": "labels", "x-displayname": "Labels", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "The set of labels present on this discovery.", "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 discovery.", "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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/discoveryStatusObject" }, "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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "uid": { "type": "string", "description": "The unique uid of this discovery.", "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-08-20T09:12:47+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-08-20T09:12:47+00:00" } }, "x-f5xc-description-short": "By default a summary of discovery 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 discovery 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 discoveryListResponseItem", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for discoveryListResponseItem\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Service discovery is platform-level" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "discoveryPodInfoType": { "type": "object", "description": "Information about POD providing the service.", "title": "Pod info", "x-displayname": "POD", "x-ves-proto-message": "ves.io.schema.discovery.PodInfoType", "properties": { "ip": { "type": "string", "description": "IP Address of the POD.", "title": "IP Address", "x-displayname": "IP", "x-ves-example": "192.0.2.106.", "x-f5xc-example": "192.0.2.106", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "pod_name": { "type": "string", "description": "Name of the Pod.", "title": "POD name", "x-displayname": "Name", "x-ves-example": "Example-pod-nk8wr.", "x-f5xc-example": "example-pod-nk8wr", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Information about POD providing the service.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for discoveryPodInfoType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for discoveryPodInfoType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Service discovery is platform-level" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "discoveryPortInfoType": { "type": "object", "description": "Information about port and protocol on which the service is provided.", "title": "Port information", "x-displayname": "Port details.", "x-ves-proto-message": "ves.io.schema.discovery.PortInfoType", "properties": { "port": { "type": "integer", "description": "Port number on which the service is exposed.", "title": "Port", "format": "int64", "x-displayname": "Port number.", "x-ves-example": "8080", "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": "65535" }, "x-f5xc-example": "8080", "x-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.uint32.gte": "1", "ves.io.schema.rules.uint32.lte": "65535" }, "x-f5xc-description-short": "Port number on which the service is exposed.", "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-08-20T09:12:47+00:00" }, "deterministic": true }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "protocol": { "type": "string", "description": "Protocol on which the service is exposed.", "title": "Protocol", "x-displayname": "Protocol", "x-ves-example": "TCP", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true" }, "x-f5xc-example": "TCP", "x-validation-rules": { "ves.io.schema.rules.message.required": "true" }, "x-f5xc-description-short": "Protocol on which the service is exposed.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "target_port": { "type": "integer", "description": "Port on which the pods targeted by the service can be reached.\nTargetPort of Kubernetes service when its type is ClusterIP.\nNodePort of Kubernetes service when its type is NodePort.", "title": "Target Port", "format": "int64", "x-displayname": "Target Port number.", "x-ves-example": "8081", "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": "65535" }, "x-f5xc-example": "8081", "x-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.uint32.gte": "1", "ves.io.schema.rules.uint32.lte": "65535" }, "x-f5xc-description-short": "Port on which the pods targeted by the service can be reached. TargetPort of Kubernetes service when its type is ClusterIP.", "x-f5xc-description-medium": "Port on which the pods targeted by the service can be reached. TargetPort of Kubernetes service when its type is ClusterIP. NodePort of Kubernetes service when its type is NodePort.", "x-f5xc-constraints": { "constraintType": "number", "category": "discovery", "minimum": 1, "maximum": 65535, "deterministic": true, "metadata": { "source": "api-probed", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } } }, "x-f5xc-description-short": "Information about port and protocol on which the service is provided.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for discoveryPortInfoType", "required_fields": [ "port", "protocol", "target_port" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for discoveryPortInfoType\nmetadata:\n name: example\n namespace: default\nspec:\n port: value\n protocol: value\n target_port: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"port\": \"value\",\n \"protocol\": \"value\",\n \"target_port\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Service discovery is platform-level" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "discoveryReplaceRequest": { "type": "object", "description": "This is the input message of the 'Replace' RPC.", "title": "ReplaceRequest is used to replace contents of a discovery", "x-displayname": "Replace Request.", "x-ves-proto-message": "ves.io.schema.discovery.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/discoveryReplaceSpecType" } ], "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 discoveryReplaceRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for discoveryReplaceRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Service discovery is platform-level" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "discoveryReplaceResponse": { "type": "object", "x-ves-proto-message": "ves.io.schema.discovery.ReplaceResponse", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for discoveryReplaceResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for discoveryReplaceResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Service discovery is platform-level" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "discoveryReplaceSpecType": { "type": "object", "description": "API to replace discovery object for a site or virtual site in system namespace.", "title": "Replace discovery", "x-displayname": "Replace Discovery.", "x-ves-oneof-field-cluster_identifier_choice": "[\"cluster_id\",\"no_cluster_id\"]", "x-ves-oneof-field-discovery_choice": "[\"discovery_consul\",\"discovery_k8s\"]", "x-ves-proto-message": "ves.io.schema.discovery.ReplaceSpecType", "properties": { "cluster_id": { "type": "string", "description": "Exclusive with [no_cluster_id]\nSpecify identifier for discovery cluster. This identifier can be\nspecified in endpoint object to discover only from this discovery object.", "maxLength": 256, "x-displayname": "Discovery cluster 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-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "Exclusive with [no_cluster_id] Specify identifier for discovery cluster.", "x-f5xc-description-medium": "Exclusive with [no_cluster_id] Specify identifier for discovery cluster. This identifier can be specified in endpoint object to discover only from this discovery object.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 256, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-field-mutability": "read-only", "x-f5xc-conflicts-with": [ "no_cluster_id" ] }, "discovery_consul": { "allOf": [ { "$ref": "#/components/schemas/discoveryConsulDiscoveryType" } ], "x-f5xc-description-short": "Configuration parameter for discovery consul.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "discovery_k8s" ] }, "discovery_k8s": { "allOf": [ { "$ref": "#/components/schemas/discoveryK8SDiscoveryType" } ], "x-f5xc-description-short": "Configuration parameter for discovery k8s.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "discovery_consul" ] }, "no_cluster_id": { "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", "x-f5xc-conflicts-with": [ "cluster_id" ] }, "where": { "allOf": [ { "$ref": "#/components/schemas/schemaNetworkSiteRefSelector__ves_io_schema_discovery" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-references": [ { "resource_kind": "virtual_site", "field_path": "where", "gated_by": null, "required": false, "cardinality": "single" } ] } }, "x-f5xc-description-short": "API to replace discovery object for a site or virtual site in system namespace.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for discoveryReplaceSpecType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for discoveryReplaceSpecType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Service discovery is platform-level" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "discoveryRestConfigType": { "type": "object", "description": "Configuration details to access discovery service REST API.", "title": "REST API config", "x-displayname": "REST API Config.", "x-ves-proto-message": "ves.io.schema.discovery.RestConfigType", "properties": { "api_server": { "type": "string", "description": "API server must be a fully qualified domain string and port specified as host:port pair.", "title": "Discovery Service API server", "maxLength": 262, "x-displayname": "API Server and Port.", "x-ves-example": "api.example.com:4430.", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.string.hostport": "true", "ves.io.schema.rules.string.max_len": "262" }, "x-f5xc-example": "api.example.com:4430", "x-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.string.hostport": "true", "ves.io.schema.rules.string.max_len": "262" }, "x-f5xc-description-short": "API server must be a fully qualified domain string and port specified as host:port pair.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 262, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "tls_info": { "allOf": [ { "$ref": "#/components/schemas/discoveryTLSClientConfigType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Configuration details to access discovery service REST API.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for discoveryRestConfigType", "required_fields": [ "api_server" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for discoveryRestConfigType\nmetadata:\n name: example\n namespace: default\nspec:\n api_server: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"api_server\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "certificates", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Service discovery is platform-level" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "discoveryStatusObject": { "type": "object", "description": "Most recently observed status of object.", "title": "Discovery Status Object", "x-displayname": "Discovery Status.", "x-ves-proto-message": "ves.io.schema.discovery.StatusObject", "properties": { "cbip_clusters_status": { "type": "array", "description": "CBIPClusterStatus captures the status\nof the BIG-IP cluster discovery workflow, especially the device status.", "title": "cbip_clusters_status\nx-displayName: \"BIG-IP Clusters Status\"\nx-required\nCBIPClusterStatus captures the status\nof the BIG-IP cluster discovery workflow, especially the device status", "minItems": 1, "maxItems": 32, "items": { "$ref": "#/components/schemas/discoveryCBIPClusterStatus" }, "x-displayname": "BIG-IP Clusters Status.", "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" }, "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" }, "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "CBIPClusterStatus captures the status of the BIG-IP cluster discovery workflow, especially the device status.", "x-f5xc-description-medium": "CBIPClusterStatus captures the status of the BIG-IP cluster discovery workflow, especially the device status.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "minItems": 1, "maxItems": 32, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "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 } }, "ver_status": { "allOf": [ { "$ref": "#/components/schemas/discoveryVerStatusType" } ], "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 discoveryStatusObject", "required_fields": [ "cbip_clusters_status" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for discoveryStatusObject\nmetadata:\n name: example\n namespace: default\nspec:\n cbip_clusters_status: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"cbip_clusters_status\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Service discovery is platform-level" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "discoveryTLSClientConfigType": { "type": "object", "description": "TLS config for client of discovery service.", "title": "TLS config", "x-displayname": "Client TLS Config.", "x-ves-proto-message": "ves.io.schema.discovery.TLSClientConfigType", "properties": { "certificate": { "type": "string", "description": "Client certificate is PEM-encoded certificate or certificate-chain.", "maxLength": 131072, "x-displayname": "Client Certificate.", "x-ves-example": "Value", "x-ves-validation-rules": { "ves.io.schema.rules.string.max_bytes": "131072", "ves.io.schema.rules.string.uri_ref": "true" }, "x-f5xc-example": "value", "x-validation-rules": { "ves.io.schema.rules.string.max_bytes": "131072", "ves.io.schema.rules.string.uri_ref": "true" }, "x-f5xc-description-short": "Client certificate is PEM-encoded certificate or certificate-chain.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 131072, "minLength": 100, "pattern": "^-----BEGIN CERTIFICATE-----\\n.*\\n-----END CERTIFICATE-----$", "format": "uri", "formatDescription": "PEM-encoded X.509 certificate, max 5MB", "byteLength": { "max": 131072 }, "validation": { "standard": "PEM" }, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" }, "deterministic": true }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "key_url": { "allOf": [ { "$ref": "#/components/schemas/schemaSecretType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "server_name": { "type": "string", "description": "ServerName is passed to the server for SNI and is used in the client to check server\ncertificates against. If ServerName is empty, the hostname used to contact the\nserver is used.", "title": "Server Name", "maxLength": 256, "x-displayname": "SNI name", "x-ves-example": "k8s.example.com.", "x-ves-validation-rules": { "ves.io.schema.rules.string.hostname": "true", "ves.io.schema.rules.string.max_len": "256" }, "x-f5xc-example": "k8s.example.com", "x-validation-rules": { "ves.io.schema.rules.string.hostname": "true", "ves.io.schema.rules.string.max_len": "256" }, "x-f5xc-description-short": "ServerName is passed to the server for SNI and is used in the client to check server certificates against.", "x-f5xc-description-medium": "ServerName is passed to the server for SNI and is used in the client to check server certificates against. If ServerName is empty, the hostname used to contact the server is used.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 256, "format": "hostname", "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "trusted_ca_url": { "type": "string", "description": "The URL or value for trusted Server CA certificate or certificate chain\nCertificates in PEM format including the PEM headers.", "title": "Server CA certificates", "maxLength": 131072, "x-displayname": "Server CA Certificates.", "x-ves-example": "Value", "x-ves-validation-rules": { "ves.io.schema.rules.string.max_bytes": "131072", "ves.io.schema.rules.string.uri_ref": "true" }, "x-f5xc-example": "value", "x-validation-rules": { "ves.io.schema.rules.string.max_bytes": "131072", "ves.io.schema.rules.string.uri_ref": "true" }, "x-f5xc-description-short": "The URL or value for trusted Server CA certificate or certificate chain Certificates in PEM format including the PEM headers.", "x-f5xc-description-medium": "The URL or value for trusted Server CA certificate or certificate chain Certificates in PEM format including the PEM headers.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 131072, "byteLength": { "max": 131072 }, "format": "uri", "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "TLS config for client of discovery service.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for discoveryTLSClientConfigType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for discoveryTLSClientConfigType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "certificates", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Service discovery is platform-level" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "discoveryVerStatusType": { "type": "object", "description": "This VER status is per site on which discovery is happening and it lists all services that site has discovered.", "title": "VER status for k8s and consul Discovery", "x-displayname": "VER Status.", "x-ves-proto-message": "ves.io.schema.discovery.VerStatusType", "properties": { "connected": { "type": "boolean", "description": "Indicates connection status to external discovery service.", "title": "Connection status", "format": "boolean", "x-displayname": "Connection Status.", "x-f5xc-description-short": "Indicates connection status to external discovery service.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "services": { "type": "array", "description": "List of discovered services.", "title": "Discovered Services", "items": { "$ref": "#/components/schemas/discoveryDiscoveredServiceType" }, "x-displayname": "Discovered Services.", "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": "Origin site", "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "type": { "allOf": [ { "$ref": "#/components/schemas/schemaDiscoveryType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "VER status is per site on which discovery is happening and it lists all services that site has discovered.", "x-f5xc-description-medium": "VER status is per site on which discovery is happening and it lists all services that site has discovered.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for discoveryVerStatusType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for discoveryVerStatusType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Service discovery is platform-level" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "schemaDiscoveryType": { "type": "string", "description": "Specifies the type of discovery\n\nInvalid Discovery mechanism\nDiscover from Kubernetes cluster\nDiscover from Consul service\nDiscover from Classic BIG-IP Clusters\nDiscover for Third Party Application\nDiscover from NGINX One.", "title": "DiscoveryType", "enum": [ "INVALID_DISCOVERY", "K8S", "CONSUL", "CLASSIC_BIGIP", "THIRD_PARTY", "NGINX_ONE" ], "default": "INVALID_DISCOVERY", "x-displayname": "Discovery Type.", "x-ves-proto-enum": "ves.io.schema.DiscoveryType", "x-f5xc-description-short": "Specifies the type of discovery Invalid Discovery mechanism Discover from Kubernetes cluster Discover from Consul service Discover from Classic...", "x-f5xc-description-medium": "Specifies the type of discovery Invalid Discovery mechanism Discover from Kubernetes cluster Discover from Consul service Discover from Classic BIG-IP Clusters Discover for Third Party Application Discover from NGINX One.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for schemaDiscoveryType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemaDiscoveryType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Service discovery is platform-level" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "schemaNetworkRefType__ves_io_schema_discovery": { "type": "object", "description": "This specifies a direct reference to a network configuration object.", "title": "NetworkRefType", "x-displayname": "Network Reference.", "x-ves-proto-message": "ves.io.schema.NetworkRefType", "properties": { "ref": { "type": "array", "description": "A virtual network direct reference.", "title": "ref", "maxItems": 1, "items": { "$ref": "#/components/schemas/ioschemaObjectRefType" }, "x-displayname": "Reference", "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-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 1, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } } }, "x-f5xc-description-short": "Specifies a direct reference to a network configuration object.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for schemaNetworkRefType", "required_fields": [ "ref" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemaNetworkRefType\nmetadata:\n name: example\n namespace: default\nspec:\n ref: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"ref\": \"value\"\n }\n}" }, "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": "none" } } }, "schemaNetworkSiteRefSelector__ves_io_schema_discovery": { "type": "object", "description": "NetworkSiteRefSelector defines a union of reference to site or reference to virtual_network or reference to virtual_site\nIt is used to determine virtual network using following rules\n* Direct reference to virtual_network object\n* Site local network when referring to site object\n* All site local networks for sites selected by referring to virtual_site object.", "title": "NetworkSiteRefSelector", "x-displayname": "Network or Site Reference.", "x-ves-oneof-field-ref_or_selector": "[\"site\",\"virtual_network\",\"virtual_site\"]", "x-ves-proto-message": "ves.io.schema.NetworkSiteRefSelector", "properties": { "site": { "allOf": [ { "$ref": "#/components/schemas/schemaSiteRefType__ves_io_schema_bgp" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "virtual_network", "virtual_site" ], "x-f5xc-references": [ { "resource_kind": "site", "field_path": "site", "gated_by": { "choice": "ref_or_selector" }, "required": false, "cardinality": "single" } ] }, "virtual_network": { "allOf": [ { "$ref": "#/components/schemas/schemaNetworkRefType__ves_io_schema_discovery" } ], "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": [ "site", "virtual_site" ], "x-f5xc-references": [ { "resource_kind": "virtual_network", "field_path": "virtual_network", "gated_by": { "choice": "ref_or_selector" }, "required": false, "cardinality": "single" } ] }, "virtual_site": { "allOf": [ { "$ref": "#/components/schemas/schemaVSiteRefType__ves_io_schema_bgp" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "site", "virtual_network" ], "x-f5xc-references": [ { "resource_kind": "virtual_site", "field_path": "virtual_site", "gated_by": { "choice": "ref_or_selector" }, "required": false, "cardinality": "single" } ] } }, "x-f5xc-description-short": "NetworkSiteRefSelector defines a union of reference to site or reference to virtual_network or reference to virtual_site It is used to determine...", "x-f5xc-description-medium": "NetworkSiteRefSelector defines a union of reference to site or reference to virtual_network or reference to virtual_site It is used to determine virtual network using following rules * Direct reference to virtual_network object * Site local network when referring to site object * All site local...", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for schemaNetworkSiteRefSelector", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemaNetworkSiteRefSelector\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "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": "none" } } }, "schemaSiteRefType__ves_io_schema_bgp": { "type": "object", "description": "This specifies a direct reference to a site configuration object.", "title": "SiteRefType", "x-displayname": "Site Reference.", "x-ves-oneof-field-internet_vip_choice": "[\"disable_internet_vip\",\"enable_internet_vip\"]", "x-ves-proto-message": "ves.io.schema.SiteRefType", "properties": { "disable_internet_vip": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "enable_internet_vip" ] }, "enable_internet_vip": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "disable_internet_vip" ] }, "network_type": { "allOf": [ { "$ref": "#/components/schemas/schemaVirtualNetworkType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "ref": { "type": "array", "description": "A site direct reference.", "title": "ref", "maxItems": 1, "items": { "$ref": "#/components/schemas/ioschemaObjectRefType" }, "x-displayname": "Reference", "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-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 1, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } } }, "x-f5xc-description-short": "Specifies a direct reference to a site configuration object.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for schemaSiteRefType", "required_fields": [ "ref" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemaSiteRefType\nmetadata:\n name: example\n namespace: default\nspec:\n ref: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"ref\": \"value\"\n }\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" } } }, "schemaVSiteRefType__ves_io_schema_bgp": { "type": "object", "description": "A reference to virtual_site object.", "title": "VSiteRefType", "x-displayname": "Virtual Site.", "x-ves-oneof-field-internet_vip_choice": "[\"disable_internet_vip\",\"enable_internet_vip\"]", "x-ves-proto-message": "ves.io.schema.VSiteRefType", "properties": { "disable_internet_vip": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "enable_internet_vip" ] }, "enable_internet_vip": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "disable_internet_vip" ] }, "network_type": { "allOf": [ { "$ref": "#/components/schemas/schemaVirtualNetworkType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "ref": { "type": "array", "description": "A virtual_site direct reference.", "title": "ref", "maxItems": 1, "items": { "$ref": "#/components/schemas/ioschemaObjectRefType" }, "x-displayname": "Reference", "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-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 1, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for schemaVSiteRefType", "required_fields": [ "ref" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemaVSiteRefType\nmetadata:\n name: example\n namespace: default\nspec:\n ref: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"ref\": \"value\"\n }\n}" }, "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": "none" } } }, "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_yaml": "# Minimal example for schemaVirtualNetworkType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } } }, "responses": {}, "parameters": {}, "requestBodies": {} } }, "authentication": { "openapi": "3.0.3", "info": { "title": "Authentication", "description": "Identity and access management providing APIs for configuring identity providers, access policies, and user credentials. Supports MFA, identity provider integration, and lifecycle operations for credential management across distributed deployments.", "version": "4.0.0", "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": "Identity and access management providing APIs for configuring identity providers, access policies, and user credentials. Supports MFA, identity provider integration, and lifecycle operations for credential management across distributed deployments.", "x-f5xc-summary": "Identity management with provider integration, access policies, and credential lifecycle control.", "x-f5xc-cli-domain": "authentication", "externalDocs": { "url": "https://docs.cloud.f5.com/docs/how-to/user-mgmt", "description": "F5 XC Documentation - Tenant and Identity" }, "x-f5xc-api-reference-url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/tenant_and_identity/", "x-f5xc-best-practices": { "common_errors": [ { "code": 401, "message": "Token expired", "resolution": "Refresh token or re-authenticate", "prevention": "Implement automatic token refresh" }, { "code": 403, "message": "Insufficient permissions", "resolution": "Request additional role assignments", "prevention": "Verify permissions before operations" } ], "security_notes": [ "Use short-lived tokens with refresh capability", "Enable MFA for administrative access", "Implement least privilege access policies" ], "performance_tips": [ "Cache authentication tokens appropriately", "Use service accounts for automation", "Implement token pooling for high-volume scenarios" ] }, "x-f5xc-guided-workflows": [ { "id": "create_and_use_api_token", "name": "Create and Use an API Token", "description": "Create an API token in the console via guided browser automation, then call the F5 XC API with it", "complexity": "low", "estimated_steps": 3, "prerequisites": [ "Logged in to the F5 XC console", "User role: admin (access to Personal Management > Credentials)" ], "steps": [ { "order": 1, "action": "create_api_token", "name": "Create API Token", "description": "In Administration > Personal Management > Credentials, click Add Credentials, set Credential Type to API Token, enter a Credential Name and Expiry Date, then Generate", "resource": "api_credential", "required_fields": [ "credential_name", "credential_type", "expiry_date" ], "tips": [ "Set Credential Type to API Token. The default is API Certificate, which produces a P12 file, not a bearer token.", "The token string is shown only once on the reveal panel. Capture it immediately, before dismissing the panel." ] }, { "order": 2, "action": "capture_token", "name": "Capture the Generated Token", "description": "Read the one-time token value from the reveal panel", "depends_on": [ 1 ], "verification": [ "Token value captured before the reveal panel is dismissed" ] }, { "order": 3, "action": "call_api_with_token", "name": "Call the F5 XC API with the Token", "description": "Use the captured token in an XC-API call with header Authorization APIToken to confirm it works, for example list namespaces", "depends_on": [ 2 ], "verification": [ "XC-API GET /api/web/namespaces returns HTTP 200 with the tenant namespaces" ] } ] } ], "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "API credentials are platform-level identity" }, "classification": { "category": "identity", "multi_tenant_pattern": "none" } } }, "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": "web" } ], "paths": { "/api/web/namespaces/system/bulk_revoke/api_credentials": { "post": { "summary": "Bulk Revoke API credentials.", "description": "It is used to revoke multiple API credentials. This API would disable the credentials and mark them for deletion.\nThe actual removal of objects would be done in the background.\nDepending upon if user is admin or not, following behaviour is supported:-\n* for admins : user has the access to DELETE their own as well as credentials created by others\n* for non-admins: user can only DELETE their own credentials.", "operationId": "ves.io.schema.api_credential.CustomAPI.BulkRevoke", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/api_credentialBulkRevokeResponse" } } } }, "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/api_credentialBulkRevokeRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/tenant_and_identity/" }, "x-ves-proto-rpc": "ves.io.schema.api_credential.CustomAPI.BulkRevoke", "tags": [ "web" ], "x-f5xc-operation-metadata": { "purpose": "API credential for programmatic access", "required_fields": [ "metadata.name", "metadata.namespace" ], "optional_fields": [], "field_docs": {}, "conditions": { "prerequisites": [ "Active namespace" ], "postconditions": [ "Api-credential resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "api-credential" ] }, "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": "high", "resource_usage": "high" } }, "x-f5xc-required-fields": [ "metadata.name", "metadata.namespace" ], "x-f5xc-danger-level": "medium", "x-f5xc-side-effects": { "creates": [ "api-credential" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "API/Service Credentials.", "x-ves-proto-service": "ves.io.schema.api_credential.CustomAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/web/namespaces/system/bulk_revoke/service_credentials": { "post": { "summary": "Bulk Revoke service credential.", "description": "It is used to revoke multiple service credentials. This API would disable the credentials and mark them for deletion.\nThe actual removal of objects would be done in the background. Only admins are allowed to access this API.", "operationId": "ves.io.schema.api_credential.CustomAPI.BulkRevokeServiceCredentials", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/api_credentialBulkRevokeResponse" } } } }, "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/api_credentialBulkRevokeRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/tenant_and_identity/" }, "x-ves-proto-rpc": "ves.io.schema.api_credential.CustomAPI.BulkRevokeServiceCredentials", "tags": [ "web" ], "x-f5xc-operation-metadata": { "purpose": "Service credential for API authentication", "required_fields": [ "metadata.name", "metadata.namespace" ], "optional_fields": [], "field_docs": {}, "conditions": { "prerequisites": [ "Active namespace" ], "postconditions": [ "Service-credential resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "service-credential" ] }, "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": "high", "resource_usage": "high" } }, "x-f5xc-required-fields": [ "metadata.name", "metadata.namespace" ], "x-f5xc-danger-level": "medium", "x-f5xc-side-effects": { "creates": [ "service-credential" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "API/Service Credentials.", "x-ves-proto-service": "ves.io.schema.api_credential.CustomAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/web/namespaces/{namespace}/activate/api_credentials": { "post": { "summary": "Activate API credential.", "description": "For API credential activation/deactivation.", "operationId": "ves.io.schema.api_credential.CustomAPI.Activate", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/api_credentialStatusResponse" } } } }, "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\nValue of namespace is always \"system\".", "in": "path", "required": true, "x-displayname": "Namespace", "schema": { "type": "string" }, "x-f5xc-example": "system" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/api_credentialGetRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/tenant_and_identity/" }, "x-ves-proto-rpc": "ves.io.schema.api_credential.CustomAPI.Activate", "tags": [ "web" ], "x-f5xc-operation-metadata": { "purpose": "API credential for programmatic access", "required_fields": [ "metadata.name", "metadata.namespace", "path.namespace" ], "optional_fields": [], "field_docs": {}, "conditions": { "prerequisites": [ "Active namespace" ], "postconditions": [ "Api-credential resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "api-credential" ] }, "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": [ "api-credential" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "API/Service Credentials.", "x-ves-proto-service": "ves.io.schema.api_credential.CustomAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/web/namespaces/{namespace}/activate/service_credentials": { "post": { "summary": "Activate API service credential.", "description": "For Service credential activation/deactivation.", "operationId": "ves.io.schema.api_credential.CustomAPI.ActivateServiceCredentials", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/api_credentialStatusResponse" } } } }, "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\nValue of namespace is always \"system\".", "in": "path", "required": true, "x-displayname": "Namespace", "schema": { "type": "string" }, "x-f5xc-example": "system" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/api_credentialGetRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/tenant_and_identity/" }, "x-ves-proto-rpc": "ves.io.schema.api_credential.CustomAPI.ActivateServiceCredentials", "tags": [ "web" ], "x-f5xc-operation-metadata": { "purpose": "Service credential for API authentication", "required_fields": [ "metadata.name", "metadata.namespace", "path.namespace" ], "optional_fields": [], "field_docs": {}, "conditions": { "prerequisites": [ "Active namespace" ], "postconditions": [ "Service-credential resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "service-credential" ] }, "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": [ "service-credential" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "API/Service Credentials.", "x-ves-proto-service": "ves.io.schema.api_credential.CustomAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/web/namespaces/{namespace}/api_credentials": { "get": { "summary": "List API Credentials.", "description": "Returns list of API credential of all types created by the user.\nQuery will look into tenants system namespace.", "operationId": "ves.io.schema.api_credential.CustomAPI.List", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/api_credentialListResponse" } } } }, "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\nValue of namespace is always \"system\".", "in": "path", "required": true, "x-displayname": "Namespace", "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/tenant_and_identity/" }, "x-ves-proto-rpc": "ves.io.schema.api_credential.CustomAPI.List", "tags": [ "web" ], "x-f5xc-operation-metadata": { "purpose": "API credential for programmatic access", "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": "Create API Credentials.", "description": "User can request 3 types of credential for themselves.\nAPI_TOKEN, API_CERTIFICATE and KUBE_CONFIG.\n\nAn API_TOKEN is an easy to use secret that can be send part of HTTP request header Authorization: APIToken \nin the create request expiry can be set additionally. F5XC also supports renew and revoke of API_TOKENs.\nAn API_CERTIFICATE is a password protected P12 certificate bundle document and can be used as client certificate.\nWhen sending create request, user can request with an expiry and password. F5XC Identity Authority (IA)\nmints new certificate with required credentials and is shared in the response as API Certificate.\nA virtual K8s kubeconfig can be generate with type KUBE_CONFIG. Create request can specify cluster, namespace and expiry\nwith embedded user access with client certificate.\n\nRequest can specify name, expiry and type of credential required. Since this credential inherits the creator's RBAC\nservice will determine the user from request context.", "operationId": "ves.io.schema.api_credential.CustomAPI.Create", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/api_credentialCreateResponse" } } } }, "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\nValue of namespace is always \"system\".", "in": "path", "required": true, "x-displayname": "Namespace", "schema": { "type": "string" }, "x-f5xc-example": "value" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/api_credentialCreateRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/tenant_and_identity/" }, "x-ves-proto-rpc": "ves.io.schema.api_credential.CustomAPI.Create", "tags": [ "web" ], "x-f5xc-operation-metadata": { "purpose": "API credential for programmatic access", "required_fields": [ "metadata.name", "metadata.namespace", "path.namespace" ], "optional_fields": [], "field_docs": {}, "conditions": { "prerequisites": [ "Active namespace" ], "postconditions": [ "Api-credential resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "api-credential" ] }, "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": [ "api-credential" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "API/Service Credentials.", "x-ves-proto-service": "ves.io.schema.api_credential.CustomAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/web/namespaces/{namespace}/api_credentials/{name}": { "get": { "summary": "GET API Credentials.", "description": "GET implements API credential query by name.\nReturns API credential object. Query will look into tenants system namespace for API credential by name.", "operationId": "ves.io.schema.api_credential.CustomAPI.Get", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/api_credentialGetResponse" } } } }, "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\nValue of namespace is always \"system\".", "in": "path", "required": true, "x-displayname": "Namespace", "schema": { "type": "string" }, "x-f5xc-example": "system" }, { "name": "name", "description": "Credential name\n\nx-required\nName of API credential.", "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/tenant_and_identity/" }, "x-ves-proto-rpc": "ves.io.schema.api_credential.CustomAPI.Get", "tags": [ "web" ], "x-f5xc-operation-metadata": { "purpose": "API credential for programmatic access", "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" } }, "x-displayname": "API/Service Credentials.", "x-ves-proto-service": "ves.io.schema.api_credential.CustomAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/web/namespaces/{namespace}/renew/api_credentials": { "post": { "summary": "Renew API credential.", "description": "Renew user's my credential expiry.\nRenewal is only supported for the credential type API_TOKEN.", "operationId": "ves.io.schema.api_credential.CustomAPI.Renew", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/api_credentialStatusResponse" } } } }, "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\nValue of namespace is always \"system\" .", "in": "path", "required": true, "x-displayname": "Namespace", "schema": { "type": "string" }, "x-f5xc-example": "system" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/api_credentialRenewRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/tenant_and_identity/" }, "x-ves-proto-rpc": "ves.io.schema.api_credential.CustomAPI.Renew", "tags": [ "web" ], "x-f5xc-operation-metadata": { "purpose": "API credential for programmatic access", "required_fields": [ "metadata.name", "metadata.namespace", "path.namespace" ], "optional_fields": [], "field_docs": {}, "conditions": { "prerequisites": [ "Active namespace" ], "postconditions": [ "Api-credential resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "api-credential" ] }, "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": [ "api-credential" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "API/Service Credentials.", "x-ves-proto-service": "ves.io.schema.api_credential.CustomAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/web/namespaces/{namespace}/renew/service_credentials": { "post": { "summary": "Renew API service credential.", "description": "Renew service credential's expiry.\nRenewal is only supported for the credential type SERVICE_API_TOKEN.", "operationId": "ves.io.schema.api_credential.CustomAPI.RenewServiceCredentials", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/api_credentialStatusResponse" } } } }, "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\nValue of namespace is always \"system\" .", "in": "path", "required": true, "x-displayname": "Namespace", "schema": { "type": "string" }, "x-f5xc-example": "system" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/api_credentialRenewRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/tenant_and_identity/" }, "x-ves-proto-rpc": "ves.io.schema.api_credential.CustomAPI.RenewServiceCredentials", "tags": [ "web" ], "x-f5xc-operation-metadata": { "purpose": "Service credential for API authentication", "required_fields": [ "metadata.name", "metadata.namespace", "path.namespace" ], "optional_fields": [], "field_docs": {}, "conditions": { "prerequisites": [ "Active namespace" ], "postconditions": [ "Service-credential resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "service-credential" ] }, "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": [ "service-credential" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "API/Service Credentials.", "x-ves-proto-service": "ves.io.schema.api_credential.CustomAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/web/namespaces/{namespace}/revoke/api_credentials": { "post": { "summary": "Revoke API credential.", "description": "For API credential revoke/deletion.", "operationId": "ves.io.schema.api_credential.CustomAPI.Revoke", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/api_credentialStatusResponse" } } } }, "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\nValue of namespace is always \"system\".", "in": "path", "required": true, "x-displayname": "Namespace", "schema": { "type": "string" }, "x-f5xc-example": "system" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/api_credentialGetRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/tenant_and_identity/" }, "x-ves-proto-rpc": "ves.io.schema.api_credential.CustomAPI.Revoke", "tags": [ "web" ], "x-f5xc-operation-metadata": { "purpose": "API credential for programmatic access", "required_fields": [ "metadata.name", "metadata.namespace", "path.namespace" ], "optional_fields": [], "field_docs": {}, "conditions": { "prerequisites": [ "Active namespace" ], "postconditions": [ "Api-credential resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "api-credential" ] }, "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": [ "api-credential" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "API/Service Credentials.", "x-ves-proto-service": "ves.io.schema.api_credential.CustomAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/web/namespaces/{namespace}/revoke/scim_token": { "post": { "summary": "Revoke SCIM API credential.", "description": "For SCIM API credential revoke/deletion.", "operationId": "ves.io.schema.api_credential.CustomAPI.RevokeScimToken", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/api_credentialStatusResponse" } } } }, "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\nValue of namespace is always \"system\".", "in": "path", "required": true, "x-displayname": "Namespace", "schema": { "type": "string" }, "x-f5xc-example": "system" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/api_credentialScimTokenRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/tenant_and_identity/" }, "x-ves-proto-rpc": "ves.io.schema.api_credential.CustomAPI.RevokeScimToken", "tags": [ "web" ], "x-f5xc-operation-metadata": { "purpose": "Authentication credential for access control", "required_fields": [ "metadata.name", "metadata.namespace", "path.namespace" ], "optional_fields": [], "field_docs": {}, "conditions": { "prerequisites": [ "Active namespace" ], "postconditions": [ "Scim-token resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "scim-token" ] }, "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": [ "scim-token" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "API/Service Credentials.", "x-ves-proto-service": "ves.io.schema.api_credential.CustomAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/web/namespaces/{namespace}/revoke/service_credentials": { "post": { "summary": "Revoke Service credential.", "description": "For Service credential revoke/deletion.", "operationId": "ves.io.schema.api_credential.CustomAPI.RevokeServiceCredentials", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/api_credentialStatusResponse" } } } }, "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\nValue of namespace is always \"system\".", "in": "path", "required": true, "x-displayname": "Namespace", "schema": { "type": "string" }, "x-f5xc-example": "system" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/api_credentialGetRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/tenant_and_identity/" }, "x-ves-proto-rpc": "ves.io.schema.api_credential.CustomAPI.RevokeServiceCredentials", "tags": [ "web" ], "x-f5xc-operation-metadata": { "purpose": "Service credential for API authentication", "required_fields": [ "metadata.name", "metadata.namespace", "path.namespace" ], "optional_fields": [], "field_docs": {}, "conditions": { "prerequisites": [ "Active namespace" ], "postconditions": [ "Service-credential resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "service-credential" ] }, "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": [ "service-credential" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "API/Service Credentials.", "x-ves-proto-service": "ves.io.schema.api_credential.CustomAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/web/namespaces/{namespace}/scim_token": { "get": { "summary": "GET Scim Token.", "description": "GetScimToken implements querying of scim token.\nSCIM API token value will be visible only on create API response.\nThis detail RPC will show the current token's expiry. Returns API credential object.", "operationId": "ves.io.schema.api_credential.CustomAPI.GetScimToken", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/api_credentialGetResponse" } } } }, "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\nValue of namespace is always \"system\".", "in": "path", "required": true, "x-displayname": "Namespace", "schema": { "type": "string" }, "x-f5xc-example": "system" } ], "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/tenant_and_identity/" }, "x-ves-proto-rpc": "ves.io.schema.api_credential.CustomAPI.GetScimToken", "tags": [ "web" ], "x-f5xc-operation-metadata": { "purpose": "Authentication credential for access control", "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": "Create/RE-create SCIM API token.", "description": "Request to create/RE-create new SCIM API credential.\nNote: Only one valid (non-expired) SCIM token could exist for a tenant, and only if SCIM is enabled for the tenant.\nIf a valid SCIM token is already minted, we would revoke the current one and generate a new one.", "operationId": "ves.io.schema.api_credential.CustomAPI.RecreateScimToken", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/api_credentialCreateResponse" } } } }, "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\nValue of namespace is always \"system\".", "in": "path", "required": true, "x-displayname": "Namespace", "schema": { "type": "string" }, "x-f5xc-example": "value" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/api_credentialRecreateScimTokenRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/tenant_and_identity/" }, "x-ves-proto-rpc": "ves.io.schema.api_credential.CustomAPI.RecreateScimToken", "tags": [ "web" ], "x-f5xc-operation-metadata": { "purpose": "Authentication credential for access control", "required_fields": [ "metadata.name", "metadata.namespace", "path.namespace" ], "optional_fields": [], "field_docs": {}, "conditions": { "prerequisites": [ "Active namespace" ], "postconditions": [ "Scim-token resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "scim-token" ] }, "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": [ "scim-token" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "API/Service Credentials.", "x-ves-proto-service": "ves.io.schema.api_credential.CustomAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/web/namespaces/{namespace}/service_credentials": { "get": { "summary": "List service credentials.", "description": "Request to list service credentials created by user.", "operationId": "ves.io.schema.api_credential.CustomAPI.ListServiceCredentials", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/api_credentialListServiceCredentialsResponse" } } } }, "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\nValue of namespace is always \"system\".", "in": "path", "required": true, "x-displayname": "Namespace", "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/tenant_and_identity/" }, "x-ves-proto-rpc": "ves.io.schema.api_credential.CustomAPI.ListServiceCredentials", "tags": [ "web" ], "x-f5xc-operation-metadata": { "purpose": "Service credential for API authentication", "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": "Create service credentials.", "description": "Request to create new service credentials.\nUser can specify name, expiry and list of namespce and allowed role of the service user.", "operationId": "ves.io.schema.api_credential.CustomAPI.CreateServiceCredentials", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/api_credentialCreateResponse" } } } }, "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\nValue of namespace is always \"system\".", "in": "path", "required": true, "x-displayname": "Namespace", "schema": { "type": "string" }, "x-f5xc-example": "system" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/api_credentialCreateServiceCredentialsRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/tenant_and_identity/" }, "x-ves-proto-rpc": "ves.io.schema.api_credential.CustomAPI.CreateServiceCredentials", "tags": [ "web" ], "x-f5xc-operation-metadata": { "purpose": "Service credential for API authentication", "required_fields": [ "metadata.name", "metadata.namespace", "path.namespace" ], "optional_fields": [], "field_docs": {}, "conditions": { "prerequisites": [ "Active namespace" ], "postconditions": [ "Service-credential resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "service-credential" ] }, "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": [ "service-credential" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "API/Service Credentials.", "x-ves-proto-service": "ves.io.schema.api_credential.CustomAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/web/namespaces/{namespace}/service_credentials/{name}": { "get": { "summary": "GET Service Credential.", "description": "GET implements service credential query by name.\nReturns service credential object. Query will look into tenants system namespace for service credential by name.", "operationId": "ves.io.schema.api_credential.CustomAPI.GetServiceCredentials", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/api_credentialGetServiceCredentialsResponse" } } } }, "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\nValue of namespace is always \"system\".", "in": "path", "required": true, "x-displayname": "Namespace", "schema": { "type": "string" }, "x-f5xc-example": "system" }, { "name": "name", "description": "Credential name\n\nx-required\nName of API credential.", "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/tenant_and_identity/" }, "x-ves-proto-rpc": "ves.io.schema.api_credential.CustomAPI.GetServiceCredentials", "tags": [ "web" ], "x-f5xc-operation-metadata": { "purpose": "Service credential for API authentication", "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" } }, "put": { "summary": "Replace service credentials.", "description": "Request to replace user_groups and roles in service credentials.\nNote - for updating expiry use RenewServiceCredentials and to active/inactive service credential use ActivateServiceCredentials API.", "operationId": "ves.io.schema.api_credential.CustomAPI.ReplaceServiceCredentials", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/api_credentialReplaceServiceCredentialsResponse" } } } }, "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 service credential user.\nValue of namespace is always \"system\".", "in": "path", "required": true, "x-displayname": "Namespace", "schema": { "type": "string" }, "x-f5xc-example": "system" }, { "name": "name", "description": "Service Credential name\n\nx-required\nName of service credential object.", "in": "path", "required": true, "x-displayname": "Name", "schema": { "type": "string" }, "x-f5xc-example": "api-cred-00000000-0000-4000-8000-c725f8541661" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/api_credentialReplaceServiceCredentialsRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/tenant_and_identity/" }, "x-ves-proto-rpc": "ves.io.schema.api_credential.CustomAPI.ReplaceServiceCredentials", "tags": [ "web" ], "x-f5xc-operation-metadata": { "purpose": "Service credential for API authentication", "required_fields": [ "path.name", "path.namespace" ], "optional_fields": [], "field_docs": {}, "conditions": { "prerequisites": [ "Active namespace" ], "postconditions": [ "Resource updated with new values" ] }, "side_effects": { "modifies": [ "service-credential" ] }, "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.name", "path.namespace" ], "x-f5xc-danger-level": "medium", "x-f5xc-side-effects": { "modifies": [ "service-credential" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 800, "p95_ms": 2500, "p99_ms": 6000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "API/Service Credentials.", "x-ves-proto-service": "ves.io.schema.api_credential.CustomAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" } }, "components": { "securitySchemes": { "ApiToken": { "type": "apiKey", "name": "Authorization", "in": "header", "description": "API Token authentication. Format: 'APIToken '" }, "apiKeyAuth": { "type": "apiKey", "in": "header", "name": "Authorization", "description": "F5 XC API Token (format: APIToken )" } }, "schemas": { "api_credentialAPICredentialType": { "type": "string", "description": "Types of API credential given when requesting credentials from F5 Distributed Cloud\n\nF5XC user certificate to access F5XC public API using mTLS\nusing self credential (my credential)\nKubernetes config file to access Virtual Kubernetes API in F5 Distributed Cloud\nusing self credential (my credential)\nAPI token to access F5XC public API\nusing self credential (my credential)\nAPI token for service credentials\nusing service user credential (service credential)\nAPI certificate for service credentials\nusing service user credential (service credential)\nService Credential kubeconfig\nusing service user credential (service credential)\nKubeconfig for accessing Site via Global Controller\nusing self credential (my credential)\nToken for the SCIM public APIs used to sync users and groups with the F5XC platform.\nExternal identity provider's SCIM client can use this token as Bearer token with Authorization header\nService Credential Kubeconfig for accessing Site via Global Controller\nusing service user credential (service credential)", "title": "API Credential type", "enum": [ "API_CERTIFICATE", "KUBE_CONFIG", "API_TOKEN", "SERVICE_API_TOKEN", "SERVICE_API_CERTIFICATE", "SERVICE_KUBE_CONFIG", "SITE_GLOBAL_KUBE_CONFIG", "SCIM_API_TOKEN", "SERVICE_SITE_GLOBAL_KUBE_CONFIG" ], "default": "API_CERTIFICATE", "x-displayname": "Credential Type.", "x-ves-proto-enum": "ves.io.schema.api_credential.APICredentialType", "x-f5xc-description-short": "Types of API credential given when requesting credentials from F5 Distributed Cloud F5XC user certificate to access F5XC public API using mTLS...", "x-f5xc-description-medium": "Types of API credential given when requesting credentials from F5 Distributed Cloud F5XC user certificate to access F5XC public API using mTLS using self credential (my credential) Kubernetes config file to access Virtual Kubernetes API in F5 Distributed Cloud using self credential (my...", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for api_credentialAPICredentialType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_credentialAPICredentialType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "API credentials are platform-level identity" }, "classification": { "category": "identity", "multi_tenant_pattern": "none" } } }, "api_credentialApiCertificateType": { "type": "object", "description": "Service API Certificate parameters.", "title": "api_certificate", "x-displayname": "Service API Certificate Specification.", "x-ves-proto-message": "ves.io.schema.api_credential.ApiCertificateType", "properties": { "password": { "type": "string", "description": "Password is used for generating an API certificate P12 bundle user can use to protect access to it.\nThis password will not be saved/persisted anywhere in the system. Applicable for credential type API_CERTIFICATE\nUsers have to use this password when they use the certificate, e.g. In curl or while adding to key chain.", "title": "Password for API certificate", "minLength": 6, "maxLength": 50, "x-displayname": "Password", "x-ves-example": "MyPassw0rd123.", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.string.max_bytes": "50", "ves.io.schema.rules.string.min_bytes": "6" }, "x-f5xc-example": "myPassw0rd123", "x-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.string.max_bytes": "50", "ves.io.schema.rules.string.min_bytes": "6" }, "x-f5xc-description-short": "Password is used for generating an API certificate P12 bundle user can use to protect access to it.", "x-f5xc-description-medium": "Password is used for generating an API certificate P12 bundle user can use to protect access to it. This password will not be saved/persisted anywhere in the system. Applicable for credential type API_CERTIFICATE Users have to use this password when they use the certificate, e.g.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "minLength": 6, "maxLength": 50, "byteLength": { "max": 50, "min": 6 }, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for api_credentialApiCertificateType", "required_fields": [ "password" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_credentialApiCertificateType\nmetadata:\n name: example\n namespace: default\nspec:\n password: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"password\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "certificates", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "API credentials are platform-level identity" }, "classification": { "category": "identity", "multi_tenant_pattern": "none" } } }, "api_credentialBulkRevokeRequest": { "type": "object", "description": "Request format for revoking multiple API credentials.", "title": "Bulk Revoke Request", "x-displayname": "Bulk Revoke Request.", "x-ves-oneof-field-bulkrevoke_choice": "[\"expired_selector\",\"name_selector\"]", "x-ves-proto-message": "ves.io.schema.api_credential.BulkRevokeRequest", "properties": { "expired_selector": { "allOf": [ { "$ref": "#/components/schemas/api_credentialExpiredSelector" } ], "x-f5xc-description-short": "Configuration parameter for expired selector.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "name_selector" ] }, "name_selector": { "allOf": [ { "$ref": "#/components/schemas/api_credentialNameSelector" } ], "x-f5xc-example": "example-resource", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "expired_selector" ] } }, "x-f5xc-description-short": "Request format for revoking multiple API credentials.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for api_credentialBulkRevokeRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_credentialBulkRevokeRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "API credentials are platform-level identity" }, "classification": { "category": "identity", "multi_tenant_pattern": "none" } } }, "api_credentialBulkRevokeResponse": { "type": "object", "description": "Response format for revoking multiple API credentials.", "title": "Bulk Revoke Response", "x-displayname": "Bulk Revoke Response.", "x-ves-proto-message": "ves.io.schema.api_credential.BulkRevokeResponse", "properties": { "credentials_failed": { "type": "array", "description": "Names of credentials that are not marked as DELETE due to some error.", "title": "Credentials Failed", "items": { "type": "string" }, "x-displayname": "Credentials Failed.", "x-f5xc-description-short": "Names of credentials that are not marked as DELETE due to some error.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "credentials_marked_for_deletion": { "type": "array", "description": "Names of credentials that are successfully marked for deletion.", "title": "Credentials Success", "items": { "type": "string" }, "x-displayname": "Credentials Success.", "x-f5xc-description-short": "Names of credentials that are successfully marked for deletion.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "error_message": { "type": "string", "description": "Error message about the failures of bulk revoke of credentials.", "title": "error message", "x-displayname": "Error Message.", "x-f5xc-description-short": "Error message about the failures of bulk revoke of credentials.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Response format for revoking multiple API credentials.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for api_credentialBulkRevokeResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_credentialBulkRevokeResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "API credentials are platform-level identity" }, "classification": { "category": "identity", "multi_tenant_pattern": "none" } } }, "api_credentialCreateRequest": { "type": "object", "description": "CreateRequest is the request format for generating API credential.", "title": "Create Request", "x-displayname": "Create Request.", "x-ves-displayorder": "1,2,3,5", "x-ves-proto-message": "ves.io.schema.api_credential.CreateRequest", "properties": { "expiration_days": { "type": "integer", "description": "Qty of days of service credential expiration.", "title": "Expiry in days", "format": "int64", "x-displayname": "Expiry in days.", "x-ves-example": "Value", "x-f5xc-example": "value", "x-f5xc-description-short": "Qty of days of service credential expiration.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "name": { "type": "string", "description": "Name of API credential record. It will be saved in metadata.", "title": "Name", "x-displayname": "Name", "x-ves-example": "Value", "x-f5xc-example": "value", "x-f5xc-description-short": "Name of API credential record. It will be saved in metadata.", "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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" }, "namespace": { "type": "string", "description": "Value of namespace is always \"system\".", "title": "Namespace", "x-displayname": "Namespace", "x-ves-example": "Value", "x-f5xc-example": "value", "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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" }, "spec": { "allOf": [ { "$ref": "#/components/schemas/api_credentialCustomCreateSpecType" } ], "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "CreateRequest is the request format for generating API credential.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for api_credentialCreateRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_credentialCreateRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "API credentials are platform-level identity" }, "classification": { "category": "identity", "multi_tenant_pattern": "none" } } }, "api_credentialCreateResponse": { "type": "object", "description": "CreateResponse is the response format for the credential's create request.", "title": "Create response", "x-displayname": "Create Response.", "x-ves-displayorder": "1", "x-ves-proto-message": "ves.io.schema.api_credential.CreateResponse", "properties": { "active": { "type": "boolean", "format": "boolean", "description": "Indicates if the resource is active", "x-f5xc-example": "True", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "data": { "type": "string", "description": "Data is the response format based on the API credential type.\nIn case of API_CERTIFICATES, the response is the base64 encoded value of\ncertificate in PKCS12 format.\nIn case of KUBE_CONFIG, the response is the base64 encoded value of the K8s kubeconfig file\nwith contents as requested - cluster,namespace and base64 encoded certificate, key and CA.", "title": "Credentials", "x-displayname": "Credentials.", "x-ves-example": "Value", "x-f5xc-example": "value", "x-f5xc-description-short": "Data is the response format based on the API credential type.", "x-f5xc-description-medium": "Data is the response format based on the API credential type. In case of API_CERTIFICATES, the response is the base64 encoded value of certificate in PKCS12 format. In case of KUBE_CONFIG, the response is the base64 encoded value of the K8s kubeconfig file with contents as requested ...", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "expiration_timestamp": { "type": "string", "format": "date-time", "description": "Configuration parameter for expiration timestamp", "x-f5xc-description-short": "Configuration parameter for expiration timestamp.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "format": "date-time", "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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", "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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" } }, "x-f5xc-description-short": "CreateResponse is the response format for the credential's create request.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for api_credentialCreateResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_credentialCreateResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "API credentials are platform-level identity" }, "classification": { "category": "identity", "multi_tenant_pattern": "none" } } }, "api_credentialCreateServiceCredentialsRequest": { "type": "object", "description": "CreateServiceCredentialsRequest is the request format for creating service credentials.", "title": "Create Service Credentials Request", "x-displayname": "Create Service Credentials Request.", "x-ves-oneof-field-service_credential_choice": "[\"api_certificate\",\"api_token\",\"site_kubeconfig\",\"vk8s_kubeconfig\"]", "x-ves-proto-message": "ves.io.schema.api_credential.CreateServiceCredentialsRequest", "properties": { "api_certificate": { "allOf": [ { "$ref": "#/components/schemas/api_credentialApiCertificateType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "api_token", "site_kubeconfig", "vk8s_kubeconfig" ] }, "api_token": { "allOf": [ { "$ref": "#/components/schemas/schemaEmpty" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "api_certificate", "site_kubeconfig", "vk8s_kubeconfig" ] }, "expiration_days": { "type": "integer", "description": "Qty of days of service credential expiration.", "title": "Expiry in days", "format": "int64", "x-displayname": "Expiry in days.", "x-ves-example": "Value", "x-f5xc-example": "value", "x-f5xc-description-short": "Qty of days of service credential expiration.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "name": { "type": "string", "description": "Name of API credential record. It will be saved in metadata.", "title": "Name", "x-displayname": "Name", "x-ves-example": "Svc-cred-app1.", "x-f5xc-example": "svc-cred-app1", "x-f5xc-description-short": "Name of API credential record. It will be saved in metadata.", "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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" }, "namespace": { "type": "string", "description": "Value of namespace is always \"system\".", "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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" }, "namespace_roles": { "type": "array", "description": "List of roles per namespace to be assigned to service credentials.", "title": "Roles", "items": { "$ref": "#/components/schemas/schemaNamespaceRoleType" }, "x-displayname": "List of roles.", "x-ves-example": "Value", "x-f5xc-example": "value", "x-f5xc-description-short": "List of roles per namespace to be assigned to service credentials.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "password": { "type": "string", "description": "Password is used for generating an API certificate P12 bundle user can use to protect access to it.\nThis password will not be saved/persisted anywhere in the system. Applicable for credential type API_CERTIFICATE\nUsers have to use this password when they use the certificate, e.g. In curl or while adding to key chain.", "title": "Password for API certificate", "x-displayname": "Password", "x-ves-example": "MyPassw0rd123.", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true" }, "x-f5xc-example": "myPassw0rd123", "x-validation-rules": { "ves.io.schema.rules.message.required": "true" }, "x-f5xc-description-short": "Password is used for generating an API certificate P12 bundle user can use to protect access to it.", "x-f5xc-description-medium": "Password is used for generating an API certificate P12 bundle user can use to protect access to it. This password will not be saved/persisted anywhere in the system. Applicable for credential type API_CERTIFICATE Users have to use this password when they use the certificate, e.g.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "site_kubeconfig": { "allOf": [ { "$ref": "#/components/schemas/api_credentialSiteKubeconfigType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "api_certificate", "api_token", "vk8s_kubeconfig" ] }, "type": { "allOf": [ { "$ref": "#/components/schemas/api_credentialAPICredentialType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "user_group_names": { "type": "array", "description": "List of user_groups assigned to this service credential.", "title": "User Groups Names", "items": { "type": "string" }, "x-displayname": "Groups", "x-ves-example": "[\"dev-group-1\"]", "x-f5xc-example": "\"[\"dev-group-1\"]\"", "x-f5xc-description-short": "List of user_groups assigned to this service credential.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "virtual_k8s_name": { "type": "string", "description": "Name of virtual_k8s cluster. Applicable for KUBE_CONFIG.", "title": "virtual k8s cluster name", "x-displayname": "VK8s Cluster.", "x-ves-example": "Vk8s-product-app1.", "x-f5xc-example": "vk8s-product-app1", "x-f5xc-description-short": "Name of virtual_k8s cluster. Applicable for KUBE_CONFIG.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "virtual_k8s_namespace": { "type": "string", "description": "Namespace of virtual_k8s cluster. Applicable for KUBE_CONFIG.", "title": "Virtual k8s namespace", "x-displayname": "VK8s Namespace.", "x-ves-example": "App-ns1", "x-f5xc-example": "app-ns1", "x-f5xc-description-short": "Namespace of virtual_k8s cluster. Applicable for KUBE_CONFIG.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "vk8s_kubeconfig": { "allOf": [ { "$ref": "#/components/schemas/api_credentialVk8sKubeconfigType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "api_certificate", "api_token", "site_kubeconfig" ] } }, "x-f5xc-description-short": "CreateServiceCredentialsRequest is the request format for creating service credentials.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for api_credentialCreateServiceCredentialsRequest", "required_fields": [ "password" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_credentialCreateServiceCredentialsRequest\nmetadata:\n name: example\n namespace: default\nspec:\n password: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"password\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "API credentials are platform-level identity" }, "classification": { "category": "identity", "multi_tenant_pattern": "none" } } }, "api_credentialCustomCreateSpecType": { "type": "object", "description": "Create request specification.", "title": "Create Spec Type", "x-displayname": "Create API Credential.", "x-ves-displayorder": "1,2,5,3,4", "x-ves-proto-message": "ves.io.schema.api_credential.CustomCreateSpecType", "properties": { "password": { "type": "string", "description": "Password is used for generating an API certificate P12 bundle user can use to protect access to it.\nThis password will not be saved/persisted anywhere in the system. Applicable for credential type API_CERTIFICATE\nUsers have to use this password when they use the certificate, e.g. In curl or while adding to key chain.", "title": "Password for API certificate", "x-displayname": "Password", "x-ves-example": "MyPassw0rd123.", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true" }, "x-f5xc-example": "myPassw0rd123", "x-validation-rules": { "ves.io.schema.rules.message.required": "true" }, "x-f5xc-description-short": "Password is used for generating an API certificate P12 bundle user can use to protect access to it.", "x-f5xc-description-medium": "Password is used for generating an API certificate P12 bundle user can use to protect access to it. This password will not be saved/persisted anywhere in the system. Applicable for credential type API_CERTIFICATE Users have to use this password when they use the certificate, e.g.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "type": { "allOf": [ { "$ref": "#/components/schemas/api_credentialAPICredentialType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "virtual_k8s_name": { "type": "string", "description": "Name of virtual K8s cluster. Applicable for KUBE_CONFIG.", "title": "virtual k8s cluster name", "x-displayname": "VK8s Cluster.", "x-ves-example": "Vk8s-product-app1.", "x-f5xc-example": "vk8s-product-app1", "x-f5xc-description-short": "Name of virtual K8s cluster. Applicable for KUBE_CONFIG.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "virtual_k8s_namespace": { "type": "string", "description": "Namespace of virtual K8s cluster. Applicable for KUBE_CONFIG.", "title": "Virtual K8s namespace", "x-displayname": "VK8s Namespace.", "x-ves-example": "App-ns1", "x-f5xc-example": "app-ns1", "x-f5xc-description-short": "Namespace of virtual K8s cluster. Applicable for KUBE_CONFIG.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for api_credentialCustomCreateSpecType", "required_fields": [ "password" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_credentialCustomCreateSpecType\nmetadata:\n name: example\n namespace: default\nspec:\n password: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"password\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-field-examples": { "spec.password": "value" }, "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "API credentials are platform-level identity" }, "classification": { "category": "identity", "multi_tenant_pattern": "none" } } }, "api_credentialExpiredSelector": { "type": "object", "description": "It specifies which expired credentials needs to be deleted.", "title": "Expired Selector", "x-displayname": "Expired Selector.", "x-ves-oneof-field-expired_credential_choice": "[\"all\",\"credential_type\"]", "x-ves-proto-message": "ves.io.schema.api_credential.ExpiredSelector", "properties": { "all": { "allOf": [ { "$ref": "#/components/schemas/schemaEmpty" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "credential_type" ] }, "credential_type": { "allOf": [ { "$ref": "#/components/schemas/api_credentialAPICredentialType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "all" ] } }, "x-f5xc-description-short": "It specifies which expired credentials needs to be deleted.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for api_credentialExpiredSelector", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_credentialExpiredSelector\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "API credentials are platform-level identity" }, "classification": { "category": "identity", "multi_tenant_pattern": "none" } } }, "api_credentialGetRequest": { "type": "object", "description": "GET credential object with a given name.", "title": "Get credential request", "x-displayname": "GET Credential.", "x-ves-proto-message": "ves.io.schema.api_credential.GetRequest", "properties": { "name": { "type": "string", "description": "Name of API credential.", "title": "Credential name", "x-displayname": "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": 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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" }, "namespace": { "type": "string", "description": "Value of namespace is always \"system\".", "title": "Namespace", "x-displayname": "Namespace", "x-ves-example": "System", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true" }, "x-f5xc-example": "system", "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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" } }, "x-f5xc-description-short": "GET credential object with a given name.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for api_credentialGetRequest", "required_fields": [ "name", "namespace" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_credentialGetRequest\nmetadata:\n name: example\n namespace: default\nspec:\n name: value\n namespace: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"name\": \"value\",\n \"namespace\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "API credentials are platform-level identity" }, "classification": { "category": "identity", "multi_tenant_pattern": "none" } } }, "api_credentialGetResponse": { "type": "object", "description": "Response of GET credential request with a given name.", "title": "Get credential response", "x-displayname": "GET Credential Response.", "x-ves-proto-message": "ves.io.schema.api_credential.GetResponse", "properties": { "object": { "allOf": [ { "$ref": "#/components/schemas/api_credentialObject" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Response of GET credential request with a given name.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for api_credentialGetResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_credentialGetResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "API credentials are platform-level identity" }, "classification": { "category": "identity", "multi_tenant_pattern": "none" } } }, "api_credentialGetServiceCredentialsResponse": { "type": "object", "description": "Response of GET service credentials request with a given name.", "title": "Get service credentials response", "x-displayname": "GET Service Credentials Response.", "x-ves-proto-message": "ves.io.schema.api_credential.GetServiceCredentialsResponse", "properties": { "active": { "type": "boolean", "description": "Possibility to deactivate credential with no deletion.", "title": "Active", "format": "boolean", "x-displayname": "Active", "x-ves-example": "True", "x-f5xc-example": "true", "x-f5xc-description-short": "Possibility to deactivate credential with no deletion.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "create_timestamp": { "type": "string", "description": "Create time of service credential.", "title": "Create timestamp", "format": "date-time", "x-displayname": "Creation Time.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "format": "date-time", "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "expiry_timestamp": { "type": "string", "description": "Expiry time of service credential.", "title": "Expiry time", "format": "date-time", "x-displayname": "Expiry Time.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "format": "date-time", "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "name": { "type": "string", "description": "Name of service credential object.", "title": "Credential name", "x-displayname": "Name", "x-ves-example": "Value", "x-f5xc-example": "value", "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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" }, "namespace": { "type": "string", "description": "Namespace of service credential object.", "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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" }, "namespace_access": { "allOf": [ { "$ref": "#/components/schemas/schemaNamespaceAccessType" } ], "x-f5xc-example": "example-resource", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "type": { "allOf": [ { "$ref": "#/components/schemas/api_credentialAPICredentialType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "uid": { "type": "string", "description": "Uid of service credential object.", "title": "uid of the record", "x-displayname": "UUID", "x-ves-example": "00000000-0000-4000-8000-676e83e049e2.", "x-f5xc-example": "00000000-0000-4000-8000-676e83e049e2", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "user_email": { "type": "string", "description": "Email of the service user attached to service credential .", "title": "Email of user", "x-displayname": "User", "x-ves-example": "Admin@example.com.", "x-f5xc-example": "admin@example.com", "x-f5xc-description-short": "Email of the service user attached to service credential .", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "user_group_names": { "type": "array", "description": "User group list associated to this service credential.", "title": "User Groups Names", "items": { "type": "string" }, "x-displayname": "User Groups.", "x-ves-example": "[\"dev-group-1\"]", "x-f5xc-example": "\"[\"dev-group-1\"]\"", "x-f5xc-description-short": "User group list associated to this service credential.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Response of GET service credentials request with a given name.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for api_credentialGetServiceCredentialsResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_credentialGetServiceCredentialsResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "API credentials are platform-level identity" }, "classification": { "category": "identity", "multi_tenant_pattern": "none" } } }, "api_credentialGlobalSpecType": { "type": "object", "description": "Keeps track of user requested API credentials.", "title": "API credentials", "x-displayname": "API Credentials.", "x-ves-proto-message": "ves.io.schema.api_credential.GlobalSpecType", "properties": { "active": { "type": "boolean", "description": "Possibility to deactivate/activate credential with no deletion.", "title": "Active", "format": "boolean", "x-displayname": "Active", "x-f5xc-example": "True", "x-f5xc-description-short": "Possibility to deactivate/activate credential with no deletion.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "certificate_serial_num": { "type": "string", "description": "Serial number of the client certificate part of credential type API Certificate or Kubeconfig.", "title": "Certificate Serial Number", "maxLength": 32, "x-displayname": "Certificate Serial Number.", "x-ves-validation-rules": { "ves.io.schema.rules.string.max_len": "32" }, "x-validation-rules": { "ves.io.schema.rules.string.max_len": "32" }, "x-f5xc-description-short": "Serial number of the client certificate part of credential type API Certificate or Kubeconfig.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 32, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "created_timestamp": { "type": "string", "description": "Timestamp of credential creation.", "title": "Created timestamp", "format": "date-time", "x-displayname": "Created timestamp.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "format": "date-time", "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "digest": { "type": "string", "description": "Digest sha1 of credential.", "title": "Digest sha1", "x-displayname": "Digest sha1.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "expiration_timestamp": { "type": "string", "description": "Timestamp of credential expiration.", "title": "Expiry timestamp", "format": "date-time", "x-displayname": "Expiry timestamp.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "format": "date-time", "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "site_name": { "type": "string", "description": "Site name when global kubeconfig is issued for physical K8s site.", "title": "Site Name", "x-displayname": "Site Name", "x-f5xc-example": "example-resource", "x-f5xc-description-short": "Site name when global kubeconfig is issued for physical K8s site.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "type": { "allOf": [ { "$ref": "#/components/schemas/api_credentialAPICredentialType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "users": { "type": "array", "description": "Reference to user for whom API credential is created.", "title": "user requesting credential", "maxItems": 1, "items": { "$ref": "#/components/schemas/schemaObjectRefType" }, "x-displayname": "User", "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 for whom API credential is created.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 1, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "virtual_k8s_name": { "type": "string", "description": "Name of virtual K8s cluster.", "title": "Virtual K8s", "x-displayname": "Virtual K8s.", "x-f5xc-example": "example-resource", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "virtual_k8s_namespace": { "type": "string", "description": "Namespace of virtual_k8s.", "title": "Virtual K8s namespace", "x-displayname": "Namespace", "x-f5xc-example": "example-resource", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Keeps track of user requested API credentials.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for api_credentialGlobalSpecType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_credentialGlobalSpecType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "API credentials are platform-level identity" }, "classification": { "category": "identity", "multi_tenant_pattern": "none" } } }, "api_credentialListResponse": { "type": "object", "description": "Response of request to list all of users credential objects.", "title": "List credential response", "x-displayname": "List Credential Response.", "x-ves-proto-message": "ves.io.schema.api_credential.ListResponse", "properties": { "items": { "type": "array", "description": "List of credential items.", "title": "List of the credentials", "items": { "$ref": "#/components/schemas/api_credentialListResponseItem" }, "x-displayname": "Credentials.", "x-f5xc-example": "[\"item1\", \"item2\", \"item3\"]", "x-f5xc-constraints": { "constraintType": "array", "category": "general", "minItems": 0, "maxItems": 256, "uniqueItems": false, "metadata": { "source": "inferred", "confidence": 0.7, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Response of request to list all of users credential objects.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for api_credentialListResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_credentialListResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "API credentials are platform-level identity" }, "classification": { "category": "identity", "multi_tenant_pattern": "none" } } }, "api_credentialListResponseItem": { "type": "object", "description": "Each item of credential list request.", "title": "List Credential item", "x-displayname": "List credential response item.", "x-ves-proto-message": "ves.io.schema.api_credential.ListResponseItem", "properties": { "active": { "type": "boolean", "description": "Possibility to deactivate credential with no deletion.", "title": "Active", "format": "boolean", "x-displayname": "Active", "x-ves-example": "True", "x-f5xc-example": "true", "x-f5xc-description-short": "Possibility to deactivate credential with no deletion.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "create_timestamp": { "type": "string", "description": "Create time of API credential.", "title": "Create timestamp", "format": "date-time", "x-displayname": "Creation Time.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "format": "date-time", "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "expiry_timestamp": { "type": "string", "description": "Expiry time of credential.", "title": "Expiry time", "format": "date-time", "x-displayname": "Expiry Time.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "format": "date-time", "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "name": { "type": "string", "description": "Name of API credential object.", "title": "Credential name", "x-displayname": "Name", "x-ves-example": "Value", "x-f5xc-example": "value", "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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" }, "namespace": { "type": "string", "description": "Namespace of API credential object.", "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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" }, "type": { "allOf": [ { "$ref": "#/components/schemas/api_credentialAPICredentialType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "uid": { "type": "string", "description": "UUID of API credential object.", "title": "uuid of the record", "x-displayname": "UUID", "x-ves-example": "00000000-0000-4000-8000-676e83e049e2.", "x-f5xc-example": "00000000-0000-4000-8000-676e83e049e2", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "user_email": { "type": "string", "description": "User email of user that requested credential .", "title": "Email of user", "x-displayname": "User", "x-ves-example": "Admin@example.com.", "x-f5xc-example": "admin@example.com", "x-f5xc-description-short": "User email of user that requested credential .", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for api_credentialListResponseItem", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_credentialListResponseItem\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "API credentials are platform-level identity" }, "classification": { "category": "identity", "multi_tenant_pattern": "none" } } }, "api_credentialListServiceCredentialsResponse": { "type": "object", "description": "Response of request to list all of service credential objects.", "title": "List service credential response", "x-displayname": "List Service Credential Response.", "x-ves-proto-message": "ves.io.schema.api_credential.ListServiceCredentialsResponse", "properties": { "items": { "type": "array", "description": "List of service credential items.", "title": "List of the service credentials", "items": { "$ref": "#/components/schemas/api_credentialListServiceCredentialsResponseItem" }, "x-displayname": "Service Credentials.", "x-f5xc-example": "[\"item1\", \"item2\", \"item3\"]", "x-f5xc-constraints": { "constraintType": "array", "category": "general", "minItems": 0, "maxItems": 256, "uniqueItems": false, "metadata": { "source": "inferred", "confidence": 0.7, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Response of request to list all of service credential objects.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for api_credentialListServiceCredentialsResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_credentialListServiceCredentialsResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "API credentials are platform-level identity" }, "classification": { "category": "identity", "multi_tenant_pattern": "none" } } }, "api_credentialListServiceCredentialsResponseItem": { "type": "object", "description": "Each item of service credential list request.", "title": "List Service Credential item", "x-displayname": "List service credential response item.", "x-ves-proto-message": "ves.io.schema.api_credential.ListServiceCredentialsResponseItem", "properties": { "active": { "type": "boolean", "description": "Possibility to deactivate credential with no deletion.", "title": "Active", "format": "boolean", "x-displayname": "Active", "x-ves-example": "True", "x-f5xc-example": "true", "x-f5xc-description-short": "Possibility to deactivate credential with no deletion.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "create_timestamp": { "type": "string", "description": "Create time of API credential.", "title": "Create timestamp", "format": "date-time", "x-displayname": "Creation Time.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "format": "date-time", "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "expiry_timestamp": { "type": "string", "description": "Expiry time of credential.", "title": "Expiry time", "format": "date-time", "x-displayname": "Expiry Time.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "format": "date-time", "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "name": { "type": "string", "description": "Name of API credential object.", "title": "Credential name", "x-displayname": "Name", "x-ves-example": "Value", "x-f5xc-example": "value", "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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" }, "namespace": { "type": "string", "description": "Namespace of API credential object.", "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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" }, "namespace_access": { "allOf": [ { "$ref": "#/components/schemas/schemaNamespaceAccessType" } ], "x-f5xc-example": "example-resource", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "type": { "allOf": [ { "$ref": "#/components/schemas/api_credentialAPICredentialType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "uid": { "type": "string", "description": "UUID of API credential object.", "title": "uuid of the record", "x-displayname": "UUID", "x-ves-example": "00000000-0000-4000-8000-676e83e049e2.", "x-f5xc-example": "00000000-0000-4000-8000-676e83e049e2", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "user_email": { "type": "string", "description": "User email of user that requested credential .", "title": "Email of user", "x-displayname": "User", "x-ves-example": "Admin@example.com.", "x-f5xc-example": "admin@example.com", "x-f5xc-description-short": "User email of user that requested credential .", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "user_group_names": { "type": "array", "description": "User group list associated to this service credential.", "title": "User Groups Names", "items": { "type": "string" }, "x-displayname": "User Groups.", "x-ves-example": "[\"dev-group-1\"]", "x-f5xc-example": "\"[\"dev-group-1\"]\"", "x-f5xc-description-short": "User group list associated to this service credential.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Each item of service credential list request.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for api_credentialListServiceCredentialsResponseItem", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_credentialListServiceCredentialsResponseItem\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "API credentials are platform-level identity" }, "classification": { "category": "identity", "multi_tenant_pattern": "none" } } }, "api_credentialNameSelector": { "type": "object", "description": "Revoke Credentials by their names.", "title": "Name Selector", "x-displayname": "Name Selector.", "x-ves-proto-message": "ves.io.schema.api_credential.NameSelector", "properties": { "names": { "type": "array", "description": "It contains the names of credentials which needs to be deleted.", "title": "name of api credential", "minItems": 1, "maxItems": 200, "items": { "type": "string" }, "x-displayname": "Name of API Credentials.", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.repeated.max_items": "200", "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": "200", "ves.io.schema.rules.repeated.min_items": "1", "ves.io.schema.rules.repeated.unique": "true" }, "x-f5xc-example": "example-resource", "x-f5xc-description-short": "It contains the names of credentials which needs to be deleted.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "minItems": 1, "maxItems": 200, "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for api_credentialNameSelector", "required_fields": [ "names" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_credentialNameSelector\nmetadata:\n name: example\n namespace: default\nspec:\n names: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"names\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "API credentials are platform-level identity" }, "classification": { "category": "identity", "multi_tenant_pattern": "none" } } }, "api_credentialObject": { "type": "object", "description": "API Credential object represents the user request to create a certificate.", "title": "API Credentials", "x-displayname": "Credentials.", "x-ves-proto-message": "ves.io.schema.api_credential.Object", "properties": { "metadata": { "allOf": [ { "$ref": "#/components/schemas/schemaObjectMetaType" } ], "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "spec": { "allOf": [ { "$ref": "#/components/schemas/api_credentialSpecType" } ], "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "system_metadata": { "allOf": [ { "$ref": "#/components/schemas/schemaSystemObjectMetaType__ves_io_schema_api_credential" } ], "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "API Credential object represents the user request to create a certificate.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for api_credentialObject", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_credentialObject\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "API credentials are platform-level identity" }, "classification": { "category": "identity", "multi_tenant_pattern": "none" } } }, "api_credentialRecreateScimTokenRequest": { "type": "object", "description": "RecreateScimTokenRequest is the request format for generating SCIM API credential.", "title": "Recreate SCIM Token Request", "x-displayname": "Recreate SCIM Token Request.", "x-ves-proto-message": "ves.io.schema.api_credential.RecreateScimTokenRequest", "properties": { "expiration_days": { "type": "integer", "description": "Qty of days of service credential expiration. Default value is 180.\nExpiration days value can range between 1 and 730.", "title": "Expiry in days", "format": "int64", "x-displayname": "Expiry in days.", "x-ves-example": "Value", "x-ves-validation-rules": { "ves.io.schema.rules.uint32.gte": "1", "ves.io.schema.rules.uint32.lte": "730" }, "x-f5xc-example": "value", "x-validation-rules": { "ves.io.schema.rules.uint32.gte": "1", "ves.io.schema.rules.uint32.lte": "730" }, "x-f5xc-description-short": "Qty of days of service credential expiration. Default value is 180.", "x-f5xc-description-medium": "Qty of days of service credential expiration. Default value is 180. Expiration days value can range between 1 and 730.", "x-f5xc-constraints": { "constraintType": "number", "category": "discovery", "minimum": 1, "maximum": 730, "deterministic": true, "metadata": { "source": "api-probed", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "namespace": { "type": "string", "description": "Value of namespace is always \"system\".", "title": "Namespace", "x-displayname": "Namespace", "x-ves-example": "Value", "x-f5xc-example": "value", "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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" } }, "x-f5xc-description-short": "RecreateScimTokenRequest is the request format for generating SCIM API credential.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for api_credentialRecreateScimTokenRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_credentialRecreateScimTokenRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "API credentials are platform-level identity" }, "classification": { "category": "identity", "multi_tenant_pattern": "none" } } }, "api_credentialRenewRequest": { "type": "object", "description": "Request to renew a credential object.", "title": "Renew Credential request", "x-displayname": "Renew Credentials.", "x-ves-proto-message": "ves.io.schema.api_credential.RenewRequest", "properties": { "expiration_days": { "type": "integer", "description": "Qty of days of service credential expiration.", "title": "Expiry in days", "format": "int64", "x-displayname": "Expiry in days.", "x-ves-example": "Value", "x-f5xc-example": "value", "x-f5xc-description-short": "Qty of days of service credential expiration.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "name": { "type": "string", "description": "Name of API credential object.", "title": "Credential name", "x-displayname": "Name", "x-ves-example": "API-cred-00000000-0000-4000-8000-c725f8541661.", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true" }, "x-f5xc-example": "api-cred-00000000-0000-4000-8000-c725f8541661", "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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" }, "namespace": { "type": "string", "description": "Value of namespace is always \"system\" .", "title": "Namespace", "x-displayname": "Namespace", "x-ves-example": "System", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true" }, "x-f5xc-example": "system", "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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for api_credentialRenewRequest", "required_fields": [ "name", "namespace" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_credentialRenewRequest\nmetadata:\n name: example\n namespace: default\nspec:\n name: value\n namespace: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"name\": \"value\",\n \"namespace\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "API credentials are platform-level identity" }, "classification": { "category": "identity", "multi_tenant_pattern": "none" } } }, "api_credentialReplaceServiceCredentialsRequest": { "type": "object", "description": "Request format for replacing service credentials.", "title": "Replace Service Credentials Request", "x-displayname": "Replace Service Credentials Request.", "x-ves-proto-message": "ves.io.schema.api_credential.ReplaceServiceCredentialsRequest", "properties": { "name": { "type": "string", "description": "Name of service credential object.", "title": "Service Credential name", "x-displayname": "Name", "x-ves-example": "API-cred-00000000-0000-4000-8000-c725f8541661.", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true" }, "x-f5xc-example": "api-cred-00000000-0000-4000-8000-c725f8541661", "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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" }, "namespace": { "type": "string", "description": "Namespace of the service credential user.\nValue of namespace is always \"system\".", "title": "namespace", "x-displayname": "Namespace", "x-ves-example": "System", "x-f5xc-example": "system", "x-f5xc-description-short": "Namespace of the service credential user. Value of namespace is always \"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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" }, "namespace_access": { "allOf": [ { "$ref": "#/components/schemas/schemaNamespaceAccessType" } ], "x-f5xc-example": "example-resource", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "user_group_names": { "type": "array", "description": "List of user_groups to be replaced for this service credentials.", "title": "User Groups Names", "items": { "type": "string" }, "x-displayname": "Groups", "x-ves-example": "[\"dev-group-1\"]", "x-f5xc-example": "\"[\"dev-group-1\"]\"", "x-f5xc-description-short": "List of user_groups to be replaced for this service credentials.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Request format for replacing service credentials.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for api_credentialReplaceServiceCredentialsRequest", "required_fields": [ "name" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_credentialReplaceServiceCredentialsRequest\nmetadata:\n name: example\n namespace: default\nspec:\n name: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"name\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "API credentials are platform-level identity" }, "classification": { "category": "identity", "multi_tenant_pattern": "none" } } }, "api_credentialReplaceServiceCredentialsResponse": { "type": "object", "description": "Response format for the credential's replace request.", "title": "Replace service credentials response", "x-displayname": "Replace service credentials response.", "x-ves-proto-message": "ves.io.schema.api_credential.ReplaceServiceCredentialsResponse", "properties": { "active": { "type": "boolean", "description": "Specifies if service credential is active or not.", "title": "Active", "format": "boolean", "x-displayname": "Active", "x-ves-example": "True", "x-f5xc-example": "true", "x-f5xc-description-short": "Specifies if service credential is active or not.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "expiration_timestamp": { "type": "string", "description": "Specifies the expiration timestamp.", "title": "Expiry", "format": "date-time", "x-displayname": "Expiry", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "format": "date-time", "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "name": { "type": "string", "description": "Name of API credential record.", "title": "Name", "x-displayname": "Name", "x-ves-example": "Svc-cred-app1.", "x-f5xc-example": "svc-cred-app1", "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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" } }, "x-f5xc-description-short": "Response format for the credential's replace request.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for api_credentialReplaceServiceCredentialsResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_credentialReplaceServiceCredentialsResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "API credentials are platform-level identity" }, "classification": { "category": "identity", "multi_tenant_pattern": "none" } } }, "api_credentialScimTokenRequest": { "type": "object", "description": "ScimTokenRequest is used for fetching or revoking scim token.", "title": "Scim Token Request", "x-displayname": "Scim Token Request.", "x-ves-proto-message": "ves.io.schema.api_credential.ScimTokenRequest", "properties": { "namespace": { "type": "string", "description": "Value of namespace is always \"system\".", "title": "Namespace", "x-displayname": "Namespace", "x-ves-example": "System", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true" }, "x-f5xc-example": "system", "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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" } }, "x-f5xc-description-short": "ScimTokenRequest is used for fetching or revoking scim token.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for api_credentialScimTokenRequest", "required_fields": [ "namespace" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_credentialScimTokenRequest\nmetadata:\n name: example\n namespace: default\nspec:\n namespace: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"namespace\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "API credentials are platform-level identity" }, "classification": { "category": "identity", "multi_tenant_pattern": "none" } } }, "api_credentialSiteKubeconfigType": { "type": "object", "description": "Site Global Kube Config parameters.", "title": "site_kubeconfig", "x-displayname": "Site Global Kube Config Specification.", "x-ves-proto-message": "ves.io.schema.api_credential.SiteKubeconfigType", "properties": { "site": { "type": "string", "description": "Name of the site for which kubeconfig is being requested.", "title": "Site", "minLength": 1, "maxLength": 64, "x-displayname": "Site", "x-ves-example": "Ce398", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.string.max_bytes": "64", "ves.io.schema.rules.string.min_bytes": "1" }, "x-f5xc-example": "ce398", "x-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.string.max_bytes": "64", "ves.io.schema.rules.string.min_bytes": "1" }, "x-f5xc-description-short": "Name of the site for which kubeconfig is being requested.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "minLength": 1, "maxLength": 64, "byteLength": { "max": 64, "min": 1 }, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for api_credentialSiteKubeconfigType", "required_fields": [ "site" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_credentialSiteKubeconfigType\nmetadata:\n name: example\n namespace: default\nspec:\n site: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"site\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "API credentials are platform-level identity" }, "classification": { "category": "identity", "multi_tenant_pattern": "none" } } }, "api_credentialSpecType": { "type": "object", "description": "Shape of the API credential specification.", "title": "Specification for API credentials", "x-displayname": "Specifications.", "x-ves-proto-message": "ves.io.schema.api_credential.SpecType", "properties": { "gc_spec": { "allOf": [ { "$ref": "#/components/schemas/api_credentialGlobalSpecType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Shape of the API credential specification.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for api_credentialSpecType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_credentialSpecType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "API credentials are platform-level identity" }, "classification": { "category": "identity", "multi_tenant_pattern": "none" } } }, "api_credentialStatusResponse": { "type": "object", "description": "API credential status response.", "title": "API credential status response", "x-displayname": "API credential status response.", "x-ves-proto-message": "ves.io.schema.api_credential.StatusResponse", "properties": { "status": { "type": "boolean", "description": "Result status flag.", "title": "Status", "format": "boolean", "x-displayname": "Status", "x-ves-example": "True", "x-f5xc-example": "true", "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-08-20T09:12:47+00:00" } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for api_credentialStatusResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_credentialStatusResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "API credentials are platform-level identity" }, "classification": { "category": "identity", "multi_tenant_pattern": "none" } } }, "api_credentialVk8sKubeconfigType": { "type": "object", "description": "Service Kube Config parameters.", "title": "vk8s_kubeconfig", "x-displayname": "Service Kube Config Specification.", "x-ves-proto-message": "ves.io.schema.api_credential.Vk8sKubeconfigType", "properties": { "vk8s_cluster_name": { "type": "string", "description": "Name of virtual K8s cluster.", "title": "virtual k8s cluster name", "x-displayname": "VK8s Cluster.", "x-ves-example": "Vk8s-product-app1.", "x-ves-validation-rules": { "ves.io.schema.rules.string.ves_object_name": "true" }, "x-f5xc-example": "vk8s-product-app1", "x-validation-rules": { "ves.io.schema.rules.string.ves_object_name": "true" }, "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 1024, "format": "dns-label", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$", "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" }, "vk8s_namespace": { "type": "string", "description": "Namespace of virtual K8s cluster. Applicable for KUBE_CONFIG.", "title": "Virtual k8s namespace", "x-displayname": "VK8s Namespace.", "x-ves-example": "App-ns1", "x-ves-validation-rules": { "ves.io.schema.rules.string.ves_object_name": "true" }, "x-f5xc-example": "app-ns1", "x-validation-rules": { "ves.io.schema.rules.string.ves_object_name": "true" }, "x-f5xc-description-short": "Namespace of virtual K8s cluster. Applicable for KUBE_CONFIG.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 1024, "format": "dns-label", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$", "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for api_credentialVk8sKubeconfigType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for api_credentialVk8sKubeconfigType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "api", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "API credentials are platform-level identity" }, "classification": { "category": "identity", "multi_tenant_pattern": "none" } } }, "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_yaml": "# Minimal example for schemaEmpty\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "API credentials are platform-level identity" }, "classification": { "category": "identity", "multi_tenant_pattern": "none" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaInitializerType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "API credentials are platform-level identity" }, "classification": { "category": "identity", "multi_tenant_pattern": "none" } } }, "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_yaml": "# Minimal example for schemaInitializersType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "API credentials are platform-level identity" }, "classification": { "category": "identity", "multi_tenant_pattern": "none" } } }, "schemaNamespaceAccessType": { "type": "object", "description": "Access info in the namespaces for the entity.", "title": "Namespace Access", "x-displayname": "Namespace Access.", "x-ves-proto-message": "ves.io.schema.NamespaceAccessType", "properties": { "namespace_role_map": { "type": "object", "description": "List of all the roles for the entity in the namespaces.", "title": "Namespace Role Map", "x-displayname": "Namespace Role Map.", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.map.keys.string.max_len": "256", "ves.io.schema.rules.message.required": "true" }, "x-f5xc-example": "' []'", "x-validation-rules": { "ves.io.schema.rules.map.keys.string.max_len": "256", "ves.io.schema.rules.message.required": "true" }, "x-f5xc-description-short": "List of all the roles for the entity in the namespaces.", "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } } }, "x-f5xc-description-short": "Access info in the namespaces for the entity.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for schemaNamespaceAccessType", "required_fields": [ "namespace_role_map" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemaNamespaceAccessType\nmetadata:\n name: example\n namespace: default\nspec:\n namespace_role_map: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"namespace_role_map\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "tenant_and_identity", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Namespace management is platform-level administration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "schemaNamespaceRoleType": { "type": "object", "description": "Allows linking namespaces and roles.", "title": "Namespace role", "x-displayname": "Namespace Role.", "x-ves-proto-message": "ves.io.schema.NamespaceRoleType", "properties": { "namespace": { "type": "string", "description": "Namespace the role applies to\n'*' value implies all namespaces.", "title": "Namespace", "maxLength": 256, "x-displayname": "Namespace", "x-ves-example": "Ns1", "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": "ns1", "x-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.string.max_len": "256" }, "x-f5xc-description-short": "Namespace the role applies to '*' value implies all namespaces.", "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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" }, "role": { "type": "string", "description": "Users role for this namespace.", "title": "Role", "maxLength": 256, "x-displayname": "Role", "x-ves-example": "VES-I/O-monitor-role.", "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.ves_object_name": "true" }, "x-f5xc-example": "ves-io-monitor-role", "x-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.string.max_len": "256", "ves.io.schema.rules.string.ves_object_name": "true" }, "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 256, "format": "dns-label", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$", "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false }, "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for schemaNamespaceRoleType", "required_fields": [ "namespace", "role" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemaNamespaceRoleType\nmetadata:\n name: example\n namespace: default\nspec:\n namespace: value\n role: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"namespace\": \"value\",\n \"role\": \"value\"\n }\n}" }, "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": "identity", "multi_tenant_pattern": "per-tenant" } } }, "schemaObjectMetaType": { "type": "object", "description": "ObjectMetaType is metadata(common attributes) of an object that all configuration objects will have.\nThe information in this type can be specified by user during create and replace APIs.", "title": "ObjectMetaType", "x-displayname": "Metadata", "x-ves-proto-message": "ves.io.schema.ObjectMetaType", "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" }, "additionalProperties": { "type": "string" }, "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-08-20T09:12:47+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-08-20T09:12:47+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", "additionalProperties": { "type": "string" }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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. Object create will fail if\nprovided by the client and the value exists in the system. Typically generated by the\nserver on successful creation of an object and is not allowed to change once populated.\nShadowed by SystemObjectMeta's uid field.", "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. Object create will fail if provided by the client and the value exists in the system.", "x-f5xc-description-medium": "Uid is the unique in time and space value for this object. Object create will fail if provided by the client and the value exists in the system. Typically generated by the server on successful creation of an object and is not allowed to change once populated.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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-08-20T09:12:47+00:00" } }, "x-f5xc-description-short": "ObjectMetaType is metadata(common attributes) of an object that all configuration objects will have.", "x-f5xc-description-medium": "ObjectMetaType is metadata(common attributes) of an object that all configuration objects will have. The information in this type can be specified by user during create and replace APIs.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for schemaObjectMetaType", "required_fields": [ "name" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemaObjectMetaType\nmetadata:\n name: example\n namespace: default\nspec:\n name: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"name\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "API credentials are platform-level identity" }, "classification": { "category": "identity", "multi_tenant_pattern": "none" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaObjectRefType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "API credentials are platform-level identity" }, "classification": { "category": "identity", "multi_tenant_pattern": "none" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaStatusType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "API credentials are platform-level identity" }, "classification": { "category": "identity", "multi_tenant_pattern": "none" } } }, "schemaSystemObjectMetaType__ves_io_schema_api_credential": { "type": "object", "description": "SystemObjectMetaType is metadata generated or populated by the system for all persisted objects and\ncannot be updated directly by users.", "title": "SystemObjectMetaType", "x-displayname": "System Metadata.", "x-ves-proto-message": "ves.io.schema.SystemObjectMetaType", "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "readOnly": true, "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": "Value", "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "readOnly": true, "x-field-mutability": "read-only" }, "creator_cookie": { "type": "string", "description": "This can used by the creator of the object for later audit for e.g. By storing the\nversion identifying information of the object so at future it can be determined if\nversion present at remote end is current or stale.", "title": "creator_cookie", "x-displayname": "Creator Cookie.", "x-ves-example": "Value", "x-f5xc-example": "value", "x-f5xc-description-short": "Can used by the creator of the object for later audit for e.g.", "x-f5xc-description-medium": "Can used by the creator of the object for later audit for e.g. By storing the version identifying information of the object so at future it can be determined if version present at remote end is current or stale.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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": "Value", "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "readOnly": true, "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "direct_ref_hash": { "type": "string", "description": "A hash of the UIDs of direct references on this object. This can be used to determine if\nthis object hash has had references become resolved/unresolved.", "title": "direct_ref_hash", "x-displayname": "Direct Reference Hash.", "x-f5xc-description-short": "Hash of the UIDs of direct references on this object. This can be used to determine if this object hash has had references become resolved/unresolved.", "x-f5xc-description-medium": "Hash of the UIDs of direct references on this object. This can be used to determine if this object hash has had references become resolved/unresolved.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "readOnly": true, "x-field-mutability": "read-only" }, "namespace": { "type": "array", "description": "The namespace this object belongs to. This is populated by the service based on the\nmetadata.namespace field when an object is created.", "title": "namespace", "maxItems": 1, "items": { "$ref": "#/components/schemas/schemaObjectRefType" }, "x-displayname": "Namespace 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-example": "example-resource", "x-f5xc-description-short": "The namespace this object belongs to. This is populated by the service based on the metadata.namespace field when an object is created.", "x-f5xc-description-medium": "The namespace this object belongs to. This is populated by the service based on the metadata.namespace field when an object is created.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 1, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "maxLength": 6, "minLength": 6, "x-reconciled-from-discovery": true, "x-reconciled-at": "2026-08-20T09:12:47+00:00" }, "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 }, "readOnly": true, "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" } ] }, "revision": { "type": "string", "description": "A revision number which always increases with each modification of the object in storage\nThis doesn't necessarily increase sequentially, but should always increase.\nThis will be 0 when first created, and before any modifications.", "title": "revision", "format": "int64", "x-displayname": "Revision", "x-f5xc-description-short": "Revision number which always increases with each modification of the object in storage This doesn't necessarily increase sequentially, but should...", "x-f5xc-description-medium": "Revision number which always increases with each modification of the object in storage This doesn't necessarily increase sequentially, but should always increase. This will be 0 when first created, and before any modifications.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "format": "int64", "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "sre_disable": { "type": "boolean", "description": "This should be set to true If F5XC/SRE operator wants to suppress an object from being\npresented to business-logic of a daemon(e.g. Due to bad-form/issue-causing Object).\nThis is meant only to be used in temporary situations for operational continuity till\na fix is rolled out in business-logic.", "title": "sre_disable", "format": "boolean", "x-displayname": "SRE Disable.", "x-ves-example": "True", "x-f5xc-example": "true", "x-f5xc-description-short": "Should be set to true If F5XC/SRE operator wants to suppress an object from being presented to business-logic of a daemon(e.g.", "x-f5xc-description-medium": "Should be set to true If F5XC/SRE operator wants to suppress an object from being presented to business-logic of a daemon(e.g. Due to bad-form/issue-causing Object). This is meant only to be used in temporary situations for operational continuity till a fix is rolled out in business-logic.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "trace_info": { "type": "string", "description": "Trace_info holds information(::) of the request doing\nthe object modification. This can be used on the watch side to create subsequent spans.\nThis information can be used to co-relate activities across services (modulo state compression)\nfor a synchronous API.", "title": "trace_info", "x-displayname": "Trace Info.", "x-ves-example": "Value", "x-f5xc-example": "value", "x-f5xc-description-short": "Trace_info holds information(::) of the request doing the object modification.", "x-f5xc-description-medium": "Trace_info holds information(::) of the request doing the object modification. This can be used on the watch side to create subsequent spans. This information can be used to co-relate activities across services (modulo state compression) for a synchronous API.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "vtrp_id": { "type": "string", "description": "Indicate origin of this object.", "title": "vtrp_id", "x-displayname": "VTRP ID", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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": "SystemObjectMetaType is metadata generated or populated by the system for all persisted objects and cannot be updated directly by users.", "x-f5xc-description-medium": "SystemObjectMetaType 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 schemaSystemObjectMetaType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemaSystemObjectMetaType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "API credentials are platform-level identity" }, "classification": { "category": "identity", "multi_tenant_pattern": "none" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaViewRefType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "API credentials are platform-level identity" }, "classification": { "category": "identity", "multi_tenant_pattern": "none" } } } }, "responses": {}, "parameters": {}, "requestBodies": {} } }, "bigip": { "openapi": "3.0.3", "info": { "title": "Bigip", "description": "On-premises appliance connector enabling iRule lifecycle operations and data group replication. APM policy coordination, virtual server configuration binding, and CNE linkage. Telemetry aggregation and health status monitoring across hybrid infrastructure deployments.", "version": "4.0.0", "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": "On-premises appliance connector enabling iRule lifecycle operations and data group replication. APM policy coordination, virtual server configuration binding, and CNE linkage. Telemetry aggregation and health status monitoring across hybrid infrastructure deployments.", "x-f5xc-summary": "Legacy device orchestration with iRule scripts and data group synchronization. Virtual server bindings and metrics collection.", "x-f5xc-cli-domain": "bigip", "externalDocs": { "url": "https://docs.cloud.f5.com/docs/how-to/site-management/bigip-sites", "description": "F5 XC Documentation - BIG-IP Integration" }, "x-f5xc-api-reference-url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/bigip/", "x-f5xc-best-practices": { "common_errors": [ { "code": 400, "message": "Invalid request body", "resolution": "Validate JSON structure and required fields before submission", "prevention": "Use schema validation from OpenAPI spec" }, { "code": 401, "message": "Authentication failed", "resolution": "Verify API token is valid and not expired", "prevention": "Use environment variables for token management" }, { "code": 403, "message": "Permission denied", "resolution": "Check user role and namespace permissions", "prevention": "Verify RBAC policies before operations" }, { "code": 404, "message": "Resource not found", "resolution": "Verify resource name and namespace exist", "prevention": "List resources before attempting operations" }, { "code": 409, "message": "Resource already exists", "resolution": "Use unique name or delete existing resource", "prevention": "Check existence before creation" }, { "code": 429, "message": "Rate limit exceeded", "resolution": "Implement exponential backoff and retry logic", "prevention": "Batch operations and add delays between requests" } ], "security_notes": [ "Always use HTTPS for all API communications", "Store API tokens securely, never in source code", "Rotate API tokens regularly following security policies" ], "performance_tips": [ "Use pagination for large result sets", "Batch related operations when possible", "Cache read-only responses appropriately" ] }, "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "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": "bigipconnector" }, { "name": "config" } ], "paths": { "/api/bigipconnector/namespaces/{metadata.namespace}/bigip_irules": { "post": { "summary": "Specification.", "description": "Desired state for BIG-IP iRule Service.", "operationId": "ves.io.schema.bigip_irule.API.Create", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/bigip_iruleCreateResponse" } } } }, "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/bigip_iruleCreateRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/bigip/" }, "x-ves-proto-rpc": "ves.io.schema.bigip_irule.API.Create", "tags": [ "bigipconnector" ], "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", "Policy parameters defined" ], "postconditions": [ "Bigip-irule resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "bigip-irule" ] }, "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": [ "bigip-irule" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "BIG-IP iRule as a Service.", "x-ves-proto-service": "ves.io.schema.bigip_irule.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/bigipconnector/namespaces/{metadata.namespace}/bigip_irules/{metadata.name}": { "put": { "summary": "Specification.", "description": "Desired state for BIG-IP iRule Service.", "operationId": "ves.io.schema.bigip_irule.API.Replace", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/bigip_iruleReplaceResponse" } } } }, "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/bigip_iruleReplaceRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/bigip/" }, "x-ves-proto-rpc": "ves.io.schema.bigip_irule.API.Replace", "tags": [ "bigipconnector" ], "x-f5xc-operation-metadata": { "purpose": "Resource replacement operation", "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": [ "bigip-irule" ] }, "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": [ "bigip-irule" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 800, "p95_ms": 2500, "p99_ms": 6000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "BIG-IP iRule as a Service.", "x-ves-proto-service": "ves.io.schema.bigip_irule.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/bigipconnector/namespaces/{namespace}/bigip_irules": { "get": { "summary": "List BIG-IP iRule as a Service.", "description": "List the set of bigip_irule in a namespace.", "operationId": "ves.io.schema.bigip_irule.API.List", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/bigip_iruleListResponse" } } } }, "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 bigip_irule.", "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/bigip/" }, "x-ves-proto-rpc": "ves.io.schema.bigip_irule.API.List", "tags": [ "bigipconnector" ], "x-f5xc-operation-metadata": { "purpose": "Resource retrieval operation", "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": "BIG-IP iRule as a Service.", "x-ves-proto-service": "ves.io.schema.bigip_irule.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/bigipconnector/namespaces/{namespace}/bigip_irules/{name}": { "get": { "summary": "Specification.", "description": "Desired state for BIG-IP iRule Service.", "operationId": "ves.io.schema.bigip_irule.API.Get", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/bigip_iruleGetResponse" } } } }, "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/bigip/" }, "x-ves-proto-rpc": "ves.io.schema.bigip_irule.API.Get", "tags": [ "bigipconnector" ], "x-f5xc-operation-metadata": { "purpose": "Resource retrieval operation", "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 BIG-IP iRule as a Service.", "description": "DELETE the specified bigip_irule.", "operationId": "ves.io.schema.bigip_irule.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/bigip_iruleDeleteRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/bigip/" }, "x-ves-proto-rpc": "ves.io.schema.bigip_irule.API.Delete", "tags": [ "bigipconnector" ], "x-f5xc-operation-metadata": { "purpose": "Resource deletion operation", "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": [ "bigip-irule", "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": [ "bigip-irule", "contained_resources" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 500, "p95_ms": 1500, "p99_ms": 4000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "BIG-IP iRule as a Service.", "x-ves-proto-service": "ves.io.schema.bigip_irule.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{metadata.namespace}/bigip_virtual_servers/{metadata.name}": { "put": { "summary": "Replace BIG-IP virtual server.", "description": "Shape of the BIG-IP virtual server specification.", "operationId": "ves.io.schema.views.bigip_virtual_server.API.Replace", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/bigip_virtual_serverReplaceResponse" } } } }, "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/bigip_virtual_serverReplaceRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/bigip/" }, "x-ves-proto-rpc": "ves.io.schema.views.bigip_virtual_server.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": [ "bigip-virtual-server" ] }, "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": [ "bigip-virtual-server" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 800, "p95_ms": 2500, "p99_ms": 6000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "BIG-IP virtual server.", "x-ves-proto-service": "ves.io.schema.views.bigip_virtual_server.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{namespace}/bigip_virtual_servers": { "get": { "summary": "List BIG-IP virtual server.", "description": "List the set of bigip_virtual_server in a namespace.", "operationId": "ves.io.schema.views.bigip_virtual_server.API.List", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/bigip_virtual_serverListResponse" } } } }, "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 bigip_virtual_server.", "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/bigip/" }, "x-ves-proto-rpc": "ves.io.schema.views.bigip_virtual_server.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-discovered-response-time-ms": 152.67, "x-discovered-sample-size": 1, "x-f5xc-discovered-response-time": { "p50_ms": 152.67, "p95_ms": 305.34, "p99_ms": 458.01, "sample_count": 1, "source": "discovery", "last_measured": "2025-12-20T19:39:20.211392+00:00" } }, "x-displayname": "BIG-IP virtual server.", "x-ves-proto-service": "ves.io.schema.views.bigip_virtual_server.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{namespace}/bigip_virtual_servers/get_security_config": { "post": { "summary": "GET Security Config for BIG-IP Load Balancer.", "description": "Fetch the corresponding Security Config for the given BIG-IP load balancers.", "operationId": "ves.io.schema.views.bigip_virtual_server.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\nx-required\nNamespace of the BIG-IP 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/bigip_virtual_serverGetSecurityConfigReq" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/bigip/" }, "x-ves-proto-rpc": "ves.io.schema.views.bigip_virtual_server.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": "BIG-IP virtual server.", "x-ves-proto-service": "ves.io.schema.views.bigip_virtual_server.CustomAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/config/namespaces/{namespace}/bigip_virtual_servers/{name}": { "get": { "summary": "GET BIG-IP virtual server.", "description": "Shape of the BIG-IP virtual server specification.", "operationId": "ves.io.schema.views.bigip_virtual_server.API.Get", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/bigip_virtual_serverGetResponse" } } } }, "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 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_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/bigip/" }, "x-ves-proto-rpc": "ves.io.schema.views.bigip_virtual_server.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" } }, "x-displayname": "BIG-IP virtual server.", "x-ves-proto-service": "ves.io.schema.views.bigip_virtual_server.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{metadata.namespace}/application_profiless": { "post": { "summary": "Create Application Profiles.", "description": "Create Application Profiles in a given namespace. If one already exists it will give an error.", "operationId": "ves.io.schema.bigcne.application_profiles.API.Create", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/application_profilesCreateResponse" } } } }, "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/application_profilesCreateRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/bigip/" }, "x-ves-proto-rpc": "ves.io.schema.bigcne.application_profiles.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": [ "Application-profiles resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "application-profiles" ] }, "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": [ "application-profiles" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "Configure Application Profiles.", "x-ves-proto-service": "ves.io.schema.bigcne.application_profiles.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{metadata.namespace}/application_profiless/{metadata.name}": { "put": { "summary": "Replace Application Profiles.", "description": "Replace Application Profiles in a given namespace.", "operationId": "ves.io.schema.bigcne.application_profiles.API.Replace", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/application_profilesReplaceResponse" } } } }, "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/application_profilesReplaceRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/bigip/" }, "x-ves-proto-rpc": "ves.io.schema.bigcne.application_profiles.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": [ "application-profiles" ] }, "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": [ "application-profiles" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 800, "p95_ms": 2500, "p99_ms": 6000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "Configure Application Profiles.", "x-ves-proto-service": "ves.io.schema.bigcne.application_profiles.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{namespace}/application_profiless": { "get": { "summary": "List Configure Application Profiles.", "description": "List the set of application_profiles in a namespace.", "operationId": "ves.io.schema.bigcne.application_profiles.API.List", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/application_profilesListResponse" } } } }, "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 application_profiles.", "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/bigip/" }, "x-ves-proto-rpc": "ves.io.schema.bigcne.application_profiles.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 Application Profiles.", "x-ves-proto-service": "ves.io.schema.bigcne.application_profiles.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{namespace}/application_profiless/{name}": { "get": { "summary": "GET Application Profiles.", "description": "GET Application Profiles details.", "operationId": "ves.io.schema.bigcne.application_profiles.API.Get", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/application_profilesGetResponse" } } } }, "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/bigip/" }, "x-ves-proto-rpc": "ves.io.schema.bigcne.application_profiles.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 Application Profiles.", "description": "DELETE the specified application_profiles.", "operationId": "ves.io.schema.bigcne.application_profiles.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/application_profilesDeleteRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/bigip/" }, "x-ves-proto-rpc": "ves.io.schema.bigcne.application_profiles.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": [ "application-profiles", "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": [ "application-profiles", "contained_resources" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 500, "p95_ms": 1500, "p99_ms": 4000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "Configure Application Profiles.", "x-ves-proto-service": "ves.io.schema.bigcne.application_profiles.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{metadata.namespace}/bigip_http_proxys": { "post": { "summary": "Create BIG-IP HTTP Proxy.", "description": "Create BIG-IP HTTP Proxy in a given namespace. If one already exists, it will give an error.", "operationId": "ves.io.schema.views.bigip_http_proxy.API.Create", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/bigip_http_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/bigip_http_proxyCreateRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/bigip/" }, "x-ves-proto-rpc": "ves.io.schema.views.bigip_http_proxy.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": [ "Bigip-http-proxy resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "bigip-http-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": [ "bigip-http-proxy" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "Configure BIG-IP HTTP Proxy.", "x-ves-proto-service": "ves.io.schema.views.bigip_http_proxy.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{metadata.namespace}/bigip_http_proxys/{metadata.name}": { "put": { "summary": "Replace BIG-IP HTTP Proxy.", "description": "Replace BIG-IP HTTP Proxy in a given namespace.", "operationId": "ves.io.schema.views.bigip_http_proxy.API.Replace", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/bigip_http_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/bigip_http_proxyReplaceRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/bigip/" }, "x-ves-proto-rpc": "ves.io.schema.views.bigip_http_proxy.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": [ "bigip-http-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": [ "bigip-http-proxy" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 800, "p95_ms": 2500, "p99_ms": 6000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "Configure BIG-IP HTTP Proxy.", "x-ves-proto-service": "ves.io.schema.views.bigip_http_proxy.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{namespace}/bigip_http_proxys": { "get": { "summary": "List Configure BIG-IP HTTP Proxy.", "description": "List the set of bigip_http_proxy in a namespace.", "operationId": "ves.io.schema.views.bigip_http_proxy.API.List", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/bigip_http_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 bigip_http_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/bigip/" }, "x-ves-proto-rpc": "ves.io.schema.views.bigip_http_proxy.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 BIG-IP HTTP Proxy.", "x-ves-proto-service": "ves.io.schema.views.bigip_http_proxy.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{namespace}/bigip_http_proxys/{name}": { "get": { "summary": "GET BIG-IP HTTP Proxy.", "description": "GET BIG-IP HTTP Proxy details.", "operationId": "ves.io.schema.views.bigip_http_proxy.API.Get", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/bigip_http_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/bigip/" }, "x-ves-proto-rpc": "ves.io.schema.views.bigip_http_proxy.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 BIG-IP HTTP Proxy.", "description": "DELETE the specified bigip_http_proxy.", "operationId": "ves.io.schema.views.bigip_http_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/bigip_http_proxyDeleteRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/bigip/" }, "x-ves-proto-rpc": "ves.io.schema.views.bigip_http_proxy.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": [ "bigip-http-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": [ "bigip-http-proxy", "contained_resources" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 500, "p95_ms": 1500, "p99_ms": 4000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "Configure BIG-IP HTTP Proxy.", "x-ves-proto-service": "ves.io.schema.views.bigip_http_proxy.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{metadata.namespace}/irules": { "post": { "summary": "Create iRule.", "description": "Create iRule in a given namespace. If one already exists it will give an error.", "operationId": "ves.io.schema.bigcne.irule.API.Create", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/iruleCreateResponse" } } } }, "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/iruleCreateRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/bigip/" }, "x-ves-proto-rpc": "ves.io.schema.bigcne.irule.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", "Policy parameters defined" ], "postconditions": [ "Irule resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "irule" ] }, "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": [ "irule" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "Configure iRule.", "x-ves-proto-service": "ves.io.schema.bigcne.irule.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{metadata.namespace}/irules/{metadata.name}": { "put": { "summary": "Replace iRule.", "description": "Replace iRule in a given namespace.", "operationId": "ves.io.schema.bigcne.irule.API.Replace", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/iruleReplaceResponse" } } } }, "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/iruleReplaceRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/bigip/" }, "x-ves-proto-rpc": "ves.io.schema.bigcne.irule.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", "Policy parameters defined" ], "postconditions": [ "Resource updated with new values" ] }, "side_effects": { "modifies": [ "irule" ] }, "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": [ "irule" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 800, "p95_ms": 2500, "p99_ms": 6000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "Configure iRule.", "x-ves-proto-service": "ves.io.schema.bigcne.irule.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{namespace}/irules": { "get": { "summary": "List Configure iRule.", "description": "List the set of irule in a namespace.", "operationId": "ves.io.schema.bigcne.irule.API.List", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/iruleListResponse" } } } }, "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 irule.", "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/bigip/" }, "x-ves-proto-rpc": "ves.io.schema.bigcne.irule.API.List", "tags": [ "config" ], "x-f5xc-operation-metadata": { "purpose": "Resource retrieval operation", "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-discovered-response-time-ms": 157.12, "x-discovered-sample-size": 1, "x-f5xc-discovered-response-time": { "p50_ms": 157.12, "p95_ms": 314.24, "p99_ms": 471.36, "sample_count": 1, "source": "discovery", "last_measured": "2025-12-20T19:39:20.211392+00:00" } }, "x-displayname": "Configure iRule.", "x-ves-proto-service": "ves.io.schema.bigcne.irule.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{namespace}/irules/{name}": { "get": { "summary": "GET iRule", "description": "GET iRule details.", "operationId": "ves.io.schema.bigcne.irule.API.Get", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/iruleGetResponse" } } } }, "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/bigip/" }, "x-ves-proto-rpc": "ves.io.schema.bigcne.irule.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", "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 Configure iRule.", "description": "DELETE the specified irule.", "operationId": "ves.io.schema.bigcne.irule.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/iruleDeleteRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/bigip/" }, "x-ves-proto-rpc": "ves.io.schema.bigcne.irule.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", "Policy parameters defined" ], "postconditions": [ "Resource removed from system", "Associated resources may be affected" ] }, "side_effects": { "deletes": [ "irule", "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": [ "irule", "contained_resources" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 500, "p95_ms": 1500, "p99_ms": 4000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "Configure iRule.", "x-ves-proto-service": "ves.io.schema.bigcne.irule.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{metadata.namespace}/data_groups": { "post": { "summary": "Create Data group.", "description": "Create data group in a given namespace. If one already exists it will give an error.", "operationId": "ves.io.schema.bigcne.data_group.API.Create", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/data_groupCreateResponse" } } } }, "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/data_groupCreateRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/bigip/" }, "x-ves-proto-rpc": "ves.io.schema.bigcne.data_group.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": [ "Data-group resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "data-group" ] }, "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": [ "data-group" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "Data Group.", "x-ves-proto-service": "ves.io.schema.bigcne.data_group.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{metadata.namespace}/data_groups/{metadata.name}": { "put": { "summary": "Replace Data Group.", "description": "Replace Data Group in a given namespace.", "operationId": "ves.io.schema.bigcne.data_group.API.Replace", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/data_groupReplaceResponse" } } } }, "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/data_groupReplaceRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/bigip/" }, "x-ves-proto-rpc": "ves.io.schema.bigcne.data_group.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": [ "data-group" ] }, "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": [ "data-group" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 800, "p95_ms": 2500, "p99_ms": 6000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "Data Group.", "x-ves-proto-service": "ves.io.schema.bigcne.data_group.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{namespace}/data_groups": { "get": { "summary": "List Data Group.", "description": "List the set of data_group in a namespace.", "operationId": "ves.io.schema.bigcne.data_group.API.List", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/data_groupListResponse" } } } }, "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 data_group.", "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/bigip/" }, "x-ves-proto-rpc": "ves.io.schema.bigcne.data_group.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-discovered-response-time-ms": 154.24, "x-discovered-sample-size": 1, "x-f5xc-discovered-response-time": { "p50_ms": 154.24, "p95_ms": 308.48, "p99_ms": 462.72, "sample_count": 1, "source": "discovery", "last_measured": "2025-12-20T19:39:20.211392+00:00" } }, "x-displayname": "Data Group.", "x-ves-proto-service": "ves.io.schema.bigcne.data_group.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{namespace}/data_groups/{name}": { "get": { "summary": "GET Data Group.", "description": "GET Data Group details.", "operationId": "ves.io.schema.bigcne.data_group.API.Get", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/data_groupGetResponse" } } } }, "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/bigip/" }, "x-ves-proto-rpc": "ves.io.schema.bigcne.data_group.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 Data Group.", "description": "DELETE the specified data_group.", "operationId": "ves.io.schema.bigcne.data_group.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/data_groupDeleteRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/bigip/" }, "x-ves-proto-rpc": "ves.io.schema.bigcne.data_group.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": [ "data-group", "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": [ "data-group", "contained_resources" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 500, "p95_ms": 1500, "p99_ms": 4000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "Data Group.", "x-ves-proto-service": "ves.io.schema.bigcne.data_group.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" } }, "components": { "securitySchemes": { "ApiToken": { "type": "apiKey", "name": "Authorization", "in": "header", "description": "API Token authentication. Format: 'APIToken '" }, "apiKeyAuth": { "type": "apiKey", "in": "header", "name": "Authorization", "description": "F5 XC API Token (format: APIToken )" } }, "schemas": { "bigip_iruleCreateRequest": { "type": "object", "description": "This is the input message of the 'Create' RPC.", "title": "CreateRequest is used to create an instance of bigip_irule", "x-displayname": "Create Request.", "x-ves-proto-message": "ves.io.schema.bigip_irule.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/bigip_iruleCreateSpecType" } ], "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 bigip_iruleCreateRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for bigip_iruleCreateRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bigip", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "bigip_iruleCreateResponse": { "type": "object", "x-ves-proto-message": "ves.io.schema.bigip_irule.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/bigip_iruleGetSpecType" } ], "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 bigip_iruleCreateResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for bigip_iruleCreateResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bigip", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "bigip_iruleCreateSpecType": { "type": "object", "description": "Desired state for BIG-IP iRule Service.", "title": "BIG-IP iRule Service specification", "x-displayname": "Specification.", "x-ves-proto-message": "ves.io.schema.bigip_irule.CreateSpecType", "properties": { "code": { "type": "string", "description": "IRule code content, this content will be base64 encoded for preserving formatting.", "minLength": 1, "maxLength": 1048576, "x-displayname": "IRule code.", "x-ves-validation-rules": { "ves.io.schema.rules.string.max_bytes": "1048576", "ves.io.schema.rules.string.min_bytes": "1" }, "x-validation-rules": { "ves.io.schema.rules.string.max_bytes": "1048576", "ves.io.schema.rules.string.min_bytes": "1" }, "x-f5xc-description-short": "IRule code content, this content will be base64 encoded for preserving formatting.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "minLength": 1, "maxLength": 1048576, "byteLength": { "max": 1048576, "min": 1 }, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "irule_name": { "type": "string", "description": "IRule name.", "maxLength": 256, "x-displayname": "IRule name.", "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-example": "example-resource", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 256, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "source": { "type": "string", "description": "IRule generation/updation source.", "x-displayname": "IRule source.", "x-ves-validation-rules": { "ves.io.schema.rules.string.in": "[\\\"AI\\\",\\\"Human\\\",\\\"Mix\\\"]" }, "x-validation-rules": { "ves.io.schema.rules.string.in": "[\\\"AI\\\",\\\"Human\\\",\\\"Mix\\\"]" }, "maxLength": 1024, "enum": [ "AI", "Human", "Mix" ], "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for bigip_iruleCreateSpecType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for bigip_iruleCreateSpecType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bigip", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "bigip_iruleDeleteRequest": { "type": "object", "description": "This is the input message of the 'DELETE' RPC.", "title": "DeleteRequest is used to delete a bigip_irule", "x-displayname": "DELETE Request.", "x-ves-proto-message": "ves.io.schema.bigip_irule.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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for bigip_iruleDeleteRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for bigip_iruleDeleteRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bigip", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "bigip_iruleGetResponse": { "type": "object", "description": "This is the output message of the 'GET' RPC.", "title": "GetResponse is the shape of a read bigip_irule", "x-displayname": "GET Response.", "x-ves-proto-message": "ves.io.schema.bigip_irule.GetResponse", "properties": { "create_form": { "allOf": [ { "$ref": "#/components/schemas/bigip_iruleCreateRequest" } ], "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/bigip_iruleReplaceRequest" } ], "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/bigip_iruleGetSpecType" } ], "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/bigip_iruleStatusObject" }, "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-08-20T09:12:47+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 bigip_iruleGetResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for bigip_iruleGetResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bigip", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "bigip_iruleGetSpecType": { "type": "object", "description": "Desired state for BIG-IP iRule Service.", "title": "BIG-IP iRule Service specification", "x-displayname": "Specification.", "x-ves-proto-message": "ves.io.schema.bigip_irule.GetSpecType", "properties": { "code": { "type": "string", "description": "IRule code content, this content will be base64 encoded for preserving formatting.", "minLength": 1, "maxLength": 1048576, "x-displayname": "IRule code.", "x-ves-validation-rules": { "ves.io.schema.rules.string.max_bytes": "1048576", "ves.io.schema.rules.string.min_bytes": "1" }, "x-validation-rules": { "ves.io.schema.rules.string.max_bytes": "1048576", "ves.io.schema.rules.string.min_bytes": "1" }, "x-f5xc-description-short": "IRule code content, this content will be base64 encoded for preserving formatting.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "minLength": 1, "maxLength": 1048576, "byteLength": { "max": 1048576, "min": 1 }, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "irule_name": { "type": "string", "description": "IRule name.", "maxLength": 256, "x-displayname": "IRule name.", "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-example": "example-resource", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 256, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "source": { "type": "string", "description": "IRule generation/updation source.", "x-displayname": "IRule source.", "x-ves-validation-rules": { "ves.io.schema.rules.string.in": "[\\\"AI\\\",\\\"Human\\\",\\\"Mix\\\"]" }, "x-validation-rules": { "ves.io.schema.rules.string.in": "[\\\"AI\\\",\\\"Human\\\",\\\"Mix\\\"]" }, "maxLength": 1024, "enum": [ "AI", "Human", "Mix" ], "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for bigip_iruleGetSpecType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for bigip_iruleGetSpecType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bigip", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "bigip_iruleListResponse": { "type": "object", "description": "This is the output message of 'List' RPC.", "title": "ListResponse is the collection of bigip_irule", "x-displayname": "List Response.", "x-ves-proto-message": "ves.io.schema.bigip_irule.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/bigip_iruleListResponseItem" }, "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for bigip_iruleListResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for bigip_iruleListResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bigip", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "bigip_iruleListResponseItem": { "type": "object", "description": "By default a summary of bigip_irule 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 bigip_irule", "x-displayname": "List Item", "x-ves-proto-message": "ves.io.schema.bigip_irule.ListResponseItem", "properties": { "annotations": { "type": "object", "description": "The set of annotations present on this bigip_irule.", "title": "annotations", "x-displayname": "Annotations.", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "The set of annotations present on this bigip_irule.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "description": { "type": "string", "description": "The description set for this bigip_irule.", "title": "description", "x-displayname": "Description.", "x-f5xc-description-short": "The description set for this bigip_irule.", "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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "disabled": { "type": "boolean", "description": "A value of true indicates bigip_irule is administratively disabled.", "title": "disabled", "format": "boolean", "x-displayname": "Disabled", "x-f5xc-example": "True", "x-f5xc-description-short": "Value of true indicates bigip_irule is administratively disabled.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "get_spec": { "allOf": [ { "$ref": "#/components/schemas/bigip_iruleGetSpecType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "labels": { "type": "object", "description": "The set of labels present on this bigip_irule.", "title": "labels", "x-displayname": "Labels", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "The set of labels present on this bigip_irule.", "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 bigip_irule.", "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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/bigip_iruleStatusObject" }, "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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "uid": { "type": "string", "description": "The unique uid of this bigip_irule.", "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-08-20T09:12:47+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-08-20T09:12:47+00:00" } }, "x-f5xc-description-short": "By default a summary of bigip_irule 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 bigip_irule 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 bigip_iruleListResponseItem", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for bigip_iruleListResponseItem\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bigip", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "bigip_iruleReplaceRequest": { "type": "object", "description": "This is the input message of the 'Replace' RPC.", "title": "ReplaceRequest is used to replace contents of a bigip_irule", "x-displayname": "Replace Request.", "x-ves-proto-message": "ves.io.schema.bigip_irule.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/bigip_iruleReplaceSpecType" } ], "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 bigip_iruleReplaceRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for bigip_iruleReplaceRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bigip", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "bigip_iruleReplaceResponse": { "type": "object", "x-ves-proto-message": "ves.io.schema.bigip_irule.ReplaceResponse", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for bigip_iruleReplaceResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for bigip_iruleReplaceResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bigip", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "bigip_iruleReplaceSpecType": { "type": "object", "description": "Desired state for BIG-IP iRule Service.", "title": "BIG-IP iRule Service specification", "x-displayname": "Specification.", "x-ves-proto-message": "ves.io.schema.bigip_irule.ReplaceSpecType", "properties": { "code": { "type": "string", "description": "IRule code content, this content will be base64 encoded for preserving formatting.", "minLength": 1, "maxLength": 1048576, "x-displayname": "IRule code.", "x-ves-validation-rules": { "ves.io.schema.rules.string.max_bytes": "1048576", "ves.io.schema.rules.string.min_bytes": "1" }, "x-validation-rules": { "ves.io.schema.rules.string.max_bytes": "1048576", "ves.io.schema.rules.string.min_bytes": "1" }, "x-f5xc-description-short": "IRule code content, this content will be base64 encoded for preserving formatting.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "minLength": 1, "maxLength": 1048576, "byteLength": { "max": 1048576, "min": 1 }, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "irule_name": { "type": "string", "description": "IRule name.", "maxLength": 256, "x-displayname": "IRule name.", "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-example": "example-resource", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 256, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "source": { "type": "string", "description": "IRule generation/updation source.", "x-displayname": "IRule source.", "x-ves-validation-rules": { "ves.io.schema.rules.string.in": "[\\\"AI\\\",\\\"Human\\\",\\\"Mix\\\"]" }, "x-validation-rules": { "ves.io.schema.rules.string.in": "[\\\"AI\\\",\\\"Human\\\",\\\"Mix\\\"]" }, "maxLength": 1024, "enum": [ "AI", "Human", "Mix" ], "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for bigip_iruleReplaceSpecType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for bigip_iruleReplaceSpecType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bigip", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "bigip_iruleStatusObject": { "type": "object", "description": "Most recently observed status of object.", "title": "Status for BIG-IP iRule Service", "x-displayname": "Status", "x-ves-proto-message": "ves.io.schema.bigip_irule.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 the object for current status.", "title": "object_refs", "items": { "$ref": "#/components/schemas/schemaObjectRefType" }, "x-displayname": "Config Object.", "x-f5xc-description-short": "Reference to the object for current status.", "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 bigip_iruleStatusObject", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for bigip_iruleStatusObject\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bigip", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "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\": ,\n\"lastName\": \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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for protobufAny\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaConditionType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "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_yaml": "# Minimal example for schemaErrorCode\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for schemaErrorType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaInitializerType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "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_yaml": "# Minimal example for schemaInitializersType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaObjectCreateMetaType\nmetadata:\n name: example\n namespace: default\nspec:\n name: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"name\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaObjectGetMetaType\nmetadata:\n name: example\n namespace: default\nspec:\n name: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"name\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaObjectRefType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemaObjectReplaceMetaType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaStatusMetaType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "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_yaml": "# Minimal example for schemaStatusPublishType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaStatusType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaSystemObjectGetMetaType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaViewRefType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "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-08-20T09:12:47+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": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for app_typeDiscoveredAPISettings\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "bigip_virtual_serverBigIPVirtualServerList": { "type": "object", "title": "List of BigIP Virtual Servers", "x-displayname": "List of BIG-IP Virtual Servers.", "x-ves-proto-message": "ves.io.schema.views.bigip_virtual_server.BigIPVirtualServerList", "properties": { "bigip_virtual_servers": { "type": "array", "description": "IP address configuration", "title": "BigIP Virtual Servers", "minItems": 1, "maxItems": 5, "items": { "type": "string", "minLength": 1, "maxLength": 256 }, "x-displayname": "BIG-IP Virtual Server List.", "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-constraints": { "constraintType": "array", "category": "discovery", "minItems": 1, "maxItems": 5, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for bigip_virtual_serverBigIPVirtualServerList", "required_fields": [ "bigip_virtual_servers" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for bigip_virtual_serverBigIPVirtualServerList\nmetadata:\n name: example\n namespace: default\nspec:\n bigip_virtual_servers: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"bigip_virtual_servers\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "bigip", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "bigip_virtual_serverBigIpVirtualServerType": { "type": "string", "description": "VirtualServerType could be of type classic BIG-IP or BIG-IP-NEXT. BIG-IP-NEXT will be added later.\n\nSpecifies the virtual server type\n\nInvalid Virtual Server Type\nClassic BIG-IP Virtual Server.", "enum": [ "INVALID_VIRTUAL_SERVER", "BIGIP_VIRTUAL_SERVER" ], "default": "INVALID_VIRTUAL_SERVER", "x-displayname": "Virtual Server Type.", "x-ves-proto-enum": "ves.io.schema.views.bigip_virtual_server.BigIpVirtualServerType", "x-f5xc-description-short": "VirtualServerType could be of type classic BIG-IP or BIG-IP-NEXT. BIG-IP-NEXT will be added later.", "x-f5xc-description-medium": "VirtualServerType could be of type classic BIG-IP or BIG-IP-NEXT. BIG-IP-NEXT will be added later. Specifies the virtual server type Invalid Virtual Server Type Classic BIG-IP Virtual Server.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for bigip_virtual_serverBigIpVirtualServerType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for bigip_virtual_serverBigIpVirtualServerType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bigip", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "bigip_virtual_serverGetResponse": { "type": "object", "description": "This is the output message of the 'GET' RPC.", "title": "GetResponse is the shape of a read bigip_virtual_server", "x-displayname": "GET Response.", "x-ves-proto-message": "ves.io.schema.views.bigip_virtual_server.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 } }, "replace_form": { "allOf": [ { "$ref": "#/components/schemas/bigip_virtual_serverReplaceRequest" } ], "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/viewsbigip_virtual_serverGetSpecType" } ], "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/bigip_virtual_serverStatusObject" }, "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-08-20T09:12:47+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 bigip_virtual_serverGetResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for bigip_virtual_serverGetResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bigip", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "bigip_virtual_serverGetSecurityConfigReq": { "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_bigip_virtual_servers\",\"bigip_virtual_servers_list\"]", "x-ves-proto-message": "ves.io.schema.views.bigip_virtual_server.GetSecurityConfigReq", "properties": { "all_bigip_virtual_servers": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "bigip_virtual_servers_list" ] }, "bigip_virtual_servers_list": { "allOf": [ { "$ref": "#/components/schemas/bigip_virtual_serverBigIPVirtualServerList" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "all_bigip_virtual_servers" ] }, "namespace": { "type": "string", "description": "Namespace of the BIG-IP Load Balancer for current request.", "title": "Namespace", "x-displayname": "Namespace", "x-ves-example": "Shared", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true" }, "x-f5xc-example": "shared", "x-validation-rules": { "ves.io.schema.rules.message.required": "true" }, "x-f5xc-description-short": "Namespace of the BIG-IP 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-08-20T09:12:47+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-08-20T09:12:47+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 bigip_virtual_serverGetSecurityConfigReq", "required_fields": [ "namespace" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for bigip_virtual_serverGetSecurityConfigReq\nmetadata:\n name: example\n namespace: default\nspec:\n namespace: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"namespace\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "bigip", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "bigip_virtual_serverListResponse": { "type": "object", "description": "This is the output message of 'List' RPC.", "title": "ListResponse is the collection of bigip_virtual_server", "x-displayname": "List Response.", "x-ves-proto-message": "ves.io.schema.views.bigip_virtual_server.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/bigip_virtual_serverListResponseItem" }, "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for bigip_virtual_serverListResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for bigip_virtual_serverListResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bigip", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "bigip_virtual_serverListResponseItem": { "type": "object", "description": "By default a summary of bigip_virtual_server 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 bigip_virtual_server", "x-displayname": "List Item", "x-ves-proto-message": "ves.io.schema.views.bigip_virtual_server.ListResponseItem", "properties": { "annotations": { "type": "object", "description": "The set of annotations present on this bigip_virtual_server.", "title": "annotations", "x-displayname": "Annotations.", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "The set of annotations present on this bigip_virtual_server.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "description": { "type": "string", "description": "The description set for this bigip_virtual_server.", "title": "description", "x-displayname": "Description.", "x-f5xc-description-short": "The description set for this bigip_virtual_server.", "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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "disabled": { "type": "boolean", "description": "A value of true indicates bigip_virtual_server is administratively disabled.", "title": "disabled", "format": "boolean", "x-displayname": "Disabled", "x-f5xc-example": "True", "x-f5xc-description-short": "Value of true indicates bigip_virtual_server is administratively disabled.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "get_spec": { "allOf": [ { "$ref": "#/components/schemas/viewsbigip_virtual_serverGetSpecType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "labels": { "type": "object", "description": "The set of labels present on this bigip_virtual_server.", "title": "labels", "x-displayname": "Labels", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "The set of labels present on this bigip_virtual_server.", "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 bigip_virtual_server.", "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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/bigip_virtual_serverStatusObject" }, "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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "uid": { "type": "string", "description": "The unique uid of this bigip_virtual_server.", "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 bigip_virtual_server.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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-08-20T09:12:47+00:00" } }, "x-f5xc-description-short": "By default a summary of bigip_virtual_server is returned in 'List'.", "x-f5xc-description-medium": "By default a summary of bigip_virtual_server 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 bigip_virtual_serverListResponseItem", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for bigip_virtual_serverListResponseItem\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bigip", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "bigip_virtual_serverReplaceRequest": { "type": "object", "description": "This is the input message of the 'Replace' RPC.", "title": "ReplaceRequest is used to replace contents of a bigip_virtual_server", "x-displayname": "Replace Request.", "x-ves-proto-message": "ves.io.schema.views.bigip_virtual_server.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/viewsbigip_virtual_serverReplaceSpecType" } ], "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 bigip_virtual_serverReplaceRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for bigip_virtual_serverReplaceRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bigip", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "bigip_virtual_serverReplaceResponse": { "type": "object", "x-ves-proto-message": "ves.io.schema.views.bigip_virtual_server.ReplaceResponse", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for bigip_virtual_serverReplaceResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for bigip_virtual_serverReplaceResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bigip", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "bigip_virtual_serverStatusObject": { "type": "object", "description": "Most recently observed status of object.", "title": "StatusObject", "x-displayname": "Status", "x-ves-proto-message": "ves.io.schema.views.bigip_virtual_server.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": "BIG-IP virtual_server view object direct reference.", "title": "object_refs", "items": { "$ref": "#/components/schemas/ioschemaObjectRefType" }, "x-displayname": "Config Object.", "x-f5xc-description-short": "BIG-IP virtual_server view 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 bigip_virtual_serverStatusObject", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for bigip_virtual_serverStatusObject\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bigip", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "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_yaml": "# Minimal example for common_securityGetSecurityConfigRsp\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "certificates", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "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_yaml": "# Minimal example for common_securitySensitiveDataPolicySettings\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "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_yaml": "# Minimal example for common_wafAPISpecificationSettings\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "virtual", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "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_yaml": "# Minimal example for common_wafApiCodeRepos\nmetadata:\n name: example\n namespace: default\nspec:\n api_code_repo: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"api_code_repo\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "virtual", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "common_wafApiCrawler__ves_io_schema_views_bigip_virtual_server": { "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_bigip_virtual_server" } ], "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_yaml": "# Minimal example for common_wafApiCrawler\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "virtual", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "common_wafApiCrawlerConfiguration__ves_io_schema_views_bigip_virtual_server": { "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/common_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-08-20T09:12:47+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_yaml": "# Minimal example for common_wafApiCrawlerConfiguration\nmetadata:\n name: example\n namespace: default\nspec:\n domains: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"domains\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "virtual", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "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_yaml": "# Minimal example for common_wafApiDiscoveryAdvancedSettings\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "virtual", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for common_wafApiDiscoveryFromCodeScan\nmetadata:\n name: example\n namespace: default\nspec:\n code_base_integrations: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"code_base_integrations\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "virtual", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "common_wafApiDiscoverySetting__ves_io_schema_views_bigip_virtual_server": { "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_bigip_virtual_server" } ], "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_yaml": "# Minimal example for common_wafApiDiscoverySetting\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "virtual", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for common_wafApiEndpointDetails\nmetadata:\n name: example\n namespace: default\nspec:\n path: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"path\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "virtual", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "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_yaml": "# Minimal example for common_wafCodeBaseIntegrationSelection\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "virtual", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for common_wafCustomFallThroughMode\nmetadata:\n name: example\n namespace: default\nspec:\n open_api_validation_rules: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"open_api_validation_rules\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "virtual", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "common_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-08-20T09:12:47+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-08-20T09:12:47+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 common_wafDomainConfiguration", "required_fields": [ "domain" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for common_wafDomainConfiguration\nmetadata:\n name: example\n namespace: default\nspec:\n domain: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"domain\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "virtual", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for common_wafFallThroughRule\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "virtual", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "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_yaml": "# Minimal example for common_wafOpenApiFallThroughMode\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "virtual", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "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_yaml": "# Minimal example for common_wafOpenApiValidationAllSpecEndpointsSettings\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "virtual", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "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_yaml": "# Minimal example for common_wafOpenApiValidationCommonSettings\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "virtual", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "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_yaml": "# Minimal example for common_wafOpenApiValidationMode\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "virtual", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for common_wafOpenApiValidationModeActive\nmetadata:\n name: example\n namespace: default\nspec:\n request_validation_properties: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"request_validation_properties\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "virtual", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for common_wafOpenApiValidationModeActiveResponse\nmetadata:\n name: example\n namespace: default\nspec:\n response_validation_properties: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"response_validation_properties\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "virtual", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for common_wafOpenApiValidationRule\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "virtual", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "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": "MySecureP@ssw0rd123!", "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-08-20T09:12:47+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_yaml": "# Minimal example for common_wafSimpleLogin\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "virtual", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for common_wafValidateApiBySpecRule\nmetadata:\n name: example\n namespace: default\nspec:\n open_api_validation_rules: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"open_api_validation_rules\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "virtual", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "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_yaml": "# Minimal example for common_wafValidationPropertySetting\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "virtual", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "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_yaml": "# Minimal example for common_wafValidationSettingForQueryParameters\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "virtual", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "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_yaml": "# Minimal example for ioschemaEmpty\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for ioschemaObjectRefType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "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-08-20T09:12:47+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, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaBlindfoldSecretInfoType\nmetadata:\n name: example\n namespace: default\nspec:\n location: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"location\": \"value\"\n }\n}" }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaClearSecretInfoType\nmetadata:\n name: example\n namespace: default\nspec:\n url: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"url\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "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_yaml": "# Minimal example for schemaHttpMethod\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaMessageMetaType\nmetadata:\n name: example\n namespace: default\nspec:\n name: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"name\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "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_yaml": "# Minimal example for schemaOpenApiValidationProperties\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "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_yaml": "# Minimal example for schemaSecretType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "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" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaviewsObjectRefType\nmetadata:\n name: example\n namespace: default\nspec:\n name: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"name\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "viewsbigip_virtual_serverGetSpecType": { "type": "object", "description": "Shape of the BIG-IP virtual server specification.", "title": "GetSpecType", "x-displayname": "GET BIG-IP virtual server.", "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-sensitive_data_policy_choice": "[\"default_sensitive_data_policy\",\"sensitive_data_policy\"]", "x-ves-proto-message": "ves.io.schema.views.bigip_virtual_server.GetSpecType", "properties": { "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" ] }, "bigip_hostname": { "type": "string", "description": "BIG-IP Hostname.", "x-displayname": "Hostname", "x-f5xc-example": "example-resource", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "bigip_version": { "type": "string", "description": "Version of the BIG-IP which hosts the virtual server.", "maxLength": 256, "x-displayname": "BIG-IP version.", "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": "Version of the BIG-IP which hosts the virtual server.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 256, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "bigip_vs_description": { "type": "string", "description": "BIG-IP Virtual Server Description.", "x-displayname": "Description.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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 }, "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 }, "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 }, "x-f5xc-conflicts-with": [ "enable_api_discovery" ] }, "enable_api_discovery": { "allOf": [ { "$ref": "#/components/schemas/common_wafApiDiscoverySetting__ves_io_schema_views_bigip_virtual_server" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "disable_api_discovery" ] }, "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" ] }, "server_name": { "type": "string", "description": "Virtual Server name.", "maxLength": 1024, "x-displayname": "Server Name.", "x-ves-validation-rules": { "ves.io.schema.rules.string.max_len": "1024" }, "x-validation-rules": { "ves.io.schema.rules.string.max_len": "1024" }, "x-f5xc-example": "example-resource", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 1024, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "service_discovery": { "allOf": [ { "$ref": "#/components/schemas/schemaviewsObjectRefType" } ], "x-f5xc-description-short": "Configuration parameter for service discovery.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-references": [ { "resource_kind": "discovery", "field_path": "service_discovery", "gated_by": null, "required": false, "cardinality": "single" } ] }, "type": { "allOf": [ { "$ref": "#/components/schemas/bigip_virtual_serverBigIpVirtualServerType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Shape of the BIG-IP virtual server specification.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for viewsbigip_virtual_serverGetSpecType", "required_fields": [ "bigip_version" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for viewsbigip_virtual_serverGetSpecType\nmetadata:\n name: example\n namespace: default\nspec:\n bigip_version: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"bigip_version\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "bigip", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "viewsbigip_virtual_serverReplaceSpecType": { "type": "object", "description": "Shape of the BIG-IP virtual server specification.", "title": "ReplaceSpecType", "x-displayname": "Replace BIG-IP virtual server.", "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-sensitive_data_policy_choice": "[\"default_sensitive_data_policy\",\"sensitive_data_policy\"]", "x-ves-proto-message": "ves.io.schema.views.bigip_virtual_server.ReplaceSpecType", "properties": { "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" ] }, "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 }, "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 }, "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 }, "x-f5xc-conflicts-with": [ "enable_api_discovery" ] }, "enable_api_discovery": { "allOf": [ { "$ref": "#/components/schemas/common_wafApiDiscoverySetting__ves_io_schema_views_bigip_virtual_server" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "disable_api_discovery" ] }, "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" ] } }, "x-f5xc-description-short": "Shape of the BIG-IP virtual server specification.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for viewsbigip_virtual_serverReplaceSpecType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for viewsbigip_virtual_serverReplaceSpecType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bigip", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "application_profilesAdvancedTCPProfile": { "type": "object", "description": "BIG-IP Advanced TCP Profile.", "title": "BIG-IP Advanced TCP Profile", "x-displayname": "BIG-IP Advanced TCP Profile.", "x-ves-oneof-field-tcp_advanced_profile_choice": "[\"disable_tcp_advanced_profile\",\"enable_tcp_advanced_profile\"]", "x-ves-proto-message": "ves.io.schema.bigcne.application_profiles.AdvancedTCPProfile", "properties": { "disable_tcp_advanced_profile": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-description-short": "Configuration parameter for disable tcp advanced profile.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "enable_tcp_advanced_profile" ] }, "enable_tcp_advanced_profile": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-description-short": "Configuration parameter for enable tcp advanced profile.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "disable_tcp_advanced_profile" ] } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for application_profilesAdvancedTCPProfile", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for application_profilesAdvancedTCPProfile\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Canonical create identity pending namespace CRUD verification" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "application_profilesCreateRequest": { "type": "object", "description": "This is the input message of the 'Create' RPC.", "title": "CreateRequest is used to create an instance of application_profiles", "x-displayname": "Create Request.", "x-ves-proto-message": "ves.io.schema.bigcne.application_profiles.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/application_profilesCreateSpecType" } ], "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 application_profilesCreateRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for application_profilesCreateRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Canonical create identity pending namespace CRUD verification" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "application_profilesCreateResponse": { "type": "object", "x-ves-proto-message": "ves.io.schema.bigcne.application_profiles.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/application_profilesGetSpecType" } ], "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 application_profilesCreateResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for application_profilesCreateResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Canonical create identity pending namespace CRUD verification" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "application_profilesCreateSpecType": { "type": "object", "description": "Create Application Profiles in a given namespace. If one already exists it will give an error.", "title": "Create Application Profiles", "x-displayname": "Create Application Profiles.", "x-ves-proto-message": "ves.io.schema.bigcne.application_profiles.CreateSpecType", "properties": { "advanced_tcp_profile": { "allOf": [ { "$ref": "#/components/schemas/application_profilesAdvancedTCPProfile" } ], "x-f5xc-description-short": "Configuration parameter for advanced tcp profile.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "ddos_profile": { "allOf": [ { "$ref": "#/components/schemas/application_profilesDDoSProfile" } ], "x-f5xc-description-short": "Configuration parameter for ddos profile.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "irules": { "type": "array", "description": "OPTIONS for attaching iRules to BIG-IP Proxy.", "maxItems": 16, "items": { "$ref": "#/components/schemas/schemaObjectRefType" }, "x-displayname": "IRules Ref.", "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": "OPTIONS for attaching iRules to BIG-IP Proxy.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 16, "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "virtual_server": { "allOf": [ { "$ref": "#/components/schemas/application_profilesVirtualServerType" } ], "x-f5xc-description-short": "Configuration parameter for virtual server.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Create Application Profiles in a given namespace. If one already exists it will give an error.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for application_profilesCreateSpecType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for application_profilesCreateSpecType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Canonical create identity pending namespace CRUD verification" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "application_profilesDDoSProfile": { "type": "object", "description": "BIG-IP DDoS Protection Rules.", "title": "BIG-IP DDoS Protection", "x-displayname": "BIG-IP DDoS Protection.", "x-ves-oneof-field-ddos_mitigation_choice": "[\"disable_ddos_mitigation\",\"enable_ddos_mitigation\"]", "x-ves-proto-message": "ves.io.schema.bigcne.application_profiles.DDoSProfile", "properties": { "disable_ddos_mitigation": { "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_ddos_mitigation" ] }, "enable_ddos_mitigation": { "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_ddos_mitigation" ] } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for application_profilesDDoSProfile", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for application_profilesDDoSProfile\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Canonical create identity pending namespace CRUD verification" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "application_profilesDeleteRequest": { "type": "object", "description": "This is the input message of the 'DELETE' RPC.", "title": "DeleteRequest is used to delete a application_profiles", "x-displayname": "DELETE Request.", "x-ves-proto-message": "ves.io.schema.bigcne.application_profiles.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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for application_profilesDeleteRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for application_profilesDeleteRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Canonical create identity pending namespace CRUD verification" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "application_profilesGetResponse": { "type": "object", "description": "This is the output message of the 'GET' RPC.", "title": "GetResponse is the shape of a read application_profiles", "x-displayname": "GET Response.", "x-ves-proto-message": "ves.io.schema.bigcne.application_profiles.GetResponse", "properties": { "create_form": { "allOf": [ { "$ref": "#/components/schemas/application_profilesCreateRequest" } ], "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/application_profilesReplaceRequest" } ], "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/application_profilesGetSpecType" } ], "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 application_profilesGetResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for application_profilesGetResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Canonical create identity pending namespace CRUD verification" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "application_profilesGetSpecType": { "type": "object", "description": "GET Application Profiles details.", "title": "Get Application Profiles", "x-displayname": "GET Application Profiles.", "x-ves-proto-message": "ves.io.schema.bigcne.application_profiles.GetSpecType", "properties": { "advanced_tcp_profile": { "allOf": [ { "$ref": "#/components/schemas/application_profilesAdvancedTCPProfile" } ], "x-f5xc-description-short": "Configuration parameter for advanced tcp profile.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "ddos_profile": { "allOf": [ { "$ref": "#/components/schemas/application_profilesDDoSProfile" } ], "x-f5xc-description-short": "Configuration parameter for ddos profile.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "irules": { "type": "array", "description": "OPTIONS for attaching iRules to BIG-IP Proxy.", "maxItems": 16, "items": { "$ref": "#/components/schemas/schemaObjectRefType" }, "x-displayname": "IRules Ref.", "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": "OPTIONS for attaching iRules to BIG-IP Proxy.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 16, "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "virtual_server": { "allOf": [ { "$ref": "#/components/schemas/application_profilesVirtualServerType" } ], "x-f5xc-description-short": "Configuration parameter for virtual server.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for application_profilesGetSpecType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for application_profilesGetSpecType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Canonical create identity pending namespace CRUD verification" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "application_profilesHTTP3ProfileType": { "type": "object", "title": "HTTP/3", "x-displayname": "HTTP/3 profiles.", "x-ves-proto-message": "ves.io.schema.bigcne.application_profiles.HTTP3ProfileType", "properties": { "client_ssl_profile": { "type": "array", "description": "Client-side configuration", "title": "Client SSL Profile", "maxItems": 32, "items": { "$ref": "#/components/schemas/schemaObjectRefType" }, "x-displayname": "Client SSL Profile.", "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-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 32, "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "http3_profile": { "type": "array", "description": "Configuration parameter for http3 profile", "title": "HTTP/3 Profile", "maxItems": 1, "items": { "$ref": "#/components/schemas/schemaObjectRefType" }, "x-displayname": "HTTP/3 Profile.", "x-ves-validation-rules": { "ves.io.schema.rules.repeated.max_items": "1", "ves.io.schema.rules.repeated.unique": "true" }, "x-validation-rules": { "ves.io.schema.rules.repeated.max_items": "1", "ves.io.schema.rules.repeated.unique": "true" }, "x-f5xc-description-short": "Configuration parameter for http3 profile.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 1, "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "http_client_profile": { "type": "array", "description": "Client-side configuration", "title": "HTTP Profile (Client)", "maxItems": 1, "items": { "$ref": "#/components/schemas/schemaObjectRefType" }, "x-displayname": "HTTP Profile (Client)", "x-ves-validation-rules": { "ves.io.schema.rules.repeated.max_items": "1", "ves.io.schema.rules.repeated.unique": "true" }, "x-validation-rules": { "ves.io.schema.rules.repeated.max_items": "1", "ves.io.schema.rules.repeated.unique": "true" }, "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 1, "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "http_server_profile": { "type": "array", "description": "Configuration parameter for http server profile", "title": "HTTP Profile (Server)", "maxItems": 1, "items": { "$ref": "#/components/schemas/schemaObjectRefType" }, "x-displayname": "HTTP Profile (Server)", "x-ves-validation-rules": { "ves.io.schema.rules.repeated.max_items": "1", "ves.io.schema.rules.repeated.unique": "true" }, "x-validation-rules": { "ves.io.schema.rules.repeated.max_items": "1", "ves.io.schema.rules.repeated.unique": "true" }, "x-f5xc-description-short": "Configuration parameter for http server profile.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 1, "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "quic_profile": { "type": "array", "description": "Configuration parameter for quic profile", "title": "QUIC Profile", "maxItems": 1, "items": { "$ref": "#/components/schemas/schemaObjectRefType" }, "x-displayname": "QUIC Profile.", "x-ves-validation-rules": { "ves.io.schema.rules.repeated.max_items": "1", "ves.io.schema.rules.repeated.unique": "true" }, "x-validation-rules": { "ves.io.schema.rules.repeated.max_items": "1", "ves.io.schema.rules.repeated.unique": "true" }, "x-f5xc-description-short": "Configuration parameter for quic profile.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 1, "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "server_ssl_profile": { "type": "array", "description": "Configuration parameter for server ssl profile", "title": "Server SSL Profile", "maxItems": 32, "items": { "$ref": "#/components/schemas/schemaObjectRefType" }, "x-displayname": "Server SSL Profile.", "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": "Configuration parameter for server ssl profile.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 32, "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "tcp_server_profile": { "type": "array", "description": "Configuration parameter for tcp server profile", "title": "TCP Profile (Server)", "maxItems": 1, "items": { "$ref": "#/components/schemas/schemaObjectRefType" }, "x-displayname": "TCP Profile (Server)", "x-ves-validation-rules": { "ves.io.schema.rules.repeated.max_items": "1", "ves.io.schema.rules.repeated.unique": "true" }, "x-validation-rules": { "ves.io.schema.rules.repeated.max_items": "1", "ves.io.schema.rules.repeated.unique": "true" }, "x-f5xc-description-short": "Configuration parameter for tcp server profile.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 1, "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "udp_client_profile": { "type": "array", "description": "Client-side configuration", "title": "Protocol Profile (Client)", "maxItems": 1, "items": { "$ref": "#/components/schemas/schemaObjectRefType" }, "x-displayname": "Protocol Profile (Client)", "x-ves-validation-rules": { "ves.io.schema.rules.repeated.max_items": "1", "ves.io.schema.rules.repeated.unique": "true" }, "x-validation-rules": { "ves.io.schema.rules.repeated.max_items": "1", "ves.io.schema.rules.repeated.unique": "true" }, "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 1, "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "udp_server_profile": { "type": "array", "description": "Configuration parameter for udp server profile", "title": "Protocol Profile (Server)", "maxItems": 1, "items": { "$ref": "#/components/schemas/schemaObjectRefType" }, "x-displayname": "Protocol Profile (Server)", "x-ves-validation-rules": { "ves.io.schema.rules.repeated.max_items": "1", "ves.io.schema.rules.repeated.unique": "true" }, "x-validation-rules": { "ves.io.schema.rules.repeated.max_items": "1", "ves.io.schema.rules.repeated.unique": "true" }, "x-f5xc-description-short": "Configuration parameter for udp server profile.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 1, "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for application_profilesHTTP3ProfileType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for application_profilesHTTP3ProfileType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Canonical create identity pending namespace CRUD verification" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "application_profilesHTTPProfileType": { "type": "object", "title": "HTTP", "x-displayname": "HTTP profiles.", "x-ves-proto-message": "ves.io.schema.bigcne.application_profiles.HTTPProfileType", "properties": { "client_ssl_profile": { "type": "array", "description": "Client-side configuration", "title": "Client SSL Profile", "maxItems": 32, "items": { "$ref": "#/components/schemas/schemaObjectRefType" }, "x-displayname": "Client SSL Profile.", "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-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 32, "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "http2_client_profile": { "type": "array", "description": "Client-side configuration", "title": "HTTP/2 Profile Client", "maxItems": 1, "items": { "$ref": "#/components/schemas/schemaObjectRefType" }, "x-displayname": "HTTP/2 Profile Client.", "x-ves-validation-rules": { "ves.io.schema.rules.repeated.max_items": "1", "ves.io.schema.rules.repeated.unique": "true" }, "x-validation-rules": { "ves.io.schema.rules.repeated.max_items": "1", "ves.io.schema.rules.repeated.unique": "true" }, "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 1, "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "http2_server_profile": { "type": "array", "description": "Configuration parameter for http2 server profile", "title": "HTTP/2 Profile Server", "maxItems": 1, "items": { "$ref": "#/components/schemas/schemaObjectRefType" }, "x-displayname": "HTTP/2 Profile Server.", "x-ves-validation-rules": { "ves.io.schema.rules.repeated.max_items": "1", "ves.io.schema.rules.repeated.unique": "true" }, "x-validation-rules": { "ves.io.schema.rules.repeated.max_items": "1", "ves.io.schema.rules.repeated.unique": "true" }, "x-f5xc-description-short": "Configuration parameter for http2 server profile.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 1, "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "http_client_profile": { "type": "array", "description": "Client-side configuration", "title": "HTTP Profile (Client)", "maxItems": 1, "items": { "$ref": "#/components/schemas/schemaObjectRefType" }, "x-displayname": "HTTP Profile (Client)", "x-ves-validation-rules": { "ves.io.schema.rules.repeated.max_items": "1", "ves.io.schema.rules.repeated.unique": "true" }, "x-validation-rules": { "ves.io.schema.rules.repeated.max_items": "1", "ves.io.schema.rules.repeated.unique": "true" }, "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 1, "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "http_server_profile": { "type": "array", "description": "Configuration parameter for http server profile", "title": "HTTP Profile (Server)", "maxItems": 1, "items": { "$ref": "#/components/schemas/schemaObjectRefType" }, "x-displayname": "HTTP Profile (Server)", "x-ves-validation-rules": { "ves.io.schema.rules.repeated.max_items": "1", "ves.io.schema.rules.repeated.unique": "true" }, "x-validation-rules": { "ves.io.schema.rules.repeated.max_items": "1", "ves.io.schema.rules.repeated.unique": "true" }, "x-f5xc-description-short": "Configuration parameter for http server profile.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 1, "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "ocsp_profile": { "type": "array", "description": "Configuration parameter for ocsp profile", "title": "OCSP Profile", "maxItems": 1, "items": { "$ref": "#/components/schemas/schemaObjectRefType" }, "x-displayname": "OCSP Profile.", "x-ves-validation-rules": { "ves.io.schema.rules.repeated.max_items": "1", "ves.io.schema.rules.repeated.unique": "true" }, "x-validation-rules": { "ves.io.schema.rules.repeated.max_items": "1", "ves.io.schema.rules.repeated.unique": "true" }, "x-f5xc-description-short": "Configuration parameter for ocsp profile.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 1, "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "server_ssl_profile": { "type": "array", "description": "Configuration parameter for server ssl profile", "title": "Server SSL Profile", "maxItems": 32, "items": { "$ref": "#/components/schemas/schemaObjectRefType" }, "x-displayname": "Server SSL Profile.", "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": "Configuration parameter for server ssl profile.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 32, "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "stream_profile": { "type": "array", "description": "Configuration parameter for stream profile", "title": "Stream Profile", "maxItems": 1, "items": { "$ref": "#/components/schemas/schemaObjectRefType" }, "x-displayname": "Stream Profile.", "x-ves-validation-rules": { "ves.io.schema.rules.repeated.max_items": "1", "ves.io.schema.rules.repeated.unique": "true" }, "x-validation-rules": { "ves.io.schema.rules.repeated.max_items": "1", "ves.io.schema.rules.repeated.unique": "true" }, "x-f5xc-description-short": "Configuration parameter for stream profile.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 1, "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "tcp_client_profile": { "type": "array", "description": "Client-side configuration", "title": "Protocol Profile (Client)", "maxItems": 1, "items": { "$ref": "#/components/schemas/schemaObjectRefType" }, "x-displayname": "Protocol Profile (Client)", "x-ves-validation-rules": { "ves.io.schema.rules.repeated.max_items": "1", "ves.io.schema.rules.repeated.unique": "true" }, "x-validation-rules": { "ves.io.schema.rules.repeated.max_items": "1", "ves.io.schema.rules.repeated.unique": "true" }, "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 1, "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "tcp_server_profile": { "type": "array", "description": "Configuration parameter for tcp server profile", "title": "Protocol Profile (Server)", "maxItems": 1, "items": { "$ref": "#/components/schemas/schemaObjectRefType" }, "x-displayname": "Protocol Profile (Server)", "x-ves-validation-rules": { "ves.io.schema.rules.repeated.max_items": "1", "ves.io.schema.rules.repeated.unique": "true" }, "x-validation-rules": { "ves.io.schema.rules.repeated.max_items": "1", "ves.io.schema.rules.repeated.unique": "true" }, "x-f5xc-description-short": "Configuration parameter for tcp server profile.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 1, "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "websocket_client_profile": { "type": "array", "description": "Web-related configuration", "title": "WebSocket Profile Client", "maxItems": 1, "items": { "$ref": "#/components/schemas/schemaObjectRefType" }, "x-displayname": "WebSocket Profile Client.", "x-ves-validation-rules": { "ves.io.schema.rules.repeated.max_items": "1", "ves.io.schema.rules.repeated.unique": "true" }, "x-validation-rules": { "ves.io.schema.rules.repeated.max_items": "1", "ves.io.schema.rules.repeated.unique": "true" }, "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 1, "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "websocket_server_profile": { "type": "array", "description": "Web-related configuration", "title": "WebSocket Profile Server", "maxItems": 1, "items": { "$ref": "#/components/schemas/schemaObjectRefType" }, "x-displayname": "WebSocket Profile Server.", "x-ves-validation-rules": { "ves.io.schema.rules.repeated.max_items": "1", "ves.io.schema.rules.repeated.unique": "true" }, "x-validation-rules": { "ves.io.schema.rules.repeated.max_items": "1", "ves.io.schema.rules.repeated.unique": "true" }, "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 1, "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for application_profilesHTTPProfileType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for application_profilesHTTPProfileType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Canonical create identity pending namespace CRUD verification" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "application_profilesListResponse": { "type": "object", "description": "This is the output message of 'List' RPC.", "title": "ListResponse is the collection of application_profiles", "x-displayname": "List Response.", "x-ves-proto-message": "ves.io.schema.bigcne.application_profiles.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/application_profilesListResponseItem" }, "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for application_profilesListResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for application_profilesListResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Canonical create identity pending namespace CRUD verification" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "application_profilesListResponseItem": { "type": "object", "description": "By default a summary of application_profiles 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 application_profiles", "x-displayname": "List Item", "x-ves-proto-message": "ves.io.schema.bigcne.application_profiles.ListResponseItem", "properties": { "annotations": { "type": "object", "description": "The set of annotations present on this application_profiles.", "title": "annotations", "x-displayname": "Annotations.", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "The set of annotations present on this application_profiles.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "description": { "type": "string", "description": "The description set for this application_profiles.", "title": "description", "x-displayname": "Description.", "x-f5xc-description-short": "The description set for this application_profiles.", "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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "disabled": { "type": "boolean", "description": "A value of true indicates application_profiles is administratively disabled.", "title": "disabled", "format": "boolean", "x-displayname": "Disabled", "x-f5xc-example": "True", "x-f5xc-description-short": "Value of true indicates application_profiles is administratively disabled.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "get_spec": { "allOf": [ { "$ref": "#/components/schemas/application_profilesGetSpecType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "labels": { "type": "object", "description": "The set of labels present on this application_profiles.", "title": "labels", "x-displayname": "Labels", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "The set of labels present on this application_profiles.", "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 application_profiles.", "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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" } ] }, "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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "uid": { "type": "string", "description": "The unique uid of this application_profiles.", "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 application_profiles.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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-08-20T09:12:47+00:00" } }, "x-f5xc-description-short": "By default a summary of application_profiles is returned in 'List'.", "x-f5xc-description-medium": "By default a summary of application_profiles 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 application_profilesListResponseItem", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for application_profilesListResponseItem\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Canonical create identity pending namespace CRUD verification" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "application_profilesReplaceRequest": { "type": "object", "description": "This is the input message of the 'Replace' RPC.", "title": "ReplaceRequest is used to replace contents of a application_profiles", "x-displayname": "Replace Request.", "x-ves-proto-message": "ves.io.schema.bigcne.application_profiles.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/application_profilesReplaceSpecType" } ], "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 application_profilesReplaceRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for application_profilesReplaceRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Canonical create identity pending namespace CRUD verification" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "application_profilesReplaceResponse": { "type": "object", "x-ves-proto-message": "ves.io.schema.bigcne.application_profiles.ReplaceResponse", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for application_profilesReplaceResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for application_profilesReplaceResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Canonical create identity pending namespace CRUD verification" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "application_profilesReplaceSpecType": { "type": "object", "description": "Replace Application Profiles in a given namespace.", "title": "Replace Application Profiles", "x-displayname": "Replace Application Profiles.", "x-ves-proto-message": "ves.io.schema.bigcne.application_profiles.ReplaceSpecType", "properties": { "advanced_tcp_profile": { "allOf": [ { "$ref": "#/components/schemas/application_profilesAdvancedTCPProfile" } ], "x-f5xc-description-short": "Configuration parameter for advanced tcp profile.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "ddos_profile": { "allOf": [ { "$ref": "#/components/schemas/application_profilesDDoSProfile" } ], "x-f5xc-description-short": "Configuration parameter for ddos profile.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "irules": { "type": "array", "description": "OPTIONS for attaching iRules to BIG-IP Proxy.", "maxItems": 16, "items": { "$ref": "#/components/schemas/schemaObjectRefType" }, "x-displayname": "IRules Ref.", "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": "OPTIONS for attaching iRules to BIG-IP Proxy.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 16, "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "virtual_server": { "allOf": [ { "$ref": "#/components/schemas/application_profilesVirtualServerType" } ], "x-f5xc-description-short": "Configuration parameter for virtual server.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Replace Application Profiles in a given namespace.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for application_profilesReplaceSpecType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for application_profilesReplaceSpecType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Canonical create identity pending namespace CRUD verification" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "application_profilesTCPProfileType": { "type": "object", "title": "TCP", "x-displayname": "TCP profiles.", "x-ves-proto-message": "ves.io.schema.bigcne.application_profiles.TCPProfileType", "properties": { "client_ssl_profile": { "type": "array", "description": "Client-side configuration", "title": "Client SSL Profile", "items": { "$ref": "#/components/schemas/schemaObjectRefType" }, "x-displayname": "Client SSL Profile.", "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-constraints": { "constraintType": "array", "category": "discovery", "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "ocsp_profile": { "type": "array", "description": "Configuration parameter for ocsp profile", "title": "OCSP Profile", "maxItems": 1, "items": { "$ref": "#/components/schemas/schemaObjectRefType" }, "x-displayname": "OCSP Profile.", "x-ves-validation-rules": { "ves.io.schema.rules.repeated.max_items": "1", "ves.io.schema.rules.repeated.unique": "true" }, "x-validation-rules": { "ves.io.schema.rules.repeated.max_items": "1", "ves.io.schema.rules.repeated.unique": "true" }, "x-f5xc-description-short": "Configuration parameter for ocsp profile.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 1, "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "server_ssl_profile": { "type": "array", "description": "Configuration parameter for server ssl profile", "title": "Server SSL Profile", "items": { "$ref": "#/components/schemas/schemaObjectRefType" }, "x-displayname": "Server SSL Profile.", "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": "Configuration parameter for server ssl profile.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "tcp_client_profile": { "type": "array", "description": "Client-side configuration", "title": "Protocol Profile (Client)", "maxItems": 1, "items": { "$ref": "#/components/schemas/schemaObjectRefType" }, "x-displayname": "Protocol Profile (Client)", "x-ves-validation-rules": { "ves.io.schema.rules.repeated.max_items": "1", "ves.io.schema.rules.repeated.unique": "true" }, "x-validation-rules": { "ves.io.schema.rules.repeated.max_items": "1", "ves.io.schema.rules.repeated.unique": "true" }, "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 1, "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "tcp_server_profile": { "type": "array", "description": "Configuration parameter for tcp server profile", "title": "Protocol Profile (Server)", "maxItems": 1, "items": { "$ref": "#/components/schemas/schemaObjectRefType" }, "x-displayname": "Protocol Profile (Server)", "x-ves-validation-rules": { "ves.io.schema.rules.repeated.max_items": "1", "ves.io.schema.rules.repeated.unique": "true" }, "x-validation-rules": { "ves.io.schema.rules.repeated.max_items": "1", "ves.io.schema.rules.repeated.unique": "true" }, "x-f5xc-description-short": "Configuration parameter for tcp server profile.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 1, "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for application_profilesTCPProfileType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for application_profilesTCPProfileType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Canonical create identity pending namespace CRUD verification" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "application_profilesUDPProfileType": { "type": "object", "title": "UDP", "x-displayname": "UDP profiles.", "x-ves-proto-message": "ves.io.schema.bigcne.application_profiles.UDPProfileType", "properties": { "client_ssl_profile": { "type": "array", "description": "Client-side configuration", "title": "Client SSL Profile", "maxItems": 32, "items": { "$ref": "#/components/schemas/schemaObjectRefType" }, "x-displayname": "Client SSL Profile.", "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-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 32, "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "server_ssl_profile": { "type": "array", "description": "Configuration parameter for server ssl profile", "title": "Server SSL Profile", "maxItems": 32, "items": { "$ref": "#/components/schemas/schemaObjectRefType" }, "x-displayname": "Server SSL Profile.", "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": "Configuration parameter for server ssl profile.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 32, "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "udp_client_profile": { "type": "array", "description": "Client-side configuration", "title": "Protocol Profile (Client)", "maxItems": 1, "items": { "$ref": "#/components/schemas/schemaObjectRefType" }, "x-displayname": "Protocol Profile (Client)", "x-ves-validation-rules": { "ves.io.schema.rules.repeated.max_items": "1", "ves.io.schema.rules.repeated.unique": "true" }, "x-validation-rules": { "ves.io.schema.rules.repeated.max_items": "1", "ves.io.schema.rules.repeated.unique": "true" }, "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 1, "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "udp_server_profile": { "type": "array", "description": "Configuration parameter for udp server profile", "title": "Protocol Profile (Server)", "maxItems": 1, "items": { "$ref": "#/components/schemas/schemaObjectRefType" }, "x-displayname": "Protocol Profile (Server)", "x-ves-validation-rules": { "ves.io.schema.rules.repeated.max_items": "1", "ves.io.schema.rules.repeated.unique": "true" }, "x-validation-rules": { "ves.io.schema.rules.repeated.max_items": "1", "ves.io.schema.rules.repeated.unique": "true" }, "x-f5xc-description-short": "Configuration parameter for udp server profile.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 1, "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for application_profilesUDPProfileType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for application_profilesUDPProfileType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Canonical create identity pending namespace CRUD verification" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "application_profilesVirtualServerType": { "type": "object", "description": "Specifies configuration related to virtual server.", "title": "VirtualServerType", "x-displayname": "Virtual Server.", "x-ves-oneof-field-virtual_server_type": "[\"http\",\"http3\",\"https\",\"tcp\",\"udp\"]", "x-ves-proto-message": "ves.io.schema.bigcne.application_profiles.VirtualServerType", "properties": { "address_translation": { "allOf": [ { "$ref": "#/components/schemas/schemaTMMVirtualServerAddressTranslationType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "auto_last_hop": { "allOf": [ { "$ref": "#/components/schemas/schemaTMMVirtualServerAutoLastHopType" } ], "x-f5xc-description-short": "Configuration parameter for auto last hop.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "clone_pool_client": { "type": "array", "description": "Replicates client-side traffic (that is, prior to address translation) to a member of the specified pool.", "title": "Clone Pool (Client)", "maxItems": 1, "items": { "$ref": "#/components/schemas/schemaObjectRefType" }, "x-displayname": "Clone Pool (Client)", "x-ves-validation-rules": { "ves.io.schema.rules.repeated.max_items": "1", "ves.io.schema.rules.repeated.unique": "true" }, "x-validation-rules": { "ves.io.schema.rules.repeated.max_items": "1", "ves.io.schema.rules.repeated.unique": "true" }, "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "Replicates client-side traffic (that is, prior to address translation) to a member of the specified pool.", "x-f5xc-description-medium": "Replicates client-side traffic (that is, prior to address translation) to a member of the specified pool.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 1, "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "clone_pool_server": { "type": "array", "description": "Replicates server-side traffic (that is, prior to address translation) to a member of the specified pool.", "title": "Clone Pool (Server)", "maxItems": 1, "items": { "$ref": "#/components/schemas/schemaObjectRefType" }, "x-displayname": "Clone Pool (Server)", "x-ves-validation-rules": { "ves.io.schema.rules.repeated.max_items": "1", "ves.io.schema.rules.repeated.unique": "true" }, "x-validation-rules": { "ves.io.schema.rules.repeated.max_items": "1", "ves.io.schema.rules.repeated.unique": "true" }, "x-f5xc-description-short": "Replicates server-side traffic (that is, prior to address translation) to a member of the specified pool.", "x-f5xc-description-medium": "Replicates server-side traffic (that is, prior to address translation) to a member of the specified pool.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 1, "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "connection_limit": { "type": "integer", "description": "Specifies the maximum number of concurrent connections allowed for the virtual server. Setting this to 0 turns off connection limits. The default is 0.", "title": "Connection Limit", "format": "int64", "x-displayname": "Connection Limit.", "x-ves-validation-rules": { "ves.io.schema.rules.uint32.gte": "0", "ves.io.schema.rules.uint32.lte": "600000" }, "x-validation-rules": { "ves.io.schema.rules.uint32.gte": "0", "ves.io.schema.rules.uint32.lte": "600000" }, "x-f5xc-description-short": "Specifies the maximum number of concurrent connections allowed for the virtual server.", "x-f5xc-description-medium": "Specifies the maximum number of concurrent connections allowed for the virtual server. Setting this to 0 turns off connection limits. The default is 0.", "x-f5xc-constraints": { "constraintType": "number", "category": "discovery", "minimum": 0, "maximum": 600000, "deterministic": true, "metadata": { "source": "api-probed", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "connection_rate_limit": { "type": "integer", "description": "Specifies the maximum number of connections-per-second allowed for a virtual server. When the number of connections-per-second reaches the limit for a given virtual server, the system drops (UDP) or resets (TCP) additional connection requests. This helps detect Denial of Service attacks, where connection requests flood a virtual server. Setting this to 0 turns off connection limits. The default is 0.", "title": "Connection Rate Limit", "format": "int64", "x-displayname": "Connection Rate Limit.", "x-ves-validation-rules": { "ves.io.schema.rules.uint32.gte": "0", "ves.io.schema.rules.uint32.lte": "600000" }, "x-validation-rules": { "ves.io.schema.rules.uint32.gte": "0", "ves.io.schema.rules.uint32.lte": "600000" }, "x-f5xc-description-short": "Specifies the maximum number of connections-per-second allowed for a virtual server.", "x-f5xc-description-medium": "Specifies the maximum number of connections-per-second allowed for a virtual server. When the number of connections-per-second reaches the limit for a given virtual server, the system drops (UDP) or resets (TCP) additional connection requests. This helps detect Denial of Service attacks, where...", "x-f5xc-constraints": { "constraintType": "number", "category": "discovery", "minimum": 0, "maximum": 600000, "deterministic": true, "metadata": { "source": "api-probed", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "connection_rate_limit_mode": { "allOf": [ { "$ref": "#/components/schemas/schemaTMMVirtualServerConnectionRateLimitMode" } ], "x-f5xc-description-short": "Configuration parameter for connection rate limit mode.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "default_persistence_profile": { "type": "array", "description": "Configuration parameter for default persistence profile", "title": "Default Persistence Profile", "maxItems": 1, "items": { "$ref": "#/components/schemas/schemaObjectRefType" }, "x-displayname": "Default Persistence Profile.", "x-ves-validation-rules": { "ves.io.schema.rules.repeated.max_items": "1", "ves.io.schema.rules.repeated.unique": "true" }, "x-validation-rules": { "ves.io.schema.rules.repeated.max_items": "1", "ves.io.schema.rules.repeated.unique": "true" }, "x-f5xc-description-short": "Configuration parameter for default persistence profile.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 1, "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "default_pool": { "type": "array", "description": "Specifies the pool name that you want the virtual server to use as the default pool. A load balancing virtual server sends traffic to this pool automatically, unless an iRule directs the server to send the traffic to another pool instead.", "title": "Default Pool", "maxItems": 1, "items": { "$ref": "#/components/schemas/schemaObjectRefType" }, "x-displayname": "Default Pool.", "x-ves-validation-rules": { "ves.io.schema.rules.repeated.max_items": "1", "ves.io.schema.rules.repeated.unique": "true" }, "x-validation-rules": { "ves.io.schema.rules.repeated.max_items": "1", "ves.io.schema.rules.repeated.unique": "true" }, "x-f5xc-description-short": "Specifies the pool name that you want the virtual server to use as the default pool.", "x-f5xc-description-medium": "Specifies the pool name that you want the virtual server to use as the default pool. A load balancing virtual server sends traffic to this pool automatically, unless an iRule directs the server to send the traffic to another pool instead.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 1, "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "fallback_persistence_profile": { "type": "array", "description": "Configuration parameter for fallback persistence profile", "title": "Fallback Persistence Profile", "maxItems": 1, "items": { "$ref": "#/components/schemas/schemaObjectRefType" }, "x-displayname": "Fallback Persistence Profile.", "x-ves-validation-rules": { "ves.io.schema.rules.repeated.max_items": "1", "ves.io.schema.rules.repeated.unique": "true" }, "x-validation-rules": { "ves.io.schema.rules.repeated.max_items": "1", "ves.io.schema.rules.repeated.unique": "true" }, "x-f5xc-description-short": "Configuration parameter for fallback persistence profile.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 1, "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "fix_profile": { "type": "array", "description": "Configuration parameter for fix profile", "title": "FIX Profile", "maxItems": 1, "items": { "$ref": "#/components/schemas/schemaObjectRefType" }, "x-displayname": "FIX Profile.", "x-ves-validation-rules": { "ves.io.schema.rules.repeated.max_items": "1", "ves.io.schema.rules.repeated.unique": "true" }, "x-validation-rules": { "ves.io.schema.rules.repeated.max_items": "1", "ves.io.schema.rules.repeated.unique": "true" }, "x-f5xc-description-short": "Configuration parameter for fix profile.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 1, "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "http": { "allOf": [ { "$ref": "#/components/schemas/application_profilesHTTPProfileType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "http3", "https", "tcp", "udp" ] }, "http3": { "allOf": [ { "$ref": "#/components/schemas/application_profilesHTTP3ProfileType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "http", "https", "tcp", "udp" ] }, "https": { "allOf": [ { "$ref": "#/components/schemas/application_profilesHTTPProfileType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "http", "http3", "tcp", "udp" ] }, "immediate_action_on_service_down": { "allOf": [ { "$ref": "#/components/schemas/schemaTMMImmediateActionOnServiceDownType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "last_hop_pool": { "type": "array", "description": "Directs reply traffic to the last hop router using the specified pool.", "title": "Last Hop Pool", "maxItems": 1, "items": { "$ref": "#/components/schemas/schemaObjectRefType" }, "x-displayname": "Last Hop", "x-ves-validation-rules": { "ves.io.schema.rules.repeated.max_items": "1", "ves.io.schema.rules.repeated.unique": "true" }, "x-validation-rules": { "ves.io.schema.rules.repeated.max_items": "1", "ves.io.schema.rules.repeated.unique": "true" }, "x-f5xc-description-short": "Directs reply traffic to the last hop router using the specified pool.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 1, "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "nat64": { "allOf": [ { "$ref": "#/components/schemas/schemaTMMVirtualServerNAT64Type" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "port_translation": { "allOf": [ { "$ref": "#/components/schemas/schemaTMMVirtualServerPortTranslationType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "request_logging_profile": { "type": "array", "description": "Configuration parameter for request logging profile", "title": "Request Logging Profile", "maxItems": 1, "items": { "$ref": "#/components/schemas/schemaObjectRefType" }, "x-displayname": "Request Logging Profile.", "x-ves-validation-rules": { "ves.io.schema.rules.repeated.max_items": "1", "ves.io.schema.rules.repeated.unique": "true" }, "x-validation-rules": { "ves.io.schema.rules.repeated.max_items": "1", "ves.io.schema.rules.repeated.unique": "true" }, "x-f5xc-description-short": "Configuration parameter for request logging profile.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 1, "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "source_port": { "allOf": [ { "$ref": "#/components/schemas/schemaTMMVirtualServerSourcePortType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "statistics_profile": { "type": "array", "description": "Configuration parameter for statistics profile", "title": "Statistics Profile", "maxItems": 1, "items": { "$ref": "#/components/schemas/schemaObjectRefType" }, "x-displayname": "Statistics Profile.", "x-ves-validation-rules": { "ves.io.schema.rules.repeated.max_items": "1", "ves.io.schema.rules.repeated.unique": "true" }, "x-validation-rules": { "ves.io.schema.rules.repeated.max_items": "1", "ves.io.schema.rules.repeated.unique": "true" }, "x-f5xc-description-short": "Configuration parameter for statistics profile.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 1, "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "tcp": { "allOf": [ { "$ref": "#/components/schemas/application_profilesTCPProfileType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "http", "http3", "https", "udp" ] }, "udp": { "allOf": [ { "$ref": "#/components/schemas/application_profilesUDPProfileType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "http", "http3", "https", "tcp" ] }, "virtual_server_state": { "allOf": [ { "$ref": "#/components/schemas/schemaTMMStateType" } ], "x-f5xc-description-short": "Configuration parameter for virtual server state.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "vs_score": { "type": "integer", "description": "Specifies the virtual server score in percent. Global Traffic Manager (GTM) can rely on this value to load balance traffic in a proportional manner. The default is 0, meaning that no additional metric is applied for the virtual server.", "title": "VS Score", "format": "int64", "x-displayname": "VS Score", "x-ves-validation-rules": { "ves.io.schema.rules.uint32.gte": "0", "ves.io.schema.rules.uint32.lte": "600000" }, "x-validation-rules": { "ves.io.schema.rules.uint32.gte": "0", "ves.io.schema.rules.uint32.lte": "600000" }, "x-f5xc-description-short": "Specifies the virtual server score in percent. Global Traffic Manager (GTM) can rely on this value to load balance traffic in a proportional manner.", "x-f5xc-description-medium": "Specifies the virtual server score in percent. Global Traffic Manager (GTM) can rely on this value to load balance traffic in a proportional manner. The default is 0, meaning that no additional metric is applied for the virtual server.", "x-f5xc-constraints": { "constraintType": "number", "category": "discovery", "minimum": 0, "maximum": 600000, "deterministic": true, "metadata": { "source": "api-probed", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Specifies configuration related to virtual server.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for application_profilesVirtualServerType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for application_profilesVirtualServerType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Canonical create identity pending namespace CRUD verification" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "schemaDestinationAddressType": { "type": "object", "title": "Destination Address Mask", "x-displayname": "Destination Address Mask.", "x-ves-proto-message": "ves.io.schema.DestinationAddressType", "properties": { "destination_mask": { "type": "integer", "description": "Configuration parameter for destination mask", "title": "Destination Mask", "format": "int64", "x-displayname": "Destination Mask.", "x-ves-validation-rules": { "ves.io.schema.rules.uint32.gte": "0", "ves.io.schema.rules.uint32.lte": "600000" }, "x-validation-rules": { "ves.io.schema.rules.uint32.gte": "0", "ves.io.schema.rules.uint32.lte": "600000" }, "x-f5xc-description-short": "Configuration parameter for destination mask.", "x-f5xc-constraints": { "constraintType": "number", "category": "discovery", "minimum": 0, "maximum": 600000, "deterministic": true, "metadata": { "source": "api-probed", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for schemaDestinationAddressType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemaDestinationAddressType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "schemaSourceAddressType": { "type": "object", "title": "Source Address", "x-displayname": "Source Address Mask.", "x-ves-proto-message": "ves.io.schema.SourceAddressType", "properties": { "source_mask": { "type": "integer", "description": "Configuration parameter for source mask", "title": "Source Mask", "format": "int64", "x-displayname": "Source Mask.", "x-ves-validation-rules": { "ves.io.schema.rules.uint32.gte": "0", "ves.io.schema.rules.uint32.lte": "600000" }, "x-validation-rules": { "ves.io.schema.rules.uint32.gte": "0", "ves.io.schema.rules.uint32.lte": "600000" }, "x-f5xc-description-short": "Configuration parameter for source mask.", "x-f5xc-constraints": { "constraintType": "number", "category": "discovery", "minimum": 0, "maximum": 600000, "deterministic": true, "metadata": { "source": "api-probed", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for schemaSourceAddressType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemaSourceAddressType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "schemaSourceDestinationAddressType": { "type": "object", "title": "Destination and Source Address", "x-displayname": "Destination and Source Address Mask.", "x-ves-proto-message": "ves.io.schema.SourceDestinationAddressType", "properties": { "destination_mask": { "type": "integer", "description": "Configuration parameter for destination mask", "title": "Destination Mask", "format": "int64", "x-displayname": "Destination Mask.", "x-ves-validation-rules": { "ves.io.schema.rules.uint32.gte": "0", "ves.io.schema.rules.uint32.lte": "600000" }, "x-validation-rules": { "ves.io.schema.rules.uint32.gte": "0", "ves.io.schema.rules.uint32.lte": "600000" }, "x-f5xc-description-short": "Configuration parameter for destination mask.", "x-f5xc-constraints": { "constraintType": "number", "category": "discovery", "minimum": 0, "maximum": 600000, "deterministic": true, "metadata": { "source": "api-probed", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "source_mask": { "type": "integer", "description": "Configuration parameter for source mask", "title": "Source Mask", "format": "int64", "x-displayname": "Source Mask.", "x-ves-validation-rules": { "ves.io.schema.rules.uint32.gte": "0", "ves.io.schema.rules.uint32.lte": "600000" }, "x-validation-rules": { "ves.io.schema.rules.uint32.gte": "0", "ves.io.schema.rules.uint32.lte": "600000" }, "x-f5xc-description-short": "Configuration parameter for source mask.", "x-f5xc-constraints": { "constraintType": "number", "category": "discovery", "minimum": 0, "maximum": 600000, "deterministic": true, "metadata": { "source": "api-probed", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for schemaSourceDestinationAddressType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemaSourceDestinationAddressType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "schemaTMMImmediateActionOnServiceDownType": { "type": "object", "description": "Specifies the immediate action the BIG-IP system should respond with upon the receipt of the initial client's SYN packet, if the availability status of the virtual server is Offline or Unavailable. This is supported for the virtual server of Standard type and TCP protocol. The default is None.\nNone: Specifies that the system takes no immediate action if the virtual server is reported Offline or Unavailable.\nReset: Specifies that the system resets the connections when the virtual server is reported Offline or Unavailable.\nDrop: Specifies that the system drops the connections when the virtual server is reported Offline or Unavailable.", "title": "Immediate Action On Service Down", "x-displayname": "Immediate Action On Service Down.", "x-ves-oneof-field-immediate_action_on_service_down_choice": "[\"immediate_action_on_service_down_drop\",\"immediate_action_on_service_down_none\",\"immediate_action_on_service_down_reset\"]", "x-ves-proto-message": "ves.io.schema.TMMImmediateActionOnServiceDownType", "properties": { "immediate_action_on_service_down_drop": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "immediate_action_on_service_down_none", "immediate_action_on_service_down_reset" ] }, "immediate_action_on_service_down_none": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "immediate_action_on_service_down_drop", "immediate_action_on_service_down_reset" ] }, "immediate_action_on_service_down_reset": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "immediate_action_on_service_down_drop", "immediate_action_on_service_down_none" ] } }, "x-f5xc-description-short": "Specifies the immediate action the BIG-IP system should respond with upon the receipt of the initial client's SYN packet, if the availability...", "x-f5xc-description-medium": "Specifies the immediate action the BIG-IP system should respond with upon the receipt of the initial client's SYN packet, if the availability status of the virtual server is Offline or Unavailable. This is supported for the virtual server of Standard type and TCP protocol. The default is None.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for schemaTMMImmediateActionOnServiceDownType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemaTMMImmediateActionOnServiceDownType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "schemaTMMStateType": { "type": "object", "description": "Displays the current state on the object.", "title": "State", "x-displayname": "State", "x-ves-oneof-field-state_choice": "[\"state_disabled\",\"state_enabled\"]", "x-ves-proto-message": "ves.io.schema.TMMStateType", "properties": { "state_disabled": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "state_enabled" ] }, "state_enabled": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "state_disabled" ] } }, "x-f5xc-description-short": "Displays the current state on the object.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for schemaTMMStateType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemaTMMStateType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "schemaTMMVirtualServerAddressTranslationType": { "type": "object", "description": "Specifies, when checked (enabled), that the system translates the address of the virtual server. When cleared (disabled), specifies that the system uses the address without translation. This option is useful when the system is load balancing devices that have the same IP address. The default is enabled.", "title": "Address Translation", "x-displayname": "Address Translation.", "x-ves-oneof-field-address_translation_choice": "[\"address_translation_disable\",\"address_translation_enable\"]", "x-ves-proto-message": "ves.io.schema.TMMVirtualServerAddressTranslationType", "properties": { "address_translation_disable": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "address_translation_enable" ] }, "address_translation_enable": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "address_translation_disable" ] } }, "x-f5xc-description-short": "Specifies, when checked (enabled), that the system translates the address of the virtual server.", "x-f5xc-description-medium": "Specifies, when checked (enabled), that the system translates the address of the virtual server. When cleared (disabled), specifies that the system uses the address without translation. This option is useful when the system is load balancing devices that have the same IP address.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for schemaTMMVirtualServerAddressTranslationType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemaTMMVirtualServerAddressTranslationType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "schemaTMMVirtualServerAutoLastHopType": { "type": "object", "description": "When enabled, allows the system to send return traffic to the MAC address that transmitted the request, even if the routing table points to a different network or interface. As a result, the system can send return traffic to clients even when there is no matching route. For example, if the system does not have a default route configured and the client is located on a remote network. This setting is also useful when the system is load balancing transparent devices that do not modify the source IP address of the packet. Without the last hop option enabled, the system could return connections to a different transparent node, resulting in asymmetric routing. You can configure this setting globally and on an object level. You set the global Auto Last Hop value on the System :: Configuration :: Local Traffic :: General screen. To configure this setting globally, retain the Default setting. When you configure Auto Last Hop with a value other than Default at the object level, its setting takes precedence over the global setting. This enables you to configure auto last hop on a per-virtual server basis. The default is Default, meaning that the system uses the global auto-lasthop setting to send back the request.", "title": "Auto Last Hop", "x-displayname": "Auto Last Hop.", "x-ves-oneof-field-auto_last_hop_choice": "[\"auto_last_hop_default\",\"auto_last_hop_disable\",\"auto_last_hop_enable\"]", "x-ves-proto-message": "ves.io.schema.TMMVirtualServerAutoLastHopType", "properties": { "auto_last_hop_default": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-description-short": "Configuration parameter for auto last hop default.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "auto_last_hop_disable", "auto_last_hop_enable" ] }, "auto_last_hop_disable": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-description-short": "Configuration parameter for auto last hop disable.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "auto_last_hop_default", "auto_last_hop_enable" ] }, "auto_last_hop_enable": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-description-short": "Configuration parameter for auto last hop enable.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "auto_last_hop_default", "auto_last_hop_disable" ] } }, "x-f5xc-description-short": "When enabled, allows the system to send return traffic to the MAC address that transmitted the request, even if the routing table points to a...", "x-f5xc-description-medium": "When enabled, allows the system to send return traffic to the MAC address that transmitted the request, even if the routing table points to a different network or interface. As a result, the system can send return traffic to clients even when there is no matching route. For example, if the...", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for schemaTMMVirtualServerAutoLastHopType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemaTMMVirtualServerAutoLastHopType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "schemaTMMVirtualServerConnectionRateLimitMode": { "type": "object", "title": "Connection Rate Limit Mode", "x-displayname": "Connection Rate Limit Mode.", "x-ves-oneof-field-connection_rate_limit_mode_choice": "[\"per_destination_address\",\"per_source_address\",\"per_source_destination_address\",\"per_virtual_server\",\"per_virtual_server_destination_address\",\"per_virtual_server_source_address\",\"per_virtual_server_source_destination_address\"]", "x-ves-proto-message": "ves.io.schema.TMMVirtualServerConnectionRateLimitMode", "properties": { "per_destination_address": { "allOf": [ { "$ref": "#/components/schemas/schemaDestinationAddressType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "per_source_address", "per_source_destination_address", "per_virtual_server", "per_virtual_server_destination_address", "per_virtual_server_source_address", "per_virtual_server_source_destination_address" ] }, "per_source_address": { "allOf": [ { "$ref": "#/components/schemas/schemaSourceAddressType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "per_destination_address", "per_source_destination_address", "per_virtual_server", "per_virtual_server_destination_address", "per_virtual_server_source_address", "per_virtual_server_source_destination_address" ] }, "per_source_destination_address": { "allOf": [ { "$ref": "#/components/schemas/schemaSourceDestinationAddressType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "per_destination_address", "per_source_address", "per_virtual_server", "per_virtual_server_destination_address", "per_virtual_server_source_address", "per_virtual_server_source_destination_address" ] }, "per_virtual_server": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-description-short": "Configuration parameter for per virtual server.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "per_destination_address", "per_source_address", "per_source_destination_address", "per_virtual_server_destination_address", "per_virtual_server_source_address", "per_virtual_server_source_destination_address" ] }, "per_virtual_server_destination_address": { "allOf": [ { "$ref": "#/components/schemas/schemaDestinationAddressType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "per_destination_address", "per_source_address", "per_source_destination_address", "per_virtual_server", "per_virtual_server_source_address", "per_virtual_server_source_destination_address" ] }, "per_virtual_server_source_address": { "allOf": [ { "$ref": "#/components/schemas/schemaSourceAddressType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "per_destination_address", "per_source_address", "per_source_destination_address", "per_virtual_server", "per_virtual_server_destination_address", "per_virtual_server_source_destination_address" ] }, "per_virtual_server_source_destination_address": { "allOf": [ { "$ref": "#/components/schemas/schemaSourceDestinationAddressType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "per_destination_address", "per_source_address", "per_source_destination_address", "per_virtual_server", "per_virtual_server_destination_address", "per_virtual_server_source_address" ] } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for schemaTMMVirtualServerConnectionRateLimitMode", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemaTMMVirtualServerConnectionRateLimitMode\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "schemaTMMVirtualServerNAT64Type": { "type": "object", "description": "When enabled, allows the system to send return traffic to the MAC address that transmitted the request, even if the routing table points to a different network or interface. As a result, the system can send return traffic to clients even when there is no matching route. For example, if the system does not have a default route configured and the client is located on a remote network. This setting is also useful when the system is load balancing transparent devices that do not modify the source IP address of the packet. Without the last hop option enabled, the system could return connections to a different transparent node, resulting in asymmetric routing. You can configure this setting globally and on an object level. You set the global Auto Last Hop value on the System :: Configuration :: Local Traffic :: General screen. To configure this setting globally, retain the Default setting. When you configure Auto Last Hop with a value other than Default at the object level, its setting takes precedence over the global setting. This enables you to configure auto last hop on a per-virtual server basis. The default is Default, meaning that the system uses the global auto-lasthop setting to send back the request.", "title": "NAT64", "x-displayname": "NAT64", "x-ves-oneof-field-nat64_choice": "[\"nat64_disable\",\"nat64_enable\"]", "x-ves-proto-message": "ves.io.schema.TMMVirtualServerNAT64Type", "properties": { "nat64_disable": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-description-short": "Configuration parameter for nat64 disable.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "nat64_enable" ] }, "nat64_enable": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-description-short": "Configuration parameter for nat64 enable.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "nat64_disable" ] } }, "x-f5xc-description-short": "When enabled, allows the system to send return traffic to the MAC address that transmitted the request, even if the routing table points to a...", "x-f5xc-description-medium": "When enabled, allows the system to send return traffic to the MAC address that transmitted the request, even if the routing table points to a different network or interface. As a result, the system can send return traffic to clients even when there is no matching route. For example, if the...", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for schemaTMMVirtualServerNAT64Type", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemaTMMVirtualServerNAT64Type\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "schemaTMMVirtualServerPortTranslationType": { "type": "object", "description": "Specifies, when checked (enabled), that the system translates the port of the virtual server. When cleared (disabled), specifies that the system uses the port without translation. Turning off port translation for a virtual server is useful if you want to use the virtual server to load balance connections to any service. The default is enabled.", "title": "Port Translation", "x-displayname": "Port Translation.", "x-ves-oneof-field-port_translation_choice": "[\"port_translation_disable\",\"port_translation_enable\"]", "x-ves-proto-message": "ves.io.schema.TMMVirtualServerPortTranslationType", "properties": { "port_translation_disable": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "port_translation_enable" ] }, "port_translation_enable": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "port_translation_disable" ] } }, "x-f5xc-description-short": "Specifies, when checked (enabled), that the system translates the port of the virtual server.", "x-f5xc-description-medium": "Specifies, when checked (enabled), that the system translates the port of the virtual server. When cleared (disabled), specifies that the system uses the port without translation. Turning off port translation for a virtual server is useful if you want to use the virtual server to load balance...", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for schemaTMMVirtualServerPortTranslationType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemaTMMVirtualServerPortTranslationType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "schemaTMMVirtualServerSourcePortType": { "type": "object", "description": "Specifies whether the system preserves the source port of the connection. The default is Preserve.", "title": "Source Port", "x-displayname": "Source Port.", "x-ves-oneof-field-source_port_choice": "[\"source_port_change\",\"source_port_preserve\",\"source_port_preserve_strict\"]", "x-ves-proto-message": "ves.io.schema.TMMVirtualServerSourcePortType", "properties": { "source_port_change": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "source_port_preserve", "source_port_preserve_strict" ] }, "source_port_preserve": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "source_port_change", "source_port_preserve_strict" ] }, "source_port_preserve_strict": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "source_port_change", "source_port_preserve" ] } }, "x-f5xc-description-short": "Specifies whether the system preserves the source port of the connection. The default is Preserve.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for schemaTMMVirtualServerSourcePortType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemaTMMVirtualServerSourcePortType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "bigip_http_proxyAdvancedProfile": { "type": "object", "description": "This defines various advanced Profile OPTIONS for a Loadbalancer.", "title": "Advanced Profile", "x-displayname": "Advanced Profile.", "x-ves-displayorder": "1", "x-ves-oneof-field-choice": "[\"disable\",\"enable_default_profile\"]", "x-ves-proto-message": "ves.io.schema.views.bigip_http_proxy.AdvancedProfile", "properties": { "disable": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "enable_default_profile" ] }, "enable_default_profile": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-description-short": "Configuration parameter for enable default profile.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "disable" ] } }, "x-f5xc-description-short": "Defines various advanced Profile OPTIONS for a Loadbalancer.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for bigip_http_proxyAdvancedProfile", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for bigip_http_proxyAdvancedProfile\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bigip", "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" } } }, "bigip_http_proxyBigIPHTTPDeploymentStatus": { "type": "string", "description": "Deployment Status of BIG-IP HTTP Proxy\n\nBIG-IP HTTP Proxy is successfully deployed and active\nDeployment of BIG-IP HTTP Proxy is pending\nBIG-IP HTTP Proxy has been disabled.\nBIG-IP HTTP Proxy deployment encountered an error.", "title": "BIG-IP HTTP Proxy Deployment Status", "enum": [ "BigIP_HTTP_PROXY_CONFIG_ACTIVE", "BigIP_HTTP_PROXY_CONFIG_PENDING", "BigIP_HTTP_PROXY_CONFIG_DISABLED", "BigIP_HTTP_PROXY_CONFIG_FAILED" ], "default": "BigIP_HTTP_PROXY_CONFIG_ACTIVE", "x-displayname": "BIG-IP HTTP Proxy Deployment Status.", "x-ves-proto-enum": "ves.io.schema.views.bigip_http_proxy.BigIPHTTPDeploymentStatus", "x-f5xc-description-short": "Deployment Status of BIG-IP HTTP Proxy BIG-IP HTTP Proxy is successfully deployed and active Deployment of BIG-IP HTTP Proxy is pending BIG-IP...", "x-f5xc-description-medium": "Deployment Status of BIG-IP HTTP Proxy BIG-IP HTTP Proxy is successfully deployed and active Deployment of BIG-IP HTTP Proxy is pending BIG-IP HTTP Proxy has been disabled. BIG-IP HTTP Proxy deployment encountered an error.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for bigip_http_proxyBigIPHTTPDeploymentStatus", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for bigip_http_proxyBigIPHTTPDeploymentStatus\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bigip", "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" } } }, "bigip_http_proxyBigIPHTTPStatus": { "type": "object", "description": "Status BIG-IP HTTP Proxy.", "title": "BIG-IP HTTP Proxy Status", "x-displayname": "BIG-IP HTTP Proxy Status.", "x-ves-proto-message": "ves.io.schema.views.bigip_http_proxy.BigIPHTTPStatus", "properties": { "deployment_status": { "allOf": [ { "$ref": "#/components/schemas/bigip_http_proxyBigIPHTTPDeploymentStatus" } ], "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 bigip_http_proxyBigIPHTTPStatus", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for bigip_http_proxyBigIPHTTPStatus\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bigip", "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" } } }, "bigip_http_proxyCreateRequest": { "type": "object", "description": "This is the input message of the 'Create' RPC.", "title": "CreateRequest is used to create an instance of bigip_http_proxy", "x-displayname": "Create Request.", "x-ves-proto-message": "ves.io.schema.views.bigip_http_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/viewsbigip_http_proxyCreateSpecType" } ], "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 bigip_http_proxyCreateRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for bigip_http_proxyCreateRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bigip", "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" } } }, "bigip_http_proxyCreateResponse": { "type": "object", "x-ves-proto-message": "ves.io.schema.views.bigip_http_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/viewsbigip_http_proxyGetSpecType" } ], "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 bigip_http_proxyCreateResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for bigip_http_proxyCreateResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bigip", "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" } } }, "bigip_http_proxyDeleteRequest": { "type": "object", "description": "This is the input message of the 'DELETE' RPC.", "title": "DeleteRequest is used to delete a bigip_http_proxy", "x-displayname": "DELETE Request.", "x-ves-proto-message": "ves.io.schema.views.bigip_http_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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for bigip_http_proxyDeleteRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for bigip_http_proxyDeleteRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bigip", "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" } } }, "bigip_http_proxyGetResponse": { "type": "object", "description": "This is the output message of the 'GET' RPC.", "title": "GetResponse is the shape of a read bigip_http_proxy", "x-displayname": "GET Response.", "x-ves-proto-message": "ves.io.schema.views.bigip_http_proxy.GetResponse", "properties": { "create_form": { "allOf": [ { "$ref": "#/components/schemas/bigip_http_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/bigip_http_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/viewsbigip_http_proxyGetSpecType" } ], "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/bigip_http_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-08-20T09:12:47+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 bigip_http_proxyGetResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for bigip_http_proxyGetResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bigip", "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" } } }, "bigip_http_proxyHTTPLoadBalancerType": { "type": "object", "description": "HTTP/HTTPS Load balancer.", "title": "HTTP/HTTPS Load balancer", "x-displayname": "HTTP/HTTPS Load Balancer.", "x-ves-oneof-field-loadbalancer_type": "[\"http\",\"https\",\"https_auto_cert\"]", "x-ves-proto-message": "ves.io.schema.views.bigip_http_proxy.HTTPLoadBalancerType", "properties": { "domains": { "type": "array", "description": "A list of domains (host/authority header) that will be matched to loadbalancer.\nWildcard hosts are supported in the suffix or prefix form\n\nDomain search order:\n1. Exact domain names: ``www.example.com``.\n2. Prefix domain wildcards: ``*.example.com`` or ``*-bar.example.com``.\n3. Special wildcard ``*`` matching any domain.\n\nWildcard will not match empty string.\nE.g. ``*-bar.example.com`` will match ``baz-bar.example.com`` but not ``-bar.example.com``.\nThe longest wildcards match first.\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 done by VER.", "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 (host/authority header) that will be matched to loadbalancer.", "x-f5xc-description-medium": "List of domains (host/authority header) that will be matched to loadbalancer. Wildcard hosts are supported in the suffix or prefix form Domain search order: 1. Exact domain names: ``.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "minItems": 1, "maxItems": 32, "uniqueItems": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" }, "deterministic": true }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "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" ] }, "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" ] } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for bigip_http_proxyHTTPLoadBalancerType", "required_fields": [ "domains" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for bigip_http_proxyHTTPLoadBalancerType\nmetadata:\n name: example\n namespace: default\nspec:\n domains: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"domains\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "bigip", "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" } } }, "bigip_http_proxyHealthCheckType": { "type": "object", "description": "Server Health Check.", "title": "Server Health Check", "x-displayname": "Server Health Check.", "x-ves-oneof-field-choice": "[\"icmp_health_check\",\"tcp_health_check\"]", "x-ves-proto-message": "ves.io.schema.views.bigip_http_proxy.HealthCheckType", "properties": { "icmp_health_check": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-description-short": "Configuration parameter for icmp health check.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "tcp_health_check" ] }, "tcp_health_check": { "allOf": [ { "$ref": "#/components/schemas/healthcheckDnsProxyTcpHealthCheck" } ], "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": [ "icmp_health_check" ] } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for bigip_http_proxyHealthCheckType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for bigip_http_proxyHealthCheckType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "virtual", "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" } } }, "bigip_http_proxyHealthChecks": { "type": "object", "description": "Origin Server Health Checks.", "title": "Origin Server Health Checks", "x-displayname": "Health Checks.", "x-ves-proto-message": "ves.io.schema.views.bigip_http_proxy.HealthChecks", "properties": { "health_check": { "type": "array", "description": "List of Health Checks.", "title": "List of Health Checks", "maxItems": 3, "items": { "$ref": "#/components/schemas/bigip_http_proxyHealthCheckType" }, "x-displayname": "List of Health Checks.", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.repeated.max_items": "3", "ves.io.schema.rules.repeated.min_items": "0", "ves.io.schema.rules.repeated.unique": "true" }, "x-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.repeated.max_items": "3", "ves.io.schema.rules.repeated.min_items": "0", "ves.io.schema.rules.repeated.unique": "true" }, "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 3, "minItems": 0, "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "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.", "title": "Healthy Threshold", "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": "discovery", "minimum": 1, "maximum": 16, "deterministic": true, "metadata": { "source": "api-probed", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "interval": { "type": "integer", "description": "Time interval in seconds between two health check requests.", "title": "Interval", "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 health check requests.", "x-f5xc-constraints": { "constraintType": "number", "category": "discovery", "minimum": 1, "maximum": 600, "multipleOf": 1, "metadata": { "source": "api-probed", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" }, "deterministic": true }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "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.", "title": "Timeout", "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": "discovery", "minimum": 1, "maximum": 600, "multipleOf": 1, "metadata": { "source": "api-probed", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" }, "deterministic": true }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "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 check if a host responds with 503\nthis threshold is ignored and the host is considered unhealthy immediately.", "title": "Unhealthy Threshold", "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 check if a host responds with 503 this threshold is ignored and the host is considered unhealthy immediately.", "x-f5xc-constraints": { "constraintType": "number", "category": "discovery", "minimum": 1, "maximum": 16, "deterministic": true, "metadata": { "source": "api-probed", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for bigip_http_proxyHealthChecks", "required_fields": [ "health_check", "healthy_threshold", "interval", "timeout", "unhealthy_threshold" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for bigip_http_proxyHealthChecks\nmetadata:\n name: example\n namespace: default\nspec:\n health_check: value\n healthy_threshold: value\n interval: value\n timeout: value\n unhealthy_threshold: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"health_check\": \"value\",\n \"healthy_threshold\": \"value\",\n \"interval\": \"value\",\n \"timeout\": \"value\",\n \"unhealthy_threshold\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "virtual", "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" } } }, "bigip_http_proxyIRulesConfiguration": { "type": "object", "description": "IRules Configuration for downstream connections.", "title": "iRules Configuration", "x-displayname": "IRules Configuration.", "x-ves-proto-message": "ves.io.schema.views.bigip_http_proxy.IRulesConfiguration", "properties": { "irules": { "type": "array", "description": "OPTIONS for attaching iRules to BIG-IP HTTP Proxy.", "title": "iRules", "maxItems": 16, "items": { "$ref": "#/components/schemas/schemaviewsObjectRefType" }, "x-displayname": "IRules", "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": "OPTIONS for attaching iRules to BIG-IP HTTP Proxy.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 16, "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "IRules Configuration for downstream connections.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for bigip_http_proxyIRulesConfiguration", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for bigip_http_proxyIRulesConfiguration\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bigip", "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" } } }, "bigip_http_proxyLBAlgorithmType": { "type": "object", "description": "Load Balancing Algorithm Type.", "title": "Load Balancing Algorithm Type", "x-displayname": "Load Balancing Algorithm Type.", "x-ves-oneof-field-lb_algorithm_choice": "[\"round_robin\"]", "x-ves-proto-message": "ves.io.schema.views.bigip_http_proxy.LBAlgorithmType", "properties": { "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 } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for bigip_http_proxyLBAlgorithmType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for bigip_http_proxyLBAlgorithmType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bigip", "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" } } }, "bigip_http_proxyListResponse": { "type": "object", "description": "This is the output message of 'List' RPC.", "title": "ListResponse is the collection of bigip_http_proxy", "x-displayname": "List Response.", "x-ves-proto-message": "ves.io.schema.views.bigip_http_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/bigip_http_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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for bigip_http_proxyListResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for bigip_http_proxyListResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bigip", "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" } } }, "bigip_http_proxyListResponseItem": { "type": "object", "description": "By default a summary of bigip_http_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 bigip_http_proxy", "x-displayname": "List Item", "x-ves-proto-message": "ves.io.schema.views.bigip_http_proxy.ListResponseItem", "properties": { "annotations": { "type": "object", "description": "The set of annotations present on this bigip_http_proxy.", "title": "annotations", "x-displayname": "Annotations.", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "The set of annotations present on this bigip_http_proxy.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "description": { "type": "string", "description": "The description set for this bigip_http_proxy.", "title": "description", "x-displayname": "Description.", "x-f5xc-description-short": "The description set for this bigip_http_proxy.", "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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "disabled": { "type": "boolean", "description": "A value of true indicates bigip_http_proxy is administratively disabled.", "title": "disabled", "format": "boolean", "x-displayname": "Disabled", "x-f5xc-example": "True", "x-f5xc-description-short": "Value of true indicates bigip_http_proxy is administratively disabled.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "get_spec": { "allOf": [ { "$ref": "#/components/schemas/viewsbigip_http_proxyGetSpecType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "labels": { "type": "object", "description": "The set of labels present on this bigip_http_proxy.", "title": "labels", "x-displayname": "Labels", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "The set of labels present on this bigip_http_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 bigip_http_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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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/bigip_http_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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "uid": { "type": "string", "description": "The unique uid of this bigip_http_proxy.", "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 bigip_http_proxy.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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-08-20T09:12:47+00:00" } }, "x-f5xc-description-short": "By default a summary of bigip_http_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 bigip_http_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 bigip_http_proxyListResponseItem", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for bigip_http_proxyListResponseItem\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bigip", "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" } } }, "bigip_http_proxyOriginPoolList": { "type": "object", "description": "List of Origin Pools.", "title": "Origin Pool List", "x-displayname": "Origin Pool List.", "x-ves-proto-message": "ves.io.schema.views.bigip_http_proxy.OriginPoolList", "properties": { "pools": { "type": "array", "description": "List of Origin Pools.", "title": "Pools", "maxItems": 8, "items": { "$ref": "#/components/schemas/viewsbigip_http_proxyOriginPoolWithWeight" }, "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-08-20T09:12:47+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 bigip_http_proxyOriginPoolList", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for bigip_http_proxyOriginPoolList\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bigip", "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" } } }, "bigip_http_proxyOriginServers": { "type": "object", "description": "List of origin Servers for the BIG-IP HTTP Proxy.", "title": "Origin Servers", "x-displayname": "Origin Servers.", "x-ves-oneof-field-port_choice": "[\"automatic_port\",\"lb_port\",\"port\"]", "x-ves-proto-message": "ves.io.schema.views.bigip_http_proxy.OriginServers", "properties": { "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" ] }, "health_checks": { "allOf": [ { "$ref": "#/components/schemas/bigip_http_proxyHealthChecks" } ], "x-f5xc-description-short": "Configuration parameter for health checks.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "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" ] }, "origin_servers": { "type": "array", "description": "List of origin servers for Proxy.", "title": "List of Origin Servers", "minItems": 1, "maxItems": 8, "items": { "$ref": "#/components/schemas/viewsbigip_http_proxyOriginServerType" }, "x-displayname": "List of Origin Servers.", "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-constraints": { "constraintType": "array", "category": "discovery", "minItems": 1, "maxItems": 8, "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "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-08-20T09:12:47+00:00" }, "deterministic": true }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "automatic_port", "lb_port" ] } }, "x-f5xc-description-short": "List of origin Servers for the BIG-IP HTTP Proxy.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for bigip_http_proxyOriginServers", "required_fields": [ "origin_servers" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for bigip_http_proxyOriginServers\nmetadata:\n name: example\n namespace: default\nspec:\n origin_servers: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"origin_servers\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "bigip", "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" } } }, "bigip_http_proxyProxyAdvertisementType": { "type": "object", "description": "Proxy Advertisement Type.", "title": "Proxy Advertisement Type", "x-displayname": "Proxy Advertisement Type.", "x-ves-oneof-field-advertise_choice": "[\"advertise_custom\",\"do_not_advertise\"]", "x-ves-proto-message": "ves.io.schema.views.bigip_http_proxy.ProxyAdvertisementType", "properties": { "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": [ "do_not_advertise" ] }, "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" ] } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for bigip_http_proxyProxyAdvertisementType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for bigip_http_proxyProxyAdvertisementType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bigip", "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" } } }, "bigip_http_proxyReplaceRequest": { "type": "object", "description": "This is the input message of the 'Replace' RPC.", "title": "ReplaceRequest is used to replace contents of a bigip_http_proxy", "x-displayname": "Replace Request.", "x-ves-proto-message": "ves.io.schema.views.bigip_http_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/viewsbigip_http_proxyReplaceSpecType" } ], "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 bigip_http_proxyReplaceRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for bigip_http_proxyReplaceRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bigip", "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" } } }, "bigip_http_proxyReplaceResponse": { "type": "object", "x-ves-proto-message": "ves.io.schema.views.bigip_http_proxy.ReplaceResponse", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for bigip_http_proxyReplaceResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for bigip_http_proxyReplaceResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bigip", "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" } } }, "bigip_http_proxyStatusObject": { "type": "object", "description": "Most recently observed status of object.", "title": "Status of BIG-IP HTTP Proxy", "x-displayname": "Status", "x-ves-proto-message": "ves.io.schema.views.bigip_http_proxy.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/bigip_http_proxyBigIPHTTPStatus" } ], "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 bigip_http_proxyStatusObject", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for bigip_http_proxyStatusObject\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bigip", "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" } } }, "healthcheckDnsProxyTcpHealthCheck": { "type": "object", "description": "Monitor reports healthy status if UDP connection is successful and response payload matches expected response pattern.", "title": "DnsProxyTcpHealthCheck", "x-displayname": "TCP Health Check.", "x-ves-proto-message": "ves.io.schema.healthcheck.DnsProxyTcpHealthCheck", "properties": { "expected_response": { "type": "string", "description": "Specifies a regular expression pattern which will be matched against response payload.", "title": "expected response", "maxLength": 2048, "x-displayname": "Expected Response pattern.", "x-ves-example": ".*", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.string.max_len": "2048" }, "x-f5xc-example": ".*", "x-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.string.max_len": "2048" }, "x-f5xc-description-short": "Specifies a regular expression pattern which will be matched against response payload.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 2048, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "send_payload": { "type": "string", "description": "Text string sent in the request.", "title": "send string", "maxLength": 2048, "x-displayname": "Send string.", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.string.max_len": "2048" }, "x-f5xc-example": "\"\"", "x-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.string.max_len": "2048" }, "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 2048, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } } }, "x-f5xc-description-short": "Monitor reports healthy status if UDP connection is successful and response payload matches expected response pattern.", "x-f5xc-description-medium": "Monitor reports healthy status if UDP connection is successful and response payload matches expected response pattern.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for healthcheckDnsProxyTcpHealthCheck", "required_fields": [ "expected_response", "send_payload" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for healthcheckDnsProxyTcpHealthCheck\nmetadata:\n name: example\n namespace: default\nspec:\n expected_response: value\n send_payload: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"expected_response\": \"value\",\n \"send_payload\": \"value\"\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_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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for http_loadbalancerProxyTypeHttp\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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_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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for http_loadbalancerProxyTypeHttps\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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_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 } }, "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-08-20T09:12:47+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-08-20T09:12:47+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 } }, "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" ] }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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 } }, "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_yaml": "# Minimal example for http_loadbalancerProxyTypeHttpsAutoCerts\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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_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 } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for origin_poolOriginServerK8SService\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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_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-08-20T09:12:47+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_yaml": "# Minimal example for origin_poolOriginServerPrivateIP\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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_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-08-20T09:12:47+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_yaml": "# Minimal example for origin_poolOriginServerPublicIP\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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_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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for origin_poolOriginServerPublicName\nmetadata:\n name: example\n namespace: default\nspec:\n dns_name: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"dns_name\": \"value\"\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_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_yaml": "# Minimal example for origin_poolProtocolType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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_yaml": "# Minimal example for schemaHashAlgorithm\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for schemaHashAlgorithms\nmetadata:\n name: example\n namespace: default\nspec:\n hash_algorithms: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"hash_algorithms\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "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_yaml": "# Minimal example for schemaHeaderTransformationType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "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_yaml": "# Minimal example for schemaTLSCoalescingOptions\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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": "[REDACTED_PRIVATE_KEY]", "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_yaml": "# Minimal example for schemaTlsCertificateType\nmetadata:\n name: example\n namespace: default\nspec:\n certificate_url: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"certificate_url\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "certificates", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "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_yaml": "# Minimal example for schemaTlsProtocol\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "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_yaml": "# Minimal example for schemaXfccElement\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "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-08-20T09:12:47+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_yaml": "# Minimal example for schemaviewsDownstreamTlsParamsType\nmetadata:\n name: example\n namespace: default\nspec:\n tls_certificates: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"tls_certificates\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "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_yaml": "# Minimal example for schemavirtual_hostHttp1ProtocolOptions\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for viewsAdvertiseCustom\nmetadata:\n name: example\n namespace: default\nspec:\n advertise_where: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"advertise_where\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "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_yaml": "# Minimal example for viewsAdvertisePublic\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "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-08-20T09:12:47+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 } }, "min_version": { "allOf": [ { "$ref": "#/components/schemas/schemaTlsProtocol" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "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_yaml": "# Minimal example for viewsCustomCiphers\nmetadata:\n name: example\n namespace: default\nspec:\n cipher_suites: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"cipher_suites\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for viewsDownstreamTLSCertsParams\nmetadata:\n name: example\n namespace: default\nspec:\n certificates: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"certificates\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for viewsDownstreamTlsValidationContext\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for viewsPrefixStringListType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "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_yaml": "# Minimal example for viewsSiteLocator\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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_yaml": "# Minimal example for viewsSiteNetwork\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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_yaml": "# Minimal example for viewsSiteNetworkSpecifiedVIP\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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_yaml": "# Minimal example for viewsSnatPoolConfiguration\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "certificates", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "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_yaml": "# Minimal example for viewsTlsConfig\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "certificates", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for viewsWhereSite\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for viewsWhereType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "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_yaml": "# Minimal example for viewsWhereVK8SService\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for viewsWhereVirtualNetwork\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "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_yaml": "# Minimal example for viewsWhereVirtualSite\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for viewsWhereVirtualSiteSpecifiedVIP\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "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_yaml": "# Minimal example for viewsXfccHeaderKeys\nmetadata:\n name: example\n namespace: default\nspec:\n xfcc_header_elements: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"xfcc_header_elements\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "viewsbigip_http_proxyCreateSpecType": { "type": "object", "description": "Create BIG-IP HTTP Proxy in a given namespace. If one already exists, it will give an error.", "title": "Create BigIP HTTP Proxy", "x-displayname": "Create BIG-IP HTTP Proxy.", "x-ves-proto-message": "ves.io.schema.views.bigip_http_proxy.CreateSpecType", "properties": { "advanced_profile": { "allOf": [ { "$ref": "#/components/schemas/bigip_http_proxyAdvancedProfile" } ], "x-f5xc-description-short": "Configuration parameter for advanced profile.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "ddos_profile": { "allOf": [ { "$ref": "#/components/schemas/application_profilesDDoSProfile" } ], "x-f5xc-description-short": "Configuration parameter for ddos profile.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "irules": { "allOf": [ { "$ref": "#/components/schemas/bigip_http_proxyIRulesConfiguration" } ], "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "lb_algorithm": { "allOf": [ { "$ref": "#/components/schemas/bigip_http_proxyLBAlgorithmType" } ], "x-f5xc-description-short": "Configuration parameter for lb algorithm.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "origin_pools": { "allOf": [ { "$ref": "#/components/schemas/bigip_http_proxyOriginPoolList" } ], "x-f5xc-description-short": "Configuration parameter for origin pools.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "proxy_advertisement": { "allOf": [ { "$ref": "#/components/schemas/bigip_http_proxyProxyAdvertisementType" } ], "x-f5xc-description-short": "Configuration parameter for proxy advertisement.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "proxy_config": { "allOf": [ { "$ref": "#/components/schemas/bigip_http_proxyHTTPLoadBalancerType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Create BIG-IP HTTP Proxy in a given namespace. If one already exists, it will give an error.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for viewsbigip_http_proxyCreateSpecType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for viewsbigip_http_proxyCreateSpecType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bigip", "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" } } }, "viewsbigip_http_proxyGetSpecType": { "type": "object", "description": "GET BIG-IP HTTP Proxy details.", "title": "Get BigIP HTTP Proxy", "x-displayname": "GET BIG-IP HTTP Proxy.", "x-ves-proto-message": "ves.io.schema.views.bigip_http_proxy.GetSpecType", "properties": { "advanced_profile": { "allOf": [ { "$ref": "#/components/schemas/bigip_http_proxyAdvancedProfile" } ], "x-f5xc-description-short": "Configuration parameter for advanced profile.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "ddos_profile": { "allOf": [ { "$ref": "#/components/schemas/application_profilesDDoSProfile" } ], "x-f5xc-description-short": "Configuration parameter for ddos profile.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "irules": { "allOf": [ { "$ref": "#/components/schemas/bigip_http_proxyIRulesConfiguration" } ], "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "lb_algorithm": { "allOf": [ { "$ref": "#/components/schemas/bigip_http_proxyLBAlgorithmType" } ], "x-f5xc-description-short": "Configuration parameter for lb algorithm.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "origin_pools": { "allOf": [ { "$ref": "#/components/schemas/bigip_http_proxyOriginPoolList" } ], "x-f5xc-description-short": "Configuration parameter for origin pools.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "proxy_advertisement": { "allOf": [ { "$ref": "#/components/schemas/bigip_http_proxyProxyAdvertisementType" } ], "x-f5xc-description-short": "Configuration parameter for proxy advertisement.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "proxy_config": { "allOf": [ { "$ref": "#/components/schemas/bigip_http_proxyHTTPLoadBalancerType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for viewsbigip_http_proxyGetSpecType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for viewsbigip_http_proxyGetSpecType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bigip", "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" } } }, "viewsbigip_http_proxyOriginPoolWithWeight": { "type": "object", "description": "This defines a combination of origin pool with weight and priority.", "title": "Origin Pool With Weight", "x-displayname": "Origin Pool with Weight.", "x-ves-proto-message": "ves.io.schema.views.bigip_http_proxy.OriginPoolWithWeight", "properties": { "name": { "type": "string", "description": "Name of the origin pool.", "title": "Name", "x-displayname": "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-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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" }, "origin_servers": { "allOf": [ { "$ref": "#/components/schemas/bigip_http_proxyOriginServers" } ], "x-f5xc-description-short": "Configuration parameter for origin servers.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "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.\nWhen active origin pool is not available, lower priority origin pools\nare made 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. Value of 0 will make the pool as lowest priority origin pool.", "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. When active origin pool is not available, lower priority origin pools are made active as per the increasing priority.", "x-f5xc-constraints": { "constraintType": "number", "category": "discovery", "minimum": 0, "maximum": 32, "multipleOf": 1, "metadata": { "source": "api-probed", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+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 pools. Value of 0 will disable\nthe 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 pools. Value of 0 will disable the pool.", "x-f5xc-description-medium": "Weight of this origin pool, valid only with multiple origin pools. 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-08-20T09:12:47+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 viewsbigip_http_proxyOriginPoolWithWeight", "required_fields": [ "name" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for viewsbigip_http_proxyOriginPoolWithWeight\nmetadata:\n name: example\n namespace: default\nspec:\n name: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"name\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "bigip", "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" } } }, "viewsbigip_http_proxyOriginServerType": { "type": "object", "description": "Origin Server.", "title": "Origin Server", "x-displayname": "Origin Server.", "x-ves-oneof-field-choice": "[\"k8s_service\",\"private_ip\",\"public_ip\",\"public_name\"]", "x-ves-proto-message": "ves.io.schema.views.bigip_http_proxy.OriginServerType", "properties": { "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": [ "private_ip", "public_ip", "public_name" ] }, "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": [ "k8s_service", "public_ip", "public_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": [ "k8s_service", "private_ip", "public_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": [ "k8s_service", "private_ip", "public_ip" ] } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for viewsbigip_http_proxyOriginServerType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for viewsbigip_http_proxyOriginServerType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bigip", "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" } } }, "viewsbigip_http_proxyReplaceSpecType": { "type": "object", "description": "Replace BIG-IP HTTP Proxy in a given namespace.", "title": "Replace BigIP HTTP Proxy", "x-displayname": "Replace BIG-IP HTTP Proxy.", "x-ves-proto-message": "ves.io.schema.views.bigip_http_proxy.ReplaceSpecType", "properties": { "advanced_profile": { "allOf": [ { "$ref": "#/components/schemas/bigip_http_proxyAdvancedProfile" } ], "x-f5xc-description-short": "Configuration parameter for advanced profile.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "ddos_profile": { "allOf": [ { "$ref": "#/components/schemas/application_profilesDDoSProfile" } ], "x-f5xc-description-short": "Configuration parameter for ddos profile.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "irules": { "allOf": [ { "$ref": "#/components/schemas/bigip_http_proxyIRulesConfiguration" } ], "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "lb_algorithm": { "allOf": [ { "$ref": "#/components/schemas/bigip_http_proxyLBAlgorithmType" } ], "x-f5xc-description-short": "Configuration parameter for lb algorithm.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "origin_pools": { "allOf": [ { "$ref": "#/components/schemas/bigip_http_proxyOriginPoolList" } ], "x-f5xc-description-short": "Configuration parameter for origin pools.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "proxy_advertisement": { "allOf": [ { "$ref": "#/components/schemas/bigip_http_proxyProxyAdvertisementType" } ], "x-f5xc-description-short": "Configuration parameter for proxy advertisement.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "proxy_config": { "allOf": [ { "$ref": "#/components/schemas/bigip_http_proxyHTTPLoadBalancerType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Replace BIG-IP HTTP Proxy in a given namespace.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for viewsbigip_http_proxyReplaceSpecType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for viewsbigip_http_proxyReplaceSpecType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bigip", "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" } } }, "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_yaml": "# Minimal example for virtual_hostHttpProtocolOptions\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "iruleCreateRequest": { "type": "object", "description": "This is the input message of the 'Create' RPC.", "title": "CreateRequest is used to create an instance of irule", "x-displayname": "Create Request.", "x-ves-proto-message": "ves.io.schema.bigcne.irule.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/iruleCreateSpecType" } ], "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 iruleCreateRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for iruleCreateRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bigip", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Canonical create identity pending namespace CRUD verification" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "iruleCreateResponse": { "type": "object", "x-ves-proto-message": "ves.io.schema.bigcne.irule.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/iruleGetSpecType" } ], "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 iruleCreateResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for iruleCreateResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bigip", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Canonical create identity pending namespace CRUD verification" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "iruleCreateSpecType": { "type": "object", "description": "Create iRule in a given namespace. If one already exists it will give an error.", "title": "Create iRule", "x-displayname": "Create iRule.", "x-ves-proto-message": "ves.io.schema.bigcne.irule.CreateSpecType", "properties": { "description": { "type": "string", "description": "Specify Description for iRule.", "maxLength": 256, "x-displayname": "Description for iRule.", "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-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-08-20T09:12:47+00:00" }, "deterministic": true }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false }, "minLength": 21, "x-reconciled-from-discovery": true, "x-reconciled-at": "2026-08-20T09:12:47+00:00" }, "irule": { "type": "string", "description": "www.internal.example.f5.com\")} DNS::drop}\nirule content.", "maxLength": 24576, "x-displayname": "Irule", "x-ves-example": "When HTTP_REQUEST {if { !([HTTP::host] contains \".example.f5.com\") } {reject}}", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.string.max_len": "24576" }, "x-f5xc-example": "\"when HTTP_REQUEST {if { !([HTTP::host] contains \".example.f5.com\") } {reject}}\"", "x-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.string.max_len": "24576" }, "x-f5xc-description-short": "Www.internal.example.f5.com\")} DNS::drop} irule content.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 24576, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } } }, "x-f5xc-description-short": "Create iRule in a given namespace. If one already exists it will give an error.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for iruleCreateSpecType", "required_fields": [ "description", "irule" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for iruleCreateSpecType\nmetadata:\n name: example\n namespace: default\nspec:\n description: value\n irule: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"description\": \"value\",\n \"irule\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "bigip", "x-f5xc-field-examples": { "spec.description": "value", "spec.irule": "value" }, "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Canonical create identity pending namespace CRUD verification" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "iruleDeleteRequest": { "type": "object", "description": "This is the input message of the 'DELETE' RPC.", "title": "DeleteRequest is used to delete a irule", "x-displayname": "DELETE Request.", "x-ves-proto-message": "ves.io.schema.bigcne.irule.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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for iruleDeleteRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for iruleDeleteRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bigip", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Canonical create identity pending namespace CRUD verification" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "iruleGetResponse": { "type": "object", "description": "This is the output message of the 'GET' RPC.", "title": "GetResponse is the shape of a read irule", "x-displayname": "GET Response.", "x-ves-proto-message": "ves.io.schema.bigcne.irule.GetResponse", "properties": { "create_form": { "allOf": [ { "$ref": "#/components/schemas/iruleCreateRequest" } ], "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/iruleReplaceRequest" } ], "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/iruleGetSpecType" } ], "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 iruleGetResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for iruleGetResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bigip", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Canonical create identity pending namespace CRUD verification" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "iruleGetSpecType": { "type": "object", "description": "GET iRule details.", "title": "Get iRule", "x-displayname": "GET iRule", "x-ves-proto-message": "ves.io.schema.bigcne.irule.GetSpecType", "properties": { "description": { "type": "string", "description": "Specify Description for iRule.", "maxLength": 256, "x-displayname": "Description for iRule.", "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-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-08-20T09:12:47+00:00" }, "deterministic": true }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false }, "minLength": 21, "x-reconciled-from-discovery": true, "x-reconciled-at": "2026-08-20T09:12:47+00:00" }, "irule": { "type": "string", "description": "www.internal.example.f5.com\")} DNS::drop}\nirule content.", "maxLength": 24576, "x-displayname": "Irule", "x-ves-example": "When HTTP_REQUEST {if { !([HTTP::host] contains \".example.f5.com\") } {reject}}", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.string.max_len": "24576" }, "x-f5xc-example": "\"when HTTP_REQUEST {if { !([HTTP::host] contains \".example.f5.com\") } {reject}}\"", "x-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.string.max_len": "24576" }, "x-f5xc-description-short": "Www.internal.example.f5.com\")} DNS::drop} irule content.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 24576, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for iruleGetSpecType", "required_fields": [ "description", "irule" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for iruleGetSpecType\nmetadata:\n name: example\n namespace: default\nspec:\n description: value\n irule: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"description\": \"value\",\n \"irule\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "bigip", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Canonical create identity pending namespace CRUD verification" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "iruleListResponse": { "type": "object", "description": "This is the output message of 'List' RPC.", "title": "ListResponse is the collection of irule", "x-displayname": "List Response.", "x-ves-proto-message": "ves.io.schema.bigcne.irule.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/iruleListResponseItem" }, "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for iruleListResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for iruleListResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bigip", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Canonical create identity pending namespace CRUD verification" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "iruleListResponseItem": { "type": "object", "description": "By default a summary of irule 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 irule", "x-displayname": "List Item", "x-ves-proto-message": "ves.io.schema.bigcne.irule.ListResponseItem", "properties": { "annotations": { "type": "object", "description": "The set of annotations present on this irule.", "title": "annotations", "x-displayname": "Annotations.", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "The set of annotations present on this irule.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "description": { "type": "string", "description": "The description set for this irule.", "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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "disabled": { "type": "boolean", "description": "A value of true indicates irule is administratively disabled.", "title": "disabled", "format": "boolean", "x-displayname": "Disabled", "x-f5xc-example": "True", "x-f5xc-description-short": "Value of true indicates irule is administratively disabled.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "get_spec": { "allOf": [ { "$ref": "#/components/schemas/iruleGetSpecType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "labels": { "type": "object", "description": "The set of labels present on this irule.", "title": "labels", "x-displayname": "Labels", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "The set of labels present on this irule.", "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 irule.", "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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" } ] }, "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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "uid": { "type": "string", "description": "The unique uid of this irule.", "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-08-20T09:12:47+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-08-20T09:12:47+00:00" } }, "x-f5xc-description-short": "By default a summary of irule 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 irule 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 iruleListResponseItem", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for iruleListResponseItem\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bigip", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Canonical create identity pending namespace CRUD verification" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "iruleReplaceRequest": { "type": "object", "description": "This is the input message of the 'Replace' RPC.", "title": "ReplaceRequest is used to replace contents of a irule", "x-displayname": "Replace Request.", "x-ves-proto-message": "ves.io.schema.bigcne.irule.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/iruleReplaceSpecType" } ], "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 iruleReplaceRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for iruleReplaceRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bigip", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Canonical create identity pending namespace CRUD verification" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "iruleReplaceResponse": { "type": "object", "x-ves-proto-message": "ves.io.schema.bigcne.irule.ReplaceResponse", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for iruleReplaceResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for iruleReplaceResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bigip", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Canonical create identity pending namespace CRUD verification" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "iruleReplaceSpecType": { "type": "object", "description": "Replace iRule in a given namespace.", "title": "Replace iRule", "x-displayname": "Replace iRule.", "x-ves-proto-message": "ves.io.schema.bigcne.irule.ReplaceSpecType", "properties": { "description": { "type": "string", "description": "Specify Description for iRule.", "maxLength": 256, "x-displayname": "Description for iRule.", "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-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-08-20T09:12:47+00:00" }, "deterministic": true }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false }, "minLength": 21, "x-reconciled-from-discovery": true, "x-reconciled-at": "2026-08-20T09:12:47+00:00" }, "irule": { "type": "string", "description": "www.internal.example.f5.com\")} DNS::drop}\nirule content.", "maxLength": 24576, "x-displayname": "Irule", "x-ves-example": "When HTTP_REQUEST {if { !([HTTP::host] contains \".example.f5.com\") } {reject}}", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.string.max_len": "24576" }, "x-f5xc-example": "\"when HTTP_REQUEST {if { !([HTTP::host] contains \".example.f5.com\") } {reject}}\"", "x-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.string.max_len": "24576" }, "x-f5xc-description-short": "Www.internal.example.f5.com\")} DNS::drop} irule content.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 24576, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for iruleReplaceSpecType", "required_fields": [ "description", "irule" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for iruleReplaceSpecType\nmetadata:\n name: example\n namespace: default\nspec:\n description: value\n irule: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"description\": \"value\",\n \"irule\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "bigip", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Canonical create identity pending namespace CRUD verification" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "bigcnedata_groupCreateSpecType": { "type": "object", "description": "Create data group in a given namespace. If one already exists it will give an error.", "title": "Create Data Group", "x-displayname": "Create Data group.", "x-ves-oneof-field-data_group_type": "[\"address_records\",\"integer_records\",\"string_records\"]", "x-ves-proto-message": "ves.io.schema.bigcne.data_group.CreateSpecType", "properties": { "address_records": { "allOf": [ { "$ref": "#/components/schemas/data_groupAddressRecords" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "integer_records", "string_records" ] }, "integer_records": { "allOf": [ { "$ref": "#/components/schemas/data_groupIntegerRecords" } ], "x-f5xc-description-short": "Configuration parameter for integer records.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "address_records", "string_records" ] }, "string_records": { "allOf": [ { "$ref": "#/components/schemas/data_groupStringRecords" } ], "x-f5xc-description-short": "Configuration parameter for string records.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "address_records", "integer_records" ] } }, "x-f5xc-description-short": "Create data group in a given namespace. If one already exists it will give an error.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for bigcnedata_groupCreateSpecType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for bigcnedata_groupCreateSpecType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bigip", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "bigcnedata_groupGetSpecType": { "type": "object", "description": "GET Data Group details.", "title": "Get Data Group", "x-displayname": "GET Data Group.", "x-ves-oneof-field-data_group_type": "[\"address_records\",\"integer_records\",\"string_records\"]", "x-ves-proto-message": "ves.io.schema.bigcne.data_group.GetSpecType", "properties": { "address_records": { "allOf": [ { "$ref": "#/components/schemas/data_groupAddressRecords" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "integer_records", "string_records" ] }, "integer_records": { "allOf": [ { "$ref": "#/components/schemas/data_groupIntegerRecords" } ], "x-f5xc-description-short": "Configuration parameter for integer records.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "address_records", "string_records" ] }, "string_records": { "allOf": [ { "$ref": "#/components/schemas/data_groupStringRecords" } ], "x-f5xc-description-short": "Configuration parameter for string records.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "address_records", "integer_records" ] } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for bigcnedata_groupGetSpecType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for bigcnedata_groupGetSpecType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bigip", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "bigcnedata_groupReplaceSpecType": { "type": "object", "description": "Replace Data Group in a given namespace.", "title": "Replace Data Group", "x-displayname": "Replace Data Group.", "x-ves-oneof-field-data_group_type": "[\"address_records\",\"integer_records\",\"string_records\"]", "x-ves-proto-message": "ves.io.schema.bigcne.data_group.ReplaceSpecType", "properties": { "address_records": { "allOf": [ { "$ref": "#/components/schemas/data_groupAddressRecords" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "integer_records", "string_records" ] }, "integer_records": { "allOf": [ { "$ref": "#/components/schemas/data_groupIntegerRecords" } ], "x-f5xc-description-short": "Configuration parameter for integer records.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "address_records", "string_records" ] }, "string_records": { "allOf": [ { "$ref": "#/components/schemas/data_groupStringRecords" } ], "x-f5xc-description-short": "Configuration parameter for string records.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "address_records", "integer_records" ] } }, "x-f5xc-description-short": "Replace Data Group in a given namespace.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for bigcnedata_groupReplaceSpecType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for bigcnedata_groupReplaceSpecType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bigip", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "data_groupAddressRecords": { "type": "object", "description": "Data group with address record List.", "title": "Address record List", "x-displayname": "Address Record.", "x-ves-proto-message": "ves.io.schema.bigcne.data_group.AddressRecords", "properties": { "records": { "type": "object", "description": "Configuration parameter for records", "title": "Address records", "x-displayname": "Address records.", "x-ves-validation-rules": { "ves.io.schema.rules.map.keys.string.ip": "true", "ves.io.schema.rules.map.max_pairs": "4096", "ves.io.schema.rules.map.values.string.pattern": "^[0-9a-zA-Z._-]*$" }, "x-validation-rules": { "ves.io.schema.rules.map.keys.string.ip": "true", "ves.io.schema.rules.map.max_pairs": "4096", "ves.io.schema.rules.map.values.string.pattern": "^[0-9a-zA-Z._-]*$" }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for data_groupAddressRecords", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for data_groupAddressRecords\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bigip", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Data groups are reusable across namespaces" }, "classification": { "category": "security", "multi_tenant_pattern": "shared-ref" } } }, "data_groupCreateRequest": { "type": "object", "description": "This is the input message of the 'Create' RPC.", "title": "CreateRequest is used to create an instance of data_group", "x-displayname": "Create Request.", "x-ves-proto-message": "ves.io.schema.bigcne.data_group.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/bigcnedata_groupCreateSpecType" } ], "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 data_groupCreateRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for data_groupCreateRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bigip", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Data groups are reusable across namespaces" }, "classification": { "category": "security", "multi_tenant_pattern": "shared-ref" } } }, "data_groupCreateResponse": { "type": "object", "x-ves-proto-message": "ves.io.schema.bigcne.data_group.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/bigcnedata_groupGetSpecType" } ], "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 data_groupCreateResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for data_groupCreateResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bigip", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Data groups are reusable across namespaces" }, "classification": { "category": "security", "multi_tenant_pattern": "shared-ref" } } }, "data_groupDeleteRequest": { "type": "object", "description": "This is the input message of the 'DELETE' RPC.", "title": "DeleteRequest is used to delete a data_group", "x-displayname": "DELETE Request.", "x-ves-proto-message": "ves.io.schema.bigcne.data_group.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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for data_groupDeleteRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for data_groupDeleteRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bigip", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Data groups are reusable across namespaces" }, "classification": { "category": "security", "multi_tenant_pattern": "shared-ref" } } }, "data_groupGetResponse": { "type": "object", "description": "This is the output message of the 'GET' RPC.", "title": "GetResponse is the shape of a read data_group", "x-displayname": "GET Response.", "x-ves-proto-message": "ves.io.schema.bigcne.data_group.GetResponse", "properties": { "create_form": { "allOf": [ { "$ref": "#/components/schemas/data_groupCreateRequest" } ], "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/data_groupReplaceRequest" } ], "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/bigcnedata_groupGetSpecType" } ], "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 data_groupGetResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for data_groupGetResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bigip", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Data groups are reusable across namespaces" }, "classification": { "category": "security", "multi_tenant_pattern": "shared-ref" } } }, "data_groupIntegerRecords": { "type": "object", "description": "Data group with integer record List.", "title": "Integer record List", "x-displayname": "Integer record List.", "x-ves-proto-message": "ves.io.schema.bigcne.data_group.IntegerRecords", "properties": { "records": { "type": "object", "description": "Configuration parameter for records", "title": "Integer records", "x-displayname": "Integer records.", "x-ves-validation-rules": { "ves.io.schema.rules.map.max_pairs": "4096", "ves.io.schema.rules.map.values.string.pattern": "^[a-zA-Z_][a-zA-Z0-9_]*$" }, "x-validation-rules": { "ves.io.schema.rules.map.max_pairs": "4096", "ves.io.schema.rules.map.values.string.pattern": "^[a-zA-Z_][a-zA-Z0-9_]*$" }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for data_groupIntegerRecords", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for data_groupIntegerRecords\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bigip", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Data groups are reusable across namespaces" }, "classification": { "category": "security", "multi_tenant_pattern": "shared-ref" } } }, "data_groupListResponse": { "type": "object", "description": "This is the output message of 'List' RPC.", "title": "ListResponse is the collection of data_group", "x-displayname": "List Response.", "x-ves-proto-message": "ves.io.schema.bigcne.data_group.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/data_groupListResponseItem" }, "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for data_groupListResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for data_groupListResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bigip", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Data groups are reusable across namespaces" }, "classification": { "category": "security", "multi_tenant_pattern": "shared-ref" } } }, "data_groupListResponseItem": { "type": "object", "description": "By default a summary of data_group 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 data_group", "x-displayname": "List Item", "x-ves-proto-message": "ves.io.schema.bigcne.data_group.ListResponseItem", "properties": { "annotations": { "type": "object", "description": "The set of annotations present on this data_group.", "title": "annotations", "x-displayname": "Annotations.", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "The set of annotations present on this data_group.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "description": { "type": "string", "description": "The description set for this data_group.", "title": "description", "x-displayname": "Description.", "x-f5xc-description-short": "The description set for this data_group.", "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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "disabled": { "type": "boolean", "description": "A value of true indicates data_group is administratively disabled.", "title": "disabled", "format": "boolean", "x-displayname": "Disabled", "x-f5xc-example": "True", "x-f5xc-description-short": "Value of true indicates data_group is administratively disabled.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "get_spec": { "allOf": [ { "$ref": "#/components/schemas/bigcnedata_groupGetSpecType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "labels": { "type": "object", "description": "The set of labels present on this data_group.", "title": "labels", "x-displayname": "Labels", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "The set of labels present on this data_group.", "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 data_group.", "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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" } ] }, "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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "uid": { "type": "string", "description": "The unique uid of this data_group.", "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-08-20T09:12:47+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-08-20T09:12:47+00:00" } }, "x-f5xc-description-short": "By default a summary of data_group 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 data_group 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 data_groupListResponseItem", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for data_groupListResponseItem\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bigip", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Data groups are reusable across namespaces" }, "classification": { "category": "security", "multi_tenant_pattern": "shared-ref" } } }, "data_groupReplaceRequest": { "type": "object", "description": "This is the input message of the 'Replace' RPC.", "title": "ReplaceRequest is used to replace contents of a data_group", "x-displayname": "Replace Request.", "x-ves-proto-message": "ves.io.schema.bigcne.data_group.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/bigcnedata_groupReplaceSpecType" } ], "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 data_groupReplaceRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for data_groupReplaceRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bigip", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Data groups are reusable across namespaces" }, "classification": { "category": "security", "multi_tenant_pattern": "shared-ref" } } }, "data_groupReplaceResponse": { "type": "object", "x-ves-proto-message": "ves.io.schema.bigcne.data_group.ReplaceResponse", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for data_groupReplaceResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for data_groupReplaceResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bigip", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Data groups are reusable across namespaces" }, "classification": { "category": "security", "multi_tenant_pattern": "shared-ref" } } }, "data_groupStringRecords": { "type": "object", "description": "Data group with strings record List.", "title": "Strings record List", "x-displayname": "String record List.", "x-ves-proto-message": "ves.io.schema.bigcne.data_group.StringRecords", "properties": { "records": { "type": "object", "description": "Configuration parameter for records", "title": "String records", "x-displayname": "String records.", "x-ves-validation-rules": { "ves.io.schema.rules.map.max_pairs": "4096", "ves.io.schema.rules.map.values.string.pattern": "^[0-9a-zA-Z._-]*$" }, "x-validation-rules": { "ves.io.schema.rules.map.max_pairs": "4096", "ves.io.schema.rules.map.values.string.pattern": "^[0-9a-zA-Z._-]*$" }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for data_groupStringRecords", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for data_groupStringRecords\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bigip", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Data groups are reusable across namespaces" }, "classification": { "category": "security", "multi_tenant_pattern": "shared-ref" } } } }, "responses": {}, "parameters": {}, "requestBodies": {} } }, "billing_and_usage": { "openapi": "3.0.3", "info": { "title": "Billing And Usage", "description": "Subscription lifecycle with plan transitions and billing states. Payment method hierarchies supporting primary and secondary configurations. Invoice generation with PDF downloads and custom listing. Resource quotas per namespace with limit definitions and consumption metrics. Contact types for billing notifications and tenant deletion workflows.", "version": "4.0.0", "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": "Subscription lifecycle with plan transitions and billing states. Payment method hierarchies supporting primary and secondary configurations. Invoice generation with PDF downloads and custom listing. Resource quotas per namespace with limit definitions and consumption metrics. Contact types for billing notifications and tenant deletion workflows.", "x-f5xc-summary": "Plan transitions, invoicing, and resource consumption. Namespace-level quota limits and usage tracking.", "x-f5xc-cli-domain": "billing_and_usage", "externalDocs": { "url": "https://docs.cloud.f5.com/docs/how-to/account-mgmt/billing", "description": "F5 XC Documentation - Billing and Usage" }, "x-f5xc-api-reference-url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/billing_and_usage/", "x-f5xc-best-practices": { "common_errors": [ { "code": 400, "message": "Invalid request body", "resolution": "Validate JSON structure and required fields before submission", "prevention": "Use schema validation from OpenAPI spec" }, { "code": 401, "message": "Authentication failed", "resolution": "Verify API token is valid and not expired", "prevention": "Use environment variables for token management" }, { "code": 403, "message": "Permission denied", "resolution": "Check user role and namespace permissions", "prevention": "Verify RBAC policies before operations" }, { "code": 404, "message": "Resource not found", "resolution": "Verify resource name and namespace exist", "prevention": "List resources before attempting operations" }, { "code": 409, "message": "Resource already exists", "resolution": "Use unique name or delete existing resource", "prevention": "Check existence before creation" }, { "code": 429, "message": "Rate limit exceeded", "resolution": "Implement exponential backoff and retry logic", "prevention": "Batch operations and add delays between requests" } ], "security_notes": [ "Always use HTTPS for all API communications", "Store API tokens securely, never in source code", "Rotate API tokens regularly following security policies" ], "performance_tips": [ "Use pagination for large result sets", "Batch related operations when possible", "Cache read-only responses appropriately" ] }, "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Quotas are platform-level limits" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "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": "data" }, { "name": "namespaces" }, { "name": "web" } ], "paths": { "/api/data/namespaces/system/billing/usage_details": { "post": { "summary": "Telemetry Data Metrics.", "description": "GET the billing usage details for each feature over the specified duration.", "operationId": "ves.io.schema.billing.CustomPublicAPI.BillingUsageDetails", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/billingBillingUsageDetailsResponse" } } } }, "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/billingBillingUsageDetailsRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/billing_and_usage/" }, "x-ves-proto-rpc": "ves.io.schema.billing.CustomPublicAPI.BillingUsageDetails", "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": [ "Usage-detail resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "usage-detail" ] }, "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": [ "usage-detail" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "Billing", "x-ves-proto-service": "ves.io.schema.billing.CustomPublicAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/data/namespaces/system/billing/usage_summary": { "post": { "summary": "Billing Usage Summary.", "description": "GET the aggregated billing usage data for each feature/SKU over the specified duration.", "operationId": "ves.io.schema.billing.CustomPublicAPI.BillingUsageSummary", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/billingBillingUsageSummaryResponse" } } } }, "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/billingBillingUsageSummaryRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/billing_and_usage/" }, "x-ves-proto-rpc": "ves.io.schema.billing.CustomPublicAPI.BillingUsageSummary", "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": [ "Usage-summary resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "usage-summary" ] }, "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": [ "usage-summary" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "Billing", "x-ves-proto-service": "ves.io.schema.billing.CustomPublicAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/web/namespaces/{namespace}/usage/invoice_pdf": { "get": { "summary": "GetInvoicePdf.", "description": "Retrieve pdf for a paid invoice by its name.", "operationId": "ves.io.schema.usage.invoice.CustomAPI.DownloadInvoicePdf", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/invoiceDownloadInvoicePdfRsp" } } } }, "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 filter.", "in": "path", "required": true, "x-displayname": "Namespace", "schema": { "type": "string" }, "x-f5xc-example": "system" }, { "name": "name", "description": "Name of the invoice to be downloaded.", "in": "query", "required": false, "x-displayname": "Name", "schema": { "type": "string" }, "x-f5xc-example": "invoice-1" } ], "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/billing_and_usage/" }, "x-ves-proto-rpc": "ves.io.schema.usage.invoice.CustomAPI.DownloadInvoicePdf", "tags": [ "web" ], "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": "Invoice", "x-ves-proto-service": "ves.io.schema.usage.invoice.CustomAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/web/namespaces/{namespace}/usage/invoices/custom_list": { "get": { "summary": "List invoices.", "description": "Endpoint to list customer invoices.", "operationId": "ves.io.schema.usage.invoice.CustomAPI.ListInvoices", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/invoiceListInvoicesRsp" } } } }, "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 filter.", "in": "path", "required": true, "x-displayname": "Namespace", "schema": { "type": "string" }, "x-f5xc-example": "system" }, { "name": "limit", "description": "Maximum number of invoices to return. Invoices are sorted by their issue date.", "in": "query", "required": false, "x-displayname": "Limit", "schema": { "type": "integer", "format": "int32" }, "x-f5xc-example": "100" } ], "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/billing_and_usage/" }, "x-ves-proto-rpc": "ves.io.schema.usage.invoice.CustomAPI.ListInvoices", "tags": [ "web" ], "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": "Invoice", "x-ves-proto-service": "ves.io.schema.usage.invoice.CustomAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/web/namespaces/{namespace}/billing/payment_method/{name}/primary": { "post": { "summary": "Make credit card primary.", "description": "Flags a payment method as primary. Nothing changes is the payment method is already primary, if the payment method is secondary then it becomes default and there will be no secondary.", "operationId": "ves.io.schema.billing.payment_method.CustomAPI.MakePaymentMethodPrimary", "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\nThe namespace in which the payment method object is present.", "in": "path", "required": true, "x-displayname": "Namespace", "schema": { "type": "string" }, "x-f5xc-example": "system" }, { "name": "name", "description": "Name\nThe name of the payment method object to be made primary.", "in": "path", "required": true, "x-displayname": "Name", "schema": { "type": "string" }, "x-f5xc-example": "payment-method-1" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/payment_methodPaymentMethodPrimaryReq" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/billing_and_usage/" }, "x-ves-proto-rpc": "ves.io.schema.billing.payment_method.CustomAPI.MakePaymentMethodPrimary", "tags": [ "web" ], "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": [ "Primary resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "primary" ] }, "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": [ "primary" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "Payment Method.", "x-ves-proto-service": "ves.io.schema.billing.payment_method.CustomAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/web/namespaces/{namespace}/billing/payment_method/{name}/secondary": { "post": { "summary": "Make payment method secondary.", "description": "Flags a payment method as secondary. Nothing changes is the payment method is already secondary, if the payment method is primary then it becomes secondary and there will be no primary.", "operationId": "ves.io.schema.billing.payment_method.CustomAPI.MakePaymentMethodSecondary", "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\nThe namespace in which the payment method object is present.", "in": "path", "required": true, "x-displayname": "Namespace", "schema": { "type": "string" }, "x-f5xc-example": "system" }, { "name": "name", "description": "Name\nThe name of the payment method object to be made secondary.", "in": "path", "required": true, "x-displayname": "Name", "schema": { "type": "string" }, "x-f5xc-example": "payment-method-1" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/payment_methodPaymentMethodSecondaryReq" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/billing_and_usage/" }, "x-ves-proto-rpc": "ves.io.schema.billing.payment_method.CustomAPI.MakePaymentMethodSecondary", "tags": [ "web" ], "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": [ "Secondary resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "secondary" ] }, "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": [ "secondary" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "Payment Method.", "x-ves-proto-service": "ves.io.schema.billing.payment_method.CustomAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/web/namespaces/{namespace}/billing/payment_method/{name}/swap-primary": { "post": { "summary": "Make payment method secondary.", "description": "Swaps payment method roles - the payment method used as a parameter will became primary, any other will become secondary. The `name` parameter is ignored.", "operationId": "ves.io.schema.billing.payment_method.CustomAPI.SwapPaymentMethodRole", "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\nThe namespace in which the payment method object is present.", "in": "path", "required": true, "x-displayname": "Namespace", "schema": { "type": "string" }, "x-f5xc-example": "system" }, { "name": "name", "description": "Name\nThe name of the payment method object to be updated.", "in": "path", "required": true, "x-displayname": "Name", "schema": { "type": "string" }, "x-f5xc-example": "payment-method-1" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/payment_methodPaymentMethodRoleSwapReq" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/billing_and_usage/" }, "x-ves-proto-rpc": "ves.io.schema.billing.payment_method.CustomAPI.SwapPaymentMethodRole", "tags": [ "web" ], "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": [ "Swap-primary resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "swap-primary" ] }, "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": [ "swap-primary" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "Payment Method.", "x-ves-proto-service": "ves.io.schema.billing.payment_method.CustomAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/web/namespaces/{namespace}/billing/payment_methods": { "post": { "summary": "Create payment method specification.", "description": "Creates a new payment method with a specific role.", "operationId": "ves.io.schema.billing.payment_method.CustomAPI.Create", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/payment_methodCreatePaymentMethodResponse" } } } }, "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\nThis namespace specifies the namespace in which the payment method will be created.\nIf not provided, the default 'system' namespace will be used.", "in": "path", "required": true, "x-displayname": "Namespace", "schema": { "type": "string" }, "x-f5xc-example": "system" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/payment_methodCreatePaymentMethodRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/billing_and_usage/" }, "x-ves-proto-rpc": "ves.io.schema.billing.payment_method.CustomAPI.Create", "tags": [ "web" ], "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": [ "Payment-method resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "payment-method" ] }, "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": [ "payment-method" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "Payment Method.", "x-ves-proto-service": "ves.io.schema.billing.payment_method.CustomAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/web/namespaces/{namespace}/billing/payment_methods/{name}": { "delete": { "summary": "DELETE the specified payment method.", "description": "Remove the specified payment_method.", "operationId": "ves.io.schema.billing.payment_method.CustomAPI.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": "system" }, { "name": "name", "description": "Name\nName of the payment method.", "in": "path", "required": true, "x-displayname": "Name", "schema": { "type": "string" }, "x-f5xc-example": "payment-method-1" } ], "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/billing_and_usage/" }, "x-ves-proto-rpc": "ves.io.schema.billing.payment_method.CustomAPI.Delete", "tags": [ "web" ], "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": [ "payment-method", "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": [ "payment-method", "contained_resources" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 500, "p95_ms": 1500, "p99_ms": 4000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "Payment Method.", "x-ves-proto-service": "ves.io.schema.billing.payment_method.CustomAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/no_auth/namespaces/system/billing/plan_transition": { "get": { "summary": "GetPlanTransition.", "description": "API to GET plan transition details by a plan transition request uid returned from InitiatePlanTransition.\nFor now this one returns only current State.", "operationId": "ves.io.schema.billing.plan_transition.CustomAPI.GetPlanTransition", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/plan_transitionGetPlanTransitionRsp" } } } }, "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": "id", "description": "ID of the plan transition request.", "in": "query", "required": false, "x-displayname": "ID", "schema": { "type": "string" }, "x-f5xc-example": "00000000-0000-4000-8000-4304c9d6d1ad" } ], "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/billing_and_usage/" }, "x-ves-proto-rpc": "ves.io.schema.billing.plan_transition.CustomAPI.GetPlanTransition", "tags": [ "namespaces" ], "x-f5xc-operation-metadata": { "purpose": "Resource retrieval operation", "required_fields": [], "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-danger-level": "low", "x-f5xc-discovered-response-time": { "p50_ms": 200, "p95_ms": 800, "p99_ms": 2000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "Plan transition CustomAPI.", "x-ves-proto-service": "ves.io.schema.billing.plan_transition.CustomAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/web/namespaces/{namespace}/billing/plan_transition": { "post": { "summary": "InitiatePlanTransition.", "description": "API to create a plan transition request in db.", "operationId": "ves.io.schema.billing.plan_transition.CustomAPI.InitiatePlanTransition", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/plan_transitionInitiatePlanTransitionRsp" } } } }, "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\nThis namespace is not used, all requests are stored under system namespace.", "in": "path", "required": true, "x-displayname": "Namespace", "schema": { "type": "string" }, "x-f5xc-example": "system" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/plan_transitionInitiatePlanTransitionReq" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/billing_and_usage/" }, "x-ves-proto-rpc": "ves.io.schema.billing.plan_transition.CustomAPI.InitiatePlanTransition", "tags": [ "web" ], "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": [ "Plan-transition resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "plan-transition" ] }, "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": [ "plan-transition" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "Plan transition CustomAPI.", "x-ves-proto-service": "ves.io.schema.billing.plan_transition.CustomAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/web/namespaces/{metadata.namespace}/quotas": { "post": { "summary": "Create Quota.", "description": "Create quota creates a given object from storage backend for metadata.namespace.", "operationId": "ves.io.schema.quota.API.Create", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/quotaCreateResponse" } } } }, "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/quotaCreateRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/billing_and_usage/" }, "x-ves-proto-rpc": "ves.io.schema.quota.API.Create", "tags": [ "web" ], "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": [ "Quota resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "quota" ] }, "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": [ "quota" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "Quota", "x-ves-proto-service": "ves.io.schema.quota.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/web/namespaces/{metadata.namespace}/quotas/{metadata.name}": { "put": { "summary": "Replace Quota.", "description": "Replace quota updates a given object from storage backend for metadata.namespace.", "operationId": "ves.io.schema.quota.API.Replace", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/quotaReplaceResponse" } } } }, "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/quotaReplaceRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/billing_and_usage/" }, "x-ves-proto-rpc": "ves.io.schema.quota.API.Replace", "tags": [ "web" ], "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": [ "quota" ] }, "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": [ "quota" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 800, "p95_ms": 2500, "p99_ms": 6000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "Quota", "x-ves-proto-service": "ves.io.schema.quota.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/web/namespaces/{namespace}/quota/limits": { "get": { "summary": "Custom GET Quota Limits.", "description": "Custom endpoint to return quota limits.", "operationId": "ves.io.schema.quota.CustomAPI.CustomGetQuotaLimits", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/quotaGetQuotaLimitsResponse" } } } }, "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 this item belongs to.", "in": "path", "required": true, "x-displayname": "Namespace", "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/billing_and_usage/" }, "x-ves-proto-rpc": "ves.io.schema.quota.CustomAPI.CustomGetQuotaLimits", "tags": [ "web" ], "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": "Quota", "x-ves-proto-service": "ves.io.schema.quota.CustomAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/web/namespaces/{namespace}/quota/usage": { "get": { "summary": "GET Quota Usage.", "description": "GET allows users to query limits and current usage of resources.", "operationId": "ves.io.schema.quota.CustomAPI.GetQuotaUsage", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/quotaGetResponseType" } } } }, "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 tenant this item belongs to.", "in": "path", "required": true, "x-displayname": "Tenant", "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/billing_and_usage/" }, "x-ves-proto-rpc": "ves.io.schema.quota.CustomAPI.GetQuotaUsage", "tags": [ "web" ], "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": "Quota", "x-ves-proto-service": "ves.io.schema.quota.CustomAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/web/namespaces/{namespace}/quotas": { "get": { "summary": "List Quota.", "description": "List the set of quota in a namespace.", "operationId": "ves.io.schema.quota.API.List", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/quotaListResponse" } } } }, "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 quota.", "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/billing_and_usage/" }, "x-ves-proto-rpc": "ves.io.schema.quota.API.List", "tags": [ "web" ], "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": "Quota", "x-ves-proto-service": "ves.io.schema.quota.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/web/namespaces/{namespace}/quotas/{name}": { "get": { "summary": "GET Quota", "description": "GET quota reads a given object from storage backend for metadata.namespace.", "operationId": "ves.io.schema.quota.API.Get", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/quotaGetResponse" } } } }, "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/billing_and_usage/" }, "x-ves-proto-rpc": "ves.io.schema.quota.API.Get", "tags": [ "web" ], "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 Quota.", "description": "DELETE the specified quota.", "operationId": "ves.io.schema.quota.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/quotaDeleteRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/billing_and_usage/" }, "x-ves-proto-rpc": "ves.io.schema.quota.API.Delete", "tags": [ "web" ], "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": [ "quota", "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": [ "quota", "contained_resources" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 500, "p95_ms": 1500, "p99_ms": 4000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "Quota", "x-ves-proto-service": "ves.io.schema.quota.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/web/namespaces/{namespace}/subscriptions/custom_list": { "get": { "summary": "List Subscriptions.", "description": "Endpoint to list subscriptions.", "operationId": "ves.io.schema.usage.subscription.CustomAPI.ListSubscriptions", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/subscriptionListSubscriptionsRsp" } } } }, "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 filter.", "in": "path", "required": true, "x-displayname": "Namespace", "schema": { "type": "string" }, "x-f5xc-example": "system" }, { "name": "current", "description": "Filter out inactive subscriptions.", "in": "query", "required": false, "x-displayname": "Current", "schema": { "type": "boolean", "format": "boolean" } } ], "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/billing_and_usage/" }, "x-ves-proto-rpc": "ves.io.schema.usage.subscription.CustomAPI.ListSubscriptions", "tags": [ "web" ], "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": "Subscription.", "x-ves-proto-service": "ves.io.schema.usage.subscription.CustomAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/web/namespaces/system/addon/subscribe": { "post": { "summary": "Subscribe to XC addon services.", "description": "Subscribe to XC addon services.", "operationId": "ves.io.schema.subscription.CustomAPI.Subscribe", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/subscriptionSubscribeResponse__ves_io_schema_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_subscription" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/billing_and_usage/" }, "x-ves-proto-rpc": "ves.io.schema.subscription.CustomAPI.Subscribe", "tags": [ "web" ], "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": "Subscription API.", "x-ves-proto-service": "ves.io.schema.subscription.CustomAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/web/namespaces/system/addon/unsubscribe": { "post": { "summary": "Unsubscribe to XC addon services.", "description": "Unsubscribe to XC addon services.", "operationId": "ves.io.schema.subscription.CustomAPI.Unsubscribe", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/subscriptionUnsubscribeResponse__ves_io_schema_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_subscription" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/billing_and_usage/" }, "x-ves-proto-rpc": "ves.io.schema.subscription.CustomAPI.Unsubscribe", "tags": [ "web" ], "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": "Subscription API.", "x-ves-proto-service": "ves.io.schema.subscription.CustomAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/web/namespaces/{namespace}/current_usage": { "post": { "summary": "List current usage details.", "description": "List current usage details per tenant and namespace. Some usage have only sense in the system namespace and this selector has no effect on it.", "operationId": "ves.io.schema.usage.CustomCalculatedUsageAPI.ListCurrentUsage", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/usageListCurrentUsageResp" } } } }, "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 be considered.", "in": "path", "required": true, "x-displayname": "Namespace", "schema": { "type": "string" }, "x-f5xc-example": "system" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/usageListCurrentUsageReq" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/billing_and_usage/" }, "x-ves-proto-rpc": "ves.io.schema.usage.CustomCalculatedUsageAPI.ListCurrentUsage", "tags": [ "web" ], "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": [ "Current-usage resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "current-usage" ] }, "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": [ "current-usage" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "Usage", "x-ves-proto-service": "ves.io.schema.usage.CustomCalculatedUsageAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/web/namespaces/{namespace}/hourly_usage_details": { "post": { "summary": "List hourly usage details.", "description": "List the usage divided by hour. The usage is hourly aggregated, from the start of UTC hour\nto the end of UTC hour. It is used to see the detailed breakdown of the usage received from ListUsageDetails.", "operationId": "ves.io.schema.usage.CustomAggregatedUsageAPI.ListHourlyUsageDetails", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/usageListHourlyUsageDetailsResp" } } } }, "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": "path", "required": true, "x-displayname": "Namespace", "schema": { "type": "string" }, "x-f5xc-example": "system" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/usageListHourlyUsageDetailsReq" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/billing_and_usage/" }, "x-ves-proto-rpc": "ves.io.schema.usage.CustomAggregatedUsageAPI.ListHourlyUsageDetails", "tags": [ "web" ], "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": [ "Hourly-usage-detail resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "hourly-usage-detail" ] }, "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": [ "hourly-usage-detail" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "Usage", "x-ves-proto-service": "ves.io.schema.usage.CustomAggregatedUsageAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/web/namespaces/{namespace}/monthly_usage": { "post": { "summary": "List monthly usage details.", "description": "List monthly usage details per tenant and namespace. Some usage have only sense in the system namespace and this selector has no effect on it.", "operationId": "ves.io.schema.usage.CustomCalculatedUsageAPI.ListMonthlyUsage", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/usageListMonthlyUsageResp" } } } }, "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 be considered.", "in": "path", "required": true, "x-displayname": "Namespace", "schema": { "type": "string" }, "x-f5xc-example": "system" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/usageListMonthlyUsageReq" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/billing_and_usage/" }, "x-ves-proto-rpc": "ves.io.schema.usage.CustomCalculatedUsageAPI.ListMonthlyUsage", "tags": [ "web" ], "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": [ "Monthly-usage resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "monthly-usage" ] }, "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": [ "monthly-usage" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "Usage", "x-ves-proto-service": "ves.io.schema.usage.CustomCalculatedUsageAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/web/namespaces/{namespace}/usage_details": { "post": { "summary": "List usage details.", "description": "List usage details per tenant and namespace. Some usage have only sense in the system namespace and this selector has no effect on it.", "operationId": "ves.io.schema.usage.CustomAggregatedUsageAPI.ListUsageDetails", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/usageListUsageDetailsResp" } } } }, "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 be considered.", "in": "path", "required": true, "x-displayname": "Namespace", "schema": { "type": "string" }, "x-f5xc-example": "system" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/usageListUsageDetailsReq" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/billing_and_usage/" }, "x-ves-proto-rpc": "ves.io.schema.usage.CustomAggregatedUsageAPI.ListUsageDetails", "tags": [ "web" ], "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": [ "Usage-detail resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "usage-detail" ] }, "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": [ "usage-detail" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "Usage", "x-ves-proto-service": "ves.io.schema.usage.CustomAggregatedUsageAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/web/namespaces/system/usage_plans/current": { "get": { "summary": "GET current usage plan.", "description": "Endpoint to GET current usage plan.", "operationId": "ves.io.schema.usage.plan.CustomAPI.GetCurrentPlan", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/planLocalizedPlan" } } } }, "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" } } } } }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/billing_and_usage/" }, "x-ves-proto-rpc": "ves.io.schema.usage.plan.CustomAPI.GetCurrentPlan", "tags": [ "web" ], "x-f5xc-operation-metadata": { "purpose": "Resource retrieval operation", "required_fields": [], "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-danger-level": "low", "x-f5xc-discovered-response-time": { "p50_ms": 200, "p95_ms": 800, "p99_ms": 2000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "Usage plan.", "x-ves-proto-service": "ves.io.schema.usage.plan.CustomAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/web/namespaces/system/usage_plans/custom_list": { "get": { "summary": "List Usage Plans.", "description": "Endpoint to GET usage plans.", "operationId": "ves.io.schema.usage.plan.CustomAPI.ListUsagePlans", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/planListUsagePlansRsp" } } } }, "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" } } } } }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/billing_and_usage/" }, "x-ves-proto-rpc": "ves.io.schema.usage.plan.CustomAPI.ListUsagePlans", "tags": [ "web" ], "x-f5xc-operation-metadata": { "purpose": "Resource retrieval operation", "required_fields": [], "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-danger-level": "low", "x-f5xc-discovered-response-time": { "p50_ms": 200, "p95_ms": 800, "p99_ms": 2000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "Usage plan.", "x-ves-proto-service": "ves.io.schema.usage.plan.CustomAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" } }, "components": { "securitySchemes": { "ApiToken": { "type": "apiKey", "name": "Authorization", "in": "header", "description": "API Token authentication. Format: 'APIToken '" }, "apiKeyAuth": { "type": "apiKey", "in": "header", "name": "Authorization", "description": "F5 XC API Token (format: APIToken )" } }, "schemas": { "billingBillingMetricData": { "type": "object", "description": "Billing Metric Data represents billing metric metadata like unit as well as converted metric value.", "title": "Billing Metric Data", "x-displayname": "Billing Metric Data.", "x-ves-proto-message": "ves.io.schema.billing.BillingMetricData", "properties": { "unit": { "type": "string", "description": "Configuration parameter for unit", "title": "Unit", "x-displayname": "Unit", "x-ves-example": "VIPs", "x-f5xc-example": "VIPs", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "value": { "type": "string", "description": "Value is derived using division_factor. For eg. If the metric usage is\n20 hours over a time duration of 1 day/24h, then division_factor will be 24 hrs,\nso the billing metric value can be calculated it by dividing the usage value by\nthis factor: 20/24 = 0.83 or if the division_factor is static like 1e12 like in\ncase of bytes, then billing metric value is 100/1e12 (assuming that raw usage is\n100 bytes and billing unit is in TB)", "title": "Value", "x-displayname": "Value", "x-ves-example": "0.83", "x-f5xc-example": "0.83", "x-f5xc-description-short": "Value is derived using division_factor. For eg.", "x-f5xc-description-medium": "Value is derived using division_factor. For eg. If the metric usage is 20 hours over a time duration of 1 day/24h, then division_factor will be 24 hrs, so the billing metric value can be calculated it by dividing the usage value by this factor: 20/24 = 0.83 or if the division_factor is static...", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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-08-20T09:12:47+00:00" } }, "x-f5xc-description-short": "Billing Metric Data represents billing metric metadata like unit as well as converted metric value.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for billingBillingMetricData", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for billingBillingMetricData\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Quotas are platform-level limits" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "billingBillingUsageDetailsRequest": { "type": "object", "description": "Request to GET billing usage details for the given tenant.", "title": "Billing Usage Details Request", "x-displayname": "Billing Usage Details Request.", "x-ves-proto-message": "ves.io.schema.billing.BillingUsageDetailsRequest", "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+1h\nIf start_time is not specified, then the end_time will be evaluated to ", "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+1h If start_time is not specified, then the end_time will be evaluated to .", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "filters": { "type": "array", "description": "List of usage_type queries and the corresponding object/namespace filters.", "title": "Name", "items": { "$ref": "#/components/schemas/billingUsageDataFilter" }, "x-displayname": "Usage Data Filter.", "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 usage_type queries and the corresponding object/namespace filters.", "x-f5xc-required-for": { "minimum_config": true, "create": true, "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-1h\nIf end_time is not specified, then the start_time will be evaluated to -1h.", "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-1h If end_time is not specified, then the start_time will be evaluated to -1h.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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 ", "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Request to GET billing usage details for the given tenant.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for billingBillingUsageDetailsRequest", "required_fields": [ "filters" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for billingBillingUsageDetailsRequest\nmetadata:\n name: example\n namespace: default\nspec:\n filters: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"filters\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "billing_and_usage", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Quotas are platform-level limits" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "billingBillingUsageDetailsResponse": { "type": "object", "description": "Billing Usage Response.", "title": "Billing Usage Response", "x-displayname": "Billing Usage Response.", "x-ves-proto-message": "ves.io.schema.billing.BillingUsageDetailsResponse", "properties": { "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "usage_data": { "type": "array", "description": "Data contains time-series data for the billing usage.", "title": "Telemetry Data", "items": { "$ref": "#/components/schemas/billingUsageData" }, "x-displayname": "Telemetry Data.", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "Data contains time-series data for the billing usage.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for billingBillingUsageDetailsResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for billingBillingUsageDetailsResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "billing_and_usage", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Quotas are platform-level limits" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "billingBillingUsageSummaryRequest": { "type": "object", "description": "Time interval to GET the billing usage summary.", "title": "Billing Usage Summary Request", "x-displayname": "Billing Usage Summary Request.", "x-ves-proto-message": "ves.io.schema.billing.BillingUsageSummaryRequest", "properties": { "end_time": { "type": "string", "description": "Fetch alerts whose timestamp <= end_time\nformat: unix_timestamp|RFC 3339\n\nOptional: If not specified, then the end_time will be evaluated to start_time + 6 hours\nIf start_time is not specified, then the end_time will be evaluated to ", "title": "end_time", "x-displayname": "End Time", "x-ves-example": "2019-09-24T12:30:11.733Z.", "x-ves-validation-rules": { "ves.io.schema.rules.string.query_time": "true" }, "x-f5xc-example": "2019-09-24T12:30:11.733Z", "x-validation-rules": { "ves.io.schema.rules.string.query_time": "true" }, "x-f5xc-description-short": "Fetch alerts whose timestamp <= end_time format: unix_timestamp|RFC 3339 Optional: If not specified, then the end_time will be evaluated to...", "x-f5xc-description-medium": "Fetch alerts whose timestamp <= end_time format: unix_timestamp|RFC 3339 Optional: If not specified, then the end_time will be evaluated to start_time + 6 hours If start_time is not specified, then the end_time will be evaluated to .", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "start_time": { "type": "string", "description": "Fetch billing usage summary for timestamp >= start_time\nformat: unix_timestamp|RFC 3339\n\nOptional: If not specified, then the start_time will be evaluated to end_time - 6 hours\nIf end_time is not specified, then the start_time will be evaluated to - 6 hours.", "title": "start_time", "x-displayname": "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" }, "x-f5xc-description-short": "Fetch billing usage summary for timestamp >= start_time format: unix_timestamp|RFC 3339 Optional: If not specified, then the start_time will be...", "x-f5xc-description-medium": "Fetch billing usage summary for timestamp >= start_time format: unix_timestamp|RFC 3339 Optional: If not specified, then the start_time will be evaluated to end_time - 6 hours If end_time is not specified, then the start_time will be evaluated to - 6 hours.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Time interval to GET the billing usage summary.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for billingBillingUsageSummaryRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for billingBillingUsageSummaryRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "billing_and_usage", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Quotas are platform-level limits" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "billingBillingUsageSummaryResponse": { "type": "object", "description": "Contains list of usage summary items.", "title": "Billing Usage Summary Response", "x-displayname": "Billing Usage Summary Response.", "x-ves-proto-message": "ves.io.schema.billing.BillingUsageSummaryResponse", "properties": { "usage_summary_items": { "type": "array", "items": { "$ref": "#/components/schemas/billingUsageSummaryItem" }, "description": "Configuration parameter for usage summary items", "x-f5xc-description-short": "Configuration parameter for usage summary items.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for billingBillingUsageSummaryResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for billingBillingUsageSummaryResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "billing_and_usage", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Quotas are platform-level limits" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "billingLabelFilter": { "type": "object", "description": "X-example: {\"label\":LABEL_OBJECT_NAME,\"op\":EQ,\"value\":\"CE-01\"}\nMetrics used in the billing usage are tagged with labels listed in the enum Label.\nLabel Filter is used to filter the timeseries that match the specified label key/value\nand the operator.", "title": "Label Filter", "x-displayname": "Label Filter.", "x-ves-proto-message": "ves.io.schema.billing.LabelFilter", "properties": { "label": { "allOf": [ { "$ref": "#/components/schemas/schemabillingLabel" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "op": { "allOf": [ { "$ref": "#/components/schemas/ioschemaMetricLabelOp" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "value": { "type": "string", "description": "Value of the label.", "title": "Value", "x-displayname": "Value", "x-ves-example": "Ce01", "x-f5xc-example": "ce01", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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-08-20T09:12:47+00:00" } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for billingLabelFilter", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for billingLabelFilter\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "label", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Quotas are platform-level limits" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "billingUsageData": { "type": "object", "description": "Usage data contains the usage type and the corresponding metric values.", "title": "Usage Data", "x-displayname": "Usage Data.", "x-ves-proto-message": "ves.io.schema.billing.UsageData", "properties": { "metric_values": { "type": "array", "description": "List of metric values.", "title": "Value", "items": { "$ref": "#/components/schemas/ioschemaMetricValue" }, "x-displayname": "Value", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "name": { "type": "string", "title": "x-displayName: \"Name\"\nx-example: \"RE – Container – Large (1 vCPU) – Count\"", "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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" }, "namespace": { "type": "string", "description": "Name of the data field.", "title": "x-displayName: \"Namespace\"\nx-example: \"{system, default\"}\"\nName of the data field", "x-displayname": "Namespace", "x-ves-example": "{system, default\"}", "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", "validation": { "rfc": "RFC 1035", "standard": "DNS-1035 label (alpha-first)" }, "metadata": { "source": "inferred", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" }, "obj_name": { "type": "string", "description": "Name of the data field.", "title": "x-displayName: \"Object Name\"\nx-example: \"{site-1, vh-1\"}\"\nName of the data field", "x-displayname": "Object Name.", "x-ves-example": "{site-1, vh-1\"}", "x-f5xc-example": "example-resource", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "unit": { "type": "string", "description": "Name of the quantity unit.", "title": "Unit", "x-displayname": "Unit", "x-ves-example": "MB", "x-f5xc-example": "MB", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "usage_type": { "allOf": [ { "$ref": "#/components/schemas/schemabillingUsageType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Usage data contains the usage type and the corresponding metric values.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for billingUsageData", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for billingUsageData\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "billing_and_usage", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Quotas are platform-level limits" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "billingUsageDataFilter": { "type": "object", "description": "Usage Data Filter represents the usage type query and the corresponding filters\nlike object, namespace.", "title": "Usage Data Filter", "x-displayname": "Usage Data Filter.", "x-ves-proto-message": "ves.io.schema.billing.UsageDataFilter", "properties": { "label_filters": { "type": "array", "description": "List of label filter expressions of the form \"label key\" QueryOp \"value\" related to the usage_type.\nResponse will only contain data that matches all the conditions specified in the label_filter. Filters\ncorresponding to objects with default names like \"CE Mesh Node - Medium\" will be ignored.\n\nOptional: If not specified, glr status data for all global log receiver objects will be returned in the response.", "title": "label_filter", "maxItems": 100, "items": { "$ref": "#/components/schemas/billingLabelFilter" }, "x-displayname": "Label Filter.", "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-description-short": "List of label filter expressions of the form \"label key\" QueryOp \"value\" related to the usage_type.", "x-f5xc-description-medium": "List of label filter expressions of the form \"label key\" QueryOp \"value\" related to the usage_type. Response will only contain data that matches all the conditions specified in the label_filter. Filters corresponding to objects with default names like \"CE Mesh Node - Medium\" will be ignored.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 100, "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "usage_type": { "allOf": [ { "$ref": "#/components/schemas/schemabillingUsageType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Usage Data Filter represents the usage type query and the corresponding filters like object, namespace.", "x-f5xc-description-medium": "Usage Data Filter represents the usage type query and the corresponding filters like object, namespace.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for billingUsageDataFilter", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for billingUsageDataFilter\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "billing_and_usage", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Quotas are platform-level limits" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "billingUsageMetricData": { "type": "object", "description": "Usage Metric Data represents usage metric metadata like unit and the corresponding actual metric value consumption.", "title": "Usage Metric Data", "x-displayname": "Usage Metric Data.", "x-ves-proto-message": "ves.io.schema.billing.UsageMetricData", "properties": { "metric_value": { "allOf": [ { "$ref": "#/components/schemas/ioschemaMetricValue" } ], "x-f5xc-description-short": "Configuration parameter for metric value.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "unit": { "type": "string", "description": "Configuration parameter for unit", "title": "Unit", "x-displayname": "Unit", "x-ves-example": "Hour", "x-f5xc-example": "hour", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Usage Metric Data represents usage metric metadata like unit and the corresponding actual metric value consumption.", "x-f5xc-description-medium": "Usage Metric Data represents usage metric metadata like unit and the corresponding actual metric value consumption.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for billingUsageMetricData", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for billingUsageMetricData\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "billing_and_usage", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Quotas are platform-level limits" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "billingUsageSummaryItem": { "type": "object", "description": "Usage Summary Item represents the usage details for a usage type like Public Load Balancers,\nfor a given service like App Stack.", "title": "Usage Summary Item", "x-displayname": "Usage Summary Item.", "x-ves-proto-message": "ves.io.schema.billing.UsageSummaryItem", "properties": { "billing_metric_data": { "allOf": [ { "$ref": "#/components/schemas/billingBillingMetricData" } ], "x-f5xc-example": "{\"key\": \"value\"}", "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-ves-example": "Anycast Public Virtual IP.", "x-f5xc-example": "Anycast Public Virtual IP", "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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" }, "service": { "type": "string", "description": "Service to which the usage summary item is associated.", "title": "Service", "x-displayname": "Service", "x-ves-example": "F5xc-securemesh-advanced.", "x-f5xc-example": "f5xc-securemesh-advanced", "x-f5xc-description-short": "Service to which the usage summary item is associated.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "usage_metric_data": { "allOf": [ { "$ref": "#/components/schemas/billingUsageMetricData" } ], "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "usage_type": { "allOf": [ { "$ref": "#/components/schemas/schemabillingUsageType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Usage Summary Item represents the usage details for a usage type like Public Load Balancers, for a given service like App Stack.", "x-f5xc-description-medium": "Usage Summary Item represents the usage details for a usage type like Public Load Balancers, for a given service like App Stack.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for billingUsageSummaryItem", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for billingUsageSummaryItem\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "billing_and_usage", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Quotas are platform-level limits" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "ioschemaMetricLabelOp": { "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 ioschemaMetricLabelOp", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for ioschemaMetricLabelOp\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "label", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Quotas are platform-level limits" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "ioschemaMetricValue": { "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-08-20T09:12:47+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-08-20T09:12:47+00:00" } }, "x-f5xc-description-short": "Metric data contains timestamp and the value.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for ioschemaMetricValue", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for ioschemaMetricValue\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Quotas are platform-level limits" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "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_yaml": "# Minimal example for schemaTrendSentiment\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Quotas are platform-level limits" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaTrendValue\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Quotas are platform-level limits" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "schemabillingLabel": { "type": "string", "description": "Metrics used to construct the billing usage are tagged with these labels and therefore\nthe metrics can be sliced and diced based on one or more labels.\n\nIndicates the field not being set\nIdentifies a object\nIdentifies a namespace.", "title": "Label", "enum": [ "LABEL_NONE", "LABEL_OBJECT_NAME", "LABEL_NAMESPACE" ], "default": "LABEL_NONE", "x-displayname": "Label", "x-ves-proto-enum": "ves.io.schema.billing.Label", "x-f5xc-description-short": "Metrics used to construct the billing usage are tagged with these labels and therefore the metrics can be sliced and diced based on one or more...", "x-f5xc-description-medium": "Metrics used to construct the billing usage are tagged with these labels and therefore the metrics can be sliced and diced based on one or more labels. Indicates the field not being set Identifies a object Identifies a namespace.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for schemabillingLabel", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemabillingLabel\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "label", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Quotas are platform-level limits" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "schemabillingUsageType": { "type": "string", "description": "List of usage type\n\nTenant Info\nRE Container Flavor Large Usage\nRE Container Flavor Medium Usage\nRE Container Flavor Tiny Usage\nPublic IP Usage\nCE Mesh Node Small Usage\nCE Mesh Node Medium Usage\nCE Mesh Node Large Usage\nCE Stack Node Small Usage\nCE Stack Node Medium Usage\nCE Stack Node Large Usage\nDNS LoadBalancer Usage\nDNS LoadBalancer Healthcheck Usage\nDNS Zone Usage\nCE to RE traffic usage\nRE API sec good requests\nCE API sec good requests\nSynthetic monitor invocations usage\nPublic LoadBalancer usage\nRE app fw usage\nCE app fw usage\nTenant plan usage\nTenant logins count\nAPI Discovery LoadBalancer usage\nAPI protection good requests\nTenant object usage\nFast ACL IP prefix usage\nGood requests to origin usage\nTenant add on service info\nClient side defense transactions\nRE WAF requests\nLMA region usage\nGLR sent logs\nGLR sent log bytes\nRE rate limiting good requests\nPublic RE CDN data transfer usage North America\nPublic RE CDN data transfer usage Europe\nPublic RE CDN data transfer usage Asia\nPublic RE CDN data transfer usage South America\nPublic RE CDN request usage North America\nPublic RE CDN request usage Europe\nPublic RE CDN request usage Asia\nPublic RE CDN request usage South America\nDNSSEC Zone Usage\nAdvanced DNS LoadBalancer Usage\nDNS LoadBalancer CNAME pool health check usage\nDNS LoadBalancer CNAME pool priority algorithm usage.", "title": "UsageType", "enum": [ "TENANT_INFO", "RE_CONTAINER_FLAVOR_LARGE_USAGE", "RE_CONTAINER_FLAVOR_MEDIUM_USAGE", "RE_CONTAINER_FLAVOR_TINY_USAGE", "PUBLIC_IP_USAGE", "CE_MESH_NODE_SMALL_USAGE", "CE_MESH_NODE_MEDIUM_USAGE", "CE_MESH_NODE_LARGE_USAGE", "CE_STACK_NODE_SMALL_USAGE", "CE_STACK_NODE_MEDIUM_USAGE", "CE_STACK_NODE_LARGE_USAGE", "DNS_LOAD_BALANCER_USAGE", "DNS_LOAD_BALANCER_HEALTHCHECK_USAGE", "DNS_ZONE_USAGE", "CE_TO_RE_TRAFFIC_USAGE", "RE_API_SEC_GOOD_REQUESTS", "CE_API_SEC_GOOD_REQUESTS", "SYNTHETIC_MONITOR_INVOCATIONS_USAGE", "PUBLIC_LOAD_BALANCER_USAGE", "RE_APP_FW_USAGE", "CE_APP_FW_USAGE", "TENANT_PLAN_USAGE", "TENANT_LOGINS_COUNT", "API_DISCOVERY_LOAD_BALANCER_USAGE", "API_PROTECTIONS_GOOD_REQUESTS", "TENANT_OBJECT_USAGE", "FAST_ACL_IP_PREFIX_USAGE", "GOOD_REQUESTS_TO_ORIGIN_USAGE", "TENANT_ADDON_SERVICE_INFO", "CLIENT_SIDE_DEFENSE_TRANSACTIONS", "RE_WAF_REQUESTS", "LMA_REGION_USAGE", "GLR_SENT_LOGS", "GLR_SENT_LOGS_BYTES", "RE_RLIM_GOOD_REQUESTS", "PUBLIC_RE_CDN_DATA_TRANSFER_USAGE_NA", "PUBLIC_RE_CDN_DATA_TRANSFER_USAGE_EU", "PUBLIC_RE_CDN_DATA_TRANSFER_USAGE_AS", "PUBLIC_RE_CDN_DATA_TRANSFER_USAGE_SA", "PUBLIC_RE_CDN_REQUEST_USAGE_NA", "PUBLIC_RE_CDN_REQUEST_USAGE_EU", "PUBLIC_RE_CDN_REQUEST_USAGE_AS", "PUBLIC_RE_CDN_REQUEST_USAGE_SA", "DNSSEC_ZONE_USAGE", "ADVANCED_DNS_LOAD_BALANCER_USAGE", "DNS_LOAD_BALANCER_CNAME_POOL_HEALTH_CHECK_USAGE", "DNS_LOAD_BALANCER_CNAME_POOL_PRIORITY_ALGORITHM_USAGE" ], "default": "TENANT_INFO", "x-displayname": "UsageType", "x-ves-proto-enum": "ves.io.schema.billing.UsageType", "x-f5xc-description-short": "List of usage type Tenant Info RE Container Flavor Large Usage RE Container Flavor Medium Usage RE Container Flavor Tiny Usage Public IP Usage CE...", "x-f5xc-description-medium": "List of usage type Tenant Info RE Container Flavor Large Usage RE Container Flavor Medium Usage RE Container Flavor Tiny Usage Public IP Usage CE Mesh Node Small Usage CE Mesh Node Medium Usage CE Mesh Node Large Usage CE Stack Node Small Usage CE Stack Node Medium Usage CE Stack Node Large...", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for schemabillingUsageType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemabillingUsageType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "billing_and_usage", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Quotas are platform-level limits" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "invoiceDownloadInvoicePdfRsp": { "type": "object", "description": "Response for GetInvoicePdf rpc method.", "title": "GetInvoicePdfRsp", "x-displayname": "GetInvoicePdfRsp.", "x-ves-proto-message": "ves.io.schema.usage.invoice.DownloadInvoicePdfRsp", "properties": { "pdf": { "type": "string", "description": "Base 64 encoded invoice as a PDF document.", "title": "PDF", "format": "byte", "x-displayname": "PDF", "x-f5xc-description-short": "Base 64 encoded invoice as a PDF document.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "format": "byte", "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for invoiceDownloadInvoicePdfRsp", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for invoiceDownloadInvoicePdfRsp\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Quotas are platform-level limits" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "invoiceInvoiceStatus": { "type": "string", "description": "Invoice status\n\nUnknown, undefined status\nInvoice is just issued\nInvoice is pending, also known as running invoice\nInvoice is paid\nInvoice is refunded\nCancelled invoice (before being due)\nSet when current date is past due date, clears when the invoice gets paid.", "title": "Invoice status", "enum": [ "STATUS_UNKNOWN", "STATUS_ISSUED", "STATUS_PENDING", "STATUS_PAID", "STATUS_REFUNDED", "STATUS_CANCELLED", "OVERDUE" ], "default": "STATUS_UNKNOWN", "x-displayname": "Invoice status.", "x-ves-proto-enum": "ves.io.schema.usage.invoice.InvoiceStatus", "x-f5xc-description-short": "Invoice status Unknown, undefined status Invoice is just issued Invoice is pending, also known as running invoice Invoice is paid Invoice is...", "x-f5xc-description-medium": "Invoice status Unknown, undefined status Invoice is just issued Invoice is pending, also known as running invoice Invoice is paid Invoice is refunded Cancelled invoice (before being due) Set when current date is past due date, clears when the invoice gets paid.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for invoiceInvoiceStatus", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for invoiceInvoiceStatus\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Quotas are platform-level limits" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "invoiceInvoiceType": { "type": "object", "description": "A single invoice representation.", "title": "Invoice", "x-displayname": "Invoice", "x-ves-proto-message": "ves.io.schema.usage.invoice.InvoiceType", "properties": { "active": { "type": "boolean", "description": "Indicate whether an invoice is active or not. Active invoices are not finalised and their value can change. Inactive invoices are final and their value cannot change.", "title": "Invoice active flag", "format": "boolean", "x-displayname": "Active", "x-f5xc-example": "True", "x-f5xc-description-short": "Indicate whether an invoice is active or not. Active invoices are not finalised and their value can change.", "x-f5xc-description-medium": "Indicate whether an invoice is active or not. Active invoices are not finalised and their value can change. Inactive invoices are final and their value cannot change.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "amount": { "type": "string", "description": "Invoice amount as cents.", "title": "Amount", "format": "int64", "x-displayname": "Amount", "x-ves-example": "100", "x-f5xc-example": "100", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "format": "int64", "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "currency": { "type": "string", "description": "Currency the amount is in.", "title": "Currency", "x-displayname": "Currency", "x-ves-example": "USD", "x-f5xc-example": "USD", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "name": { "type": "string", "description": "Name of the invoice.", "title": "Name", "x-displayname": "Name", "x-ves-example": "Invoice-abc-1.", "x-f5xc-example": "invoice-abc-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, 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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" }, "period_end": { "type": "string", "description": "Invoice period end.", "title": "Period end", "format": "date-time", "x-displayname": "Period end.", "x-ves-example": "2020-05-20T12:32:51.341959216Z.", "x-f5xc-example": "2020-05-20T12:32:51.341959216Z", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "format": "date-time", "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "period_start": { "type": "string", "description": "Invoice period start.", "title": "Period start", "format": "date-time", "x-displayname": "Period start.", "x-ves-example": "2020-04-20T12:32:51.341959216Z.", "x-f5xc-example": "2020-04-20T12:32:51.341959216Z", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "format": "date-time", "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "status": { "allOf": [ { "$ref": "#/components/schemas/invoiceInvoiceStatus" } ], "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-08-20T09:12:47+00:00" } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for invoiceInvoiceType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for invoiceInvoiceType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Quotas are platform-level limits" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "invoiceListInvoicesRsp": { "type": "object", "description": "Response to list customer's invoices.", "title": "List invoice response", "x-displayname": "List invoice response.", "x-ves-proto-message": "ves.io.schema.usage.invoice.ListInvoicesRsp", "properties": { "invoices": { "type": "array", "description": "List of invoices as per customer request.", "title": "Invoices", "items": { "$ref": "#/components/schemas/invoiceInvoiceType" }, "x-displayname": "Invoices", "x-f5xc-description-short": "List of invoices as per customer request.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for invoiceListInvoicesRsp", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for invoiceListInvoicesRsp\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Quotas are platform-level limits" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "contactContactType": { "type": "string", "description": "Determines the contact type\n\nIndicates snail mail address (used for correspondence)\nIndicates billing address (this address will appear on invoices)\nIndicates contact used for a payment method (this address is used when charging a payment method)", "title": "Contact Type", "enum": [ "MAILING", "BILLING", "PAYMENT" ], "default": "MAILING", "x-displayname": "Contact Type.", "x-ves-proto-enum": "ves.io.schema.contact.ContactType", "x-f5xc-description-short": "Determines the contact type Indicates snail mail address (used for correspondence) Indicates billing address (this address will appear on...", "x-f5xc-description-medium": "Determines the contact type Indicates snail mail address (used for correspondence) Indicates billing address (this address will appear on invoices) Indicates contact used for a payment method (this address is used when charging a payment method).", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for contactContactType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for contactContactType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "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" } } }, "contactGlobalSpecType": { "type": "object", "description": "Instance of one single contact that can be used to communicate with customers.\nDepending on contact type we use these details to send general communication (regular, physical mail) or invoices.", "title": "Contact", "x-displayname": "Contact", "x-ves-proto-message": "ves.io.schema.contact.GlobalSpecType", "properties": { "address1": { "type": "string", "description": "Network address or location", "title": "address1", "x-displayname": "Address Line 1.", "x-ves-example": "1234 Main road.", "x-f5xc-example": "1234 Main road", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "address2": { "type": "string", "description": "Network address or location", "title": "address2", "x-displayname": "Address Line 2.", "x-ves-example": "P.O BOX 56.", "x-f5xc-example": "P.O BOX 56", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "city": { "type": "string", "description": "Configuration parameter for city", "title": "city", "x-displayname": "City", "x-ves-example": "Sunnyvale", "x-f5xc-example": "Sunnyvale", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "contact_type": { "allOf": [ { "$ref": "#/components/schemas/contactContactType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "country": { "type": "string", "description": "Configuration parameter for country", "title": "country", "x-displayname": "Country", "x-ves-example": "US", "x-f5xc-example": "US", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "county": { "type": "string", "description": "Configuration parameter for county", "title": "county", "x-displayname": "County", "x-ves-example": "Santa Clara.", "x-f5xc-example": "Santa Clara", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "phone_number": { "type": "string", "description": "Configuration parameter for phone number", "title": "phone_number", "x-displayname": "Phone Number.", "x-ves-example": "+11234567890.", "x-f5xc-example": "+11234567890", "x-f5xc-description-short": "Configuration parameter for phone number.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "state": { "type": "string", "description": "Current state of the resource", "title": "state", "x-displayname": "State", "x-ves-example": "California.", "x-f5xc-example": "California", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "state_code": { "type": "string", "description": "Configuration parameter for state code", "title": "state code", "x-displayname": "State Code.", "x-ves-example": "CA", "x-f5xc-example": "CA", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "zip_code": { "type": "string", "description": "IP address configuration", "title": "zip_code", "x-displayname": "ZIP code", "x-ves-example": "95054", "x-f5xc-example": "95054", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Instance of one single contact that can be used to communicate with customers.", "x-f5xc-description-medium": "Instance of one single contact that can be used to communicate with customers. Depending on contact type we use these details to send general communication (regular, physical mail) or invoices.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for contactGlobalSpecType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for contactGlobalSpecType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "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" } } }, "payment_methodCreatePaymentMethodRequest": { "type": "object", "description": "This is the input message of the 'Create' RPC.", "title": "CreateRequest is used to create an instance of payment_method", "x-displayname": "Create Request.", "x-ves-proto-message": "ves.io.schema.billing.payment_method.CreatePaymentMethodRequest", "properties": { "contact": { "allOf": [ { "$ref": "#/components/schemas/contactGlobalSpecType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "namespace": { "type": "string", "description": "This namespace specifies the namespace in which the payment method will be created.\nIf not provided, the default 'system' namespace will be used.", "title": "Namespace", "x-displayname": "Namespace", "x-ves-example": "System", "x-ves-validation-rules": { "ves.io.schema.rules.string.const": "system" }, "x-f5xc-example": "system", "x-validation-rules": { "ves.io.schema.rules.string.const": "system" }, "x-f5xc-description-short": "Namespace specifies the namespace in which the payment method will be created. If not provided, the default 'system' namespace will be used.", "x-f5xc-description-medium": "Namespace specifies the namespace in which the payment method will be created. If not provided, the default 'system' namespace will be used.", "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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" }, "role": { "allOf": [ { "$ref": "#/components/schemas/payment_methodPaymentMethodRole" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "token": { "type": "string", "description": "Token associated with this payment method. This token needs to be obtained from a designated payment method provider e.g. Stripe.", "title": "Token", "x-displayname": "Token", "x-ves-example": "Tok-123456.", "x-f5xc-example": "tok-123456", "x-f5xc-description-short": "Token associated with this payment method. This token needs to be obtained from a designated payment method provider e.g.", "x-f5xc-description-medium": "Token associated with this payment method. This token needs to be obtained from a designated payment method provider e.g. Stripe.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "security", "maxLength": 1024, "minLength": 20, "metadata": { "source": "inferred", "confidence": 0.75, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for payment_methodCreatePaymentMethodRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for payment_methodCreatePaymentMethodRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "billing_and_usage", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Quotas are platform-level limits" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "payment_methodCreatePaymentMethodResponse": { "type": "object", "x-ves-proto-message": "ves.io.schema.billing.payment_method.CreatePaymentMethodResponse", "properties": { "name": { "type": "string", "description": "Name of the newly created payment method object.", "title": "Name", "x-displayname": "Name", "x-ves-example": "Payment-method-1.", "x-f5xc-example": "payment-method-1", "x-f5xc-description-short": "Name of the newly created payment method 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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for payment_methodCreatePaymentMethodResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for payment_methodCreatePaymentMethodResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "billing_and_usage", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Quotas are platform-level limits" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "payment_methodPaymentMethodPrimaryReq": { "type": "object", "description": "Changes a payment method role to primary.", "title": "Change payment method role request", "x-displayname": "Payment method primary.", "x-ves-proto-message": "ves.io.schema.billing.payment_method.PaymentMethodPrimaryReq", "properties": { "name": { "type": "string", "description": "The name of the payment method object to be made primary.", "title": "name", "x-displayname": "Name", "x-ves-example": "Payment-method-1.", "x-f5xc-example": "payment-method-1", "x-f5xc-description-short": "The name of the payment method object to be made primary.", "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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" }, "namespace": { "type": "string", "description": "The namespace in which the payment method object is present.", "title": "namespace", "x-displayname": "Namespace", "x-ves-example": "System", "x-ves-validation-rules": { "ves.io.schema.rules.string.const": "system" }, "x-f5xc-example": "system", "x-validation-rules": { "ves.io.schema.rules.string.const": "system" }, "x-f5xc-description-short": "The namespace in which the payment method 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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" } }, "x-f5xc-description-short": "Changes a payment method role to primary.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for payment_methodPaymentMethodPrimaryReq", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for payment_methodPaymentMethodPrimaryReq\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "billing_and_usage", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Quotas are platform-level limits" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "payment_methodPaymentMethodRole": { "type": "string", "description": "Defines if a payment method is used as a primary or backup source of fund.\n\nUnknown payment method role\nPrimary payment method role. Always used when attempting to charge for F5 Distributed Cloud's services.\nSecondary payment method role. Used when primary payment method failed.\nNormal payment method is a card that has no role as such.", "title": "Payment method role", "enum": [ "PAYMENT_METHOD_ROLE_UNKNOWN", "PAYMENT_METHOD_ROLE_PRIMARY", "PAYMENT_METHOD_ROLE_SECONDARY", "PAYMENT_METHOD_ROLE_NORMAL" ], "default": "PAYMENT_METHOD_ROLE_UNKNOWN", "x-displayname": "Payment method role.", "x-ves-proto-enum": "ves.io.schema.billing.payment_method.PaymentMethodRole", "x-f5xc-description-short": "Defines if a payment method is used as a primary or backup source of fund. Unknown payment method role Primary payment method role.", "x-f5xc-description-medium": "Defines if a payment method is used as a primary or backup source of fund. Unknown payment method role Primary payment method role. Always used when attempting to charge for F5 Distributed Cloud's services.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for payment_methodPaymentMethodRole", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for payment_methodPaymentMethodRole\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "tenant_and_identity", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Quotas are platform-level limits" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "payment_methodPaymentMethodRoleSwapReq": { "type": "object", "description": "Changes a payment method role (from/to primary or backup)", "title": "Change payment method role request", "x-displayname": "Payment method role swap.", "x-ves-proto-message": "ves.io.schema.billing.payment_method.PaymentMethodRoleSwapReq", "properties": { "name": { "type": "string", "description": "The name of the payment method object to be updated.", "title": "name", "x-displayname": "Name", "x-ves-example": "Payment-method-1.", "x-f5xc-example": "payment-method-1", "x-f5xc-description-short": "The name of the payment method object to be updated.", "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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" }, "namespace": { "type": "string", "description": "The namespace in which the payment method object is present.", "title": "namespace", "x-displayname": "Namespace", "x-ves-example": "System", "x-ves-validation-rules": { "ves.io.schema.rules.string.const": "system" }, "x-f5xc-example": "system", "x-validation-rules": { "ves.io.schema.rules.string.const": "system" }, "x-f5xc-description-short": "The namespace in which the payment method 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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" } }, "x-f5xc-description-short": "Changes a payment method role (from/to primary or backup).", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for payment_methodPaymentMethodRoleSwapReq", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for payment_methodPaymentMethodRoleSwapReq\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "tenant_and_identity", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Quotas are platform-level limits" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "payment_methodPaymentMethodSecondaryReq": { "type": "object", "description": "Changes a payment method role to secondary.", "title": "Change payment method role request", "x-displayname": "Payment method secondary.", "x-ves-proto-message": "ves.io.schema.billing.payment_method.PaymentMethodSecondaryReq", "properties": { "name": { "type": "string", "description": "The name of the payment method object to be made secondary.", "title": "name", "x-displayname": "Name", "x-ves-example": "Payment-method-1.", "x-f5xc-example": "payment-method-1", "x-f5xc-description-short": "The name of the payment method object to be made secondary.", "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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" }, "namespace": { "type": "string", "description": "The namespace in which the payment method object is present.", "title": "namespace", "x-displayname": "Namespace", "x-ves-example": "System", "x-ves-validation-rules": { "ves.io.schema.rules.string.const": "system" }, "x-f5xc-example": "system", "x-validation-rules": { "ves.io.schema.rules.string.const": "system" }, "x-f5xc-description-short": "The namespace in which the payment method 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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" } }, "x-f5xc-description-short": "Changes a payment method role to secondary.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for payment_methodPaymentMethodSecondaryReq", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for payment_methodPaymentMethodSecondaryReq\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "billing_and_usage", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Quotas are platform-level limits" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "plan_transitionGetPlanTransitionRsp": { "type": "object", "description": "Request body of GetPlanTransition custom API.", "title": "GetPlanTransitionRsp", "x-displayname": "GetPlanTransitionRsp.", "x-ves-proto-message": "ves.io.schema.billing.plan_transition.GetPlanTransitionRsp", "properties": { "state": { "allOf": [ { "$ref": "#/components/schemas/plan_transitionState" } ], "x-f5xc-example": "running", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Request body of GetPlanTransition custom API.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for plan_transitionGetPlanTransitionRsp", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for plan_transitionGetPlanTransitionRsp\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "billing_and_usage", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Quotas are platform-level limits" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "plan_transitionInitiatePlanTransitionReq": { "type": "object", "description": "Request body of InitiatePlanTransition custom API.", "title": "InitiatePlanTransitionReq", "x-displayname": "InitiatePlanTransitionReq.", "x-ves-proto-message": "ves.io.schema.billing.plan_transition.InitiatePlanTransitionReq", "properties": { "namespace": { "type": "string", "description": "This namespace is not used, all requests are stored under system namespace.", "title": "Namespace", "x-displayname": "Namespace", "x-ves-example": "System", "x-ves-validation-rules": { "ves.io.schema.rules.string.const": "system" }, "x-f5xc-example": "system", "x-validation-rules": { "ves.io.schema.rules.string.const": "system" }, "x-f5xc-description-short": "Namespace is not used, all requests are stored under system 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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" }, "new_plan": { "type": "string", "description": "New plan template name tenant want to move to.", "title": "New plan", "x-displayname": "New Plan", "x-ves-example": "Plan-1", "x-f5xc-example": "plan-1", "x-f5xc-description-short": "New plan template name tenant want to move to.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "payload": { "allOf": [ { "$ref": "#/components/schemas/plan_transitionTransitionPayload" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Request body of InitiatePlanTransition custom API.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for plan_transitionInitiatePlanTransitionReq", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for plan_transitionInitiatePlanTransitionReq\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "billing_and_usage", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Quotas are platform-level limits" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "plan_transitionInitiatePlanTransitionRsp": { "type": "object", "description": "Response body of InitiatePlanTransition custom API.", "title": "InitiatePlanTransitionRsp", "x-displayname": "InitiatePlanTransitionRsp.", "x-ves-proto-message": "ves.io.schema.billing.plan_transition.InitiatePlanTransitionRsp", "properties": { "id": { "type": "string", "description": "ID of the newly created plan transition request.", "title": "id", "x-displayname": "ID", "x-ves-example": "00000000-0000-4000-8000-4304c9d6d1ad.", "x-f5xc-example": "00000000-0000-4000-8000-4304c9d6d1ad", "x-f5xc-description-short": "ID of the newly created plan transition request.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "requires_manual_approval": { "type": "boolean", "description": "Flag to specify whether the request requires manual approval.", "title": "requires_manual_approval", "format": "boolean", "x-displayname": "Requires_manual_approval.", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "Flag to specify whether the request requires manual approval.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Response body of InitiatePlanTransition custom API.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for plan_transitionInitiatePlanTransitionRsp", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for plan_transitionInitiatePlanTransitionRsp\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "billing_and_usage", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Quotas are platform-level limits" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "plan_transitionState": { "type": "string", "description": "State of the plan transition FSM\n\n- STATE_UNSPECIFIED: Zero value for this state. Should be considered as an invalid state. User has to always explicitly\nspecify which other state should be.\n- STATE_CREATING: Initial state after plan transition object creation.\n- STATE_FAILED: Some step(-s) failed during plan transition execution.\n- STATE_FINISHED: All steps were successfully done during plan transition execution.\n- STATE_WAITING_FOR_APPROVAL: Request is awaiting for manual approval by SRE.", "title": "State", "enum": [ "STATE_UNSPECIFIED", "STATE_CREATING", "STATE_FAILED", "STATE_FINISHED", "STATE_WAITING_FOR_APPROVAL" ], "default": "STATE_UNSPECIFIED", "x-displayname": "State", "x-ves-proto-enum": "ves.io.schema.billing.plan_transition.State", "x-f5xc-description-short": "State of the plan transition FSM - STATE_UNSPECIFIED: Zero value for this state.", "x-f5xc-description-medium": "State of the plan transition FSM - STATE_UNSPECIFIED: Zero value for this state. Should be considered as an invalid state. User has to always explicitly specify which other state should be. - STATE_CREATING: Initial state after plan transition object creation. - STATE_FAILED: Some step(-s)...", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for plan_transitionState", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for plan_transitionState\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "billing_and_usage", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Quotas are platform-level limits" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "plan_transitionTransitionPayload": { "type": "object", "description": "Payload which is required to execute transition from the current tenant's plan to a given new_plan.", "title": "TransitionPayload", "x-displayname": "TransitionPayload.", "x-ves-proto-message": "ves.io.schema.billing.plan_transition.TransitionPayload", "properties": { "billing_address": { "allOf": [ { "$ref": "#/components/schemas/schemacontactGlobalSpecType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "billing_provider_account_id": { "type": "string", "description": "ID of the billing provider account created to verify the billing info provided with this object.\nThe ID is then used to ensure no more duplicate billing account is created.\nNote: this is set by the backend during the creation of plan_transition object. Anything passed from UI will be ignored.", "title": "billing_provider_account_id", "x-displayname": "Billing provider account ID.", "x-ves-example": "00000000-0000-4000-8000-8d4d83a4c67f.", "x-f5xc-example": "00000000-0000-4000-8000-8d4d83a4c67f", "x-f5xc-description-short": "ID of the billing provider account created to verify the billing info provided with this object.", "x-f5xc-description-medium": "ID of the billing provider account created to verify the billing info provided with this object. The ID is then used to ensure no more duplicate billing account is created.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-field-mutability": "read-only" }, "create_support_ticket": { "type": "boolean", "description": "If set to true, a support ticket will be created to provide the plan transition request.", "title": "create_support_ticket", "format": "boolean", "x-displayname": "Create Support Ticket.", "x-f5xc-description-short": "If set to true, a support ticket will be created to provide the plan transition request.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "deletion_feedback": { "type": "string", "description": "Feedback from the customer related to reason of account deletion.", "title": "Feedback", "x-displayname": "Feedback", "x-ves-example": "Customer given feedback.", "x-f5xc-example": "customer given feedback", "x-f5xc-description-short": "Feedback from the customer related to reason of account deletion.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "deletion_reason": { "allOf": [ { "$ref": "#/components/schemas/tenantDeletionReason" } ], "x-f5xc-description-short": "Configuration parameter for deletion reason.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "domain": { "type": "string", "description": "Domain for enterprise tenants.", "title": "payment_provider_token", "x-displayname": "Payment Provider Token.", "x-ves-example": "Domain1", "x-f5xc-example": "domain1", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "payment_address": { "allOf": [ { "$ref": "#/components/schemas/schemacontactGlobalSpecType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "payment_provider_token": { "type": "string", "description": "Payment provider token (for credit card details)", "title": "payment_provider_token", "x-displayname": "Payment Provider Token.", "x-ves-example": "Tok-123456.", "x-f5xc-example": "tok-123456", "x-f5xc-description-short": "Payment provider token (for credit card details).", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "subscribe_addon_services": { "type": "array", "description": "List of addon services that needs to be subscribed/enabled part of this plan transition.", "title": "subscribe_addon_services", "items": { "type": "string" }, "x-displayname": "Subscribe Addon Services.", "x-ves-example": "['service1','service2']", "x-f5xc-example": "['service1','service2']", "x-f5xc-description-short": "List of addon services that needs to be subscribed/enabled part of this plan transition.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "support_ticket_info": { "type": "string", "description": "Additional information user want to record part of the support ticket.", "title": "support_ticket_info", "x-displayname": "Support Ticket Additional Info.", "x-ves-example": "User comment.", "x-f5xc-example": "user comment", "x-f5xc-description-short": "Additional information user want to record part of the support ticket.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "tp_subscription_id": { "type": "string", "description": "ID of the third party subscription ID created.\nNote: this is set by the backend as part of the notifiers run as the plan_transition object is created.", "title": "tp_subscription_id", "x-displayname": "Third party subscription ID.", "x-ves-example": "00000000-0000-4000-8000-298dab645fd8.", "x-f5xc-example": "00000000-0000-4000-8000-298dab645fd8", "x-f5xc-description-short": "ID of the third party subscription ID created.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-field-mutability": "read-only" }, "unsubscribe_addon_services": { "type": "array", "description": "List of addon services that needs to be unsubscribed/removed part of this plan transition.", "title": "unsubscribe_addon_services", "items": { "type": "string" }, "x-displayname": "Unsubscribe Addon Services.", "x-ves-example": "['service3','service4']", "x-f5xc-example": "['service3','service4']", "x-f5xc-description-short": "List of addon services that needs to be unsubscribed/removed part of this plan transition.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Payload which is required to execute transition from the current tenant's plan to a given new_plan.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for plan_transitionTransitionPayload", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for plan_transitionTransitionPayload\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "billing_and_usage", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Quotas are platform-level limits" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "schemacontactGlobalSpecType": { "type": "object", "description": "Instance of one single contact that can be used to communicate with customers.\nDepending on contact type we use these details to send general communication (regular, physical mail) or invoices.", "title": "Contact", "x-displayname": "Contact", "x-ves-proto-message": "ves.io.schema.contact.GlobalSpecType", "properties": { "address1": { "type": "string", "description": "Network address or location", "title": "address1", "x-displayname": "Address Line 1.", "x-ves-example": "1234 Main road.", "x-f5xc-example": "1234 Main road", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "address2": { "type": "string", "description": "Network address or location", "title": "address2", "x-displayname": "Address Line 2.", "x-ves-example": "P.O BOX 56.", "x-f5xc-example": "P.O BOX 56", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "city": { "type": "string", "description": "Configuration parameter for city", "title": "city", "x-displayname": "City", "x-ves-example": "Sunnyvale", "x-f5xc-example": "Sunnyvale", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "contact_type": { "allOf": [ { "$ref": "#/components/schemas/contactContactType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "country": { "type": "string", "description": "Configuration parameter for country", "title": "country", "x-displayname": "Country", "x-ves-example": "US", "x-f5xc-example": "US", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "county": { "type": "string", "description": "Configuration parameter for county", "title": "county", "x-displayname": "County", "x-ves-example": "Santa Clara.", "x-f5xc-example": "Santa Clara", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "phone_number": { "type": "string", "description": "Configuration parameter for phone number", "title": "phone_number", "x-displayname": "Phone Number.", "x-ves-example": "+11234567890.", "x-f5xc-example": "+11234567890", "x-f5xc-description-short": "Configuration parameter for phone number.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "state": { "type": "string", "description": "Current state of the resource", "title": "state", "x-displayname": "State", "x-ves-example": "California.", "x-f5xc-example": "California", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "state_code": { "type": "string", "description": "Configuration parameter for state code", "title": "state code", "x-displayname": "State Code.", "x-ves-example": "CA", "x-f5xc-example": "CA", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "zip_code": { "type": "string", "description": "IP address configuration", "title": "zip_code", "x-displayname": "ZIP code", "x-ves-example": "95054", "x-f5xc-example": "95054", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Instance of one single contact that can be used to communicate with customers.", "x-f5xc-description-medium": "Instance of one single contact that can be used to communicate with customers. Depending on contact type we use these details to send general communication (regular, physical mail) or invoices.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for schemacontactGlobalSpecType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemacontactGlobalSpecType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "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" } } }, "tenantDeletionReason": { "type": "string", "description": "List of available reason for account deletion.\n\n- REASON_UNKNOWN: Unknown reason\n\nUnknown reason\n- REASON_SWITCH_TO_FREE_PLAN: Switch to free plan\n\nSwitch to free plan\n- REASON_NO_LONGER_NEEDED: No longer needed\n\nNo longer needed\n- REASON_NOT_JUSTIFY_COSTS: Too expensive\n\nToo expensive\n- REASON_DIFFICULT_TO_USE: Difficult to use\n\nDifficult to use.", "title": "DeletionReason", "enum": [ "REASON_UNKNOWN", "REASON_SWITCH_TO_FREE_PLAN", "REASON_NO_LONGER_NEEDED", "REASON_NOT_JUSTIFY_COSTS", "REASON_DIFFICULT_TO_USE" ], "default": "REASON_UNKNOWN", "x-displayname": "DeletionReason.", "x-ves-proto-enum": "ves.io.schema.tenant.DeletionReason", "x-f5xc-description-short": "List of available reason for account deletion. - REASON_UNKNOWN: Unknown reason Unknown reason - REASON_SWITCH_TO_FREE_PLAN: Switch to free plan...", "x-f5xc-description-medium": "List of available reason for account deletion. - REASON_UNKNOWN: Unknown reason Unknown reason - REASON_SWITCH_TO_FREE_PLAN: Switch to free plan Switch to free plan - REASON_NO_LONGER_NEEDED: No longer needed No longer needed - REASON_NOT_JUSTIFY_COSTS: Too expensive Too expensive ...", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for tenantDeletionReason", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for tenantDeletionReason\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "tenant_and_identity", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Tenant object is platform-level administration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "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\": ,\n\"lastName\": \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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for protobufAny\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Quotas are platform-level limits" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "quotaCreateRequest": { "type": "object", "description": "This is the input message of the 'Create' RPC.", "title": "CreateRequest is used to create an instance of quota", "x-displayname": "Create Request.", "x-ves-proto-message": "ves.io.schema.quota.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/schemaquotaCreateSpecType" } ], "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 quotaCreateRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for quotaCreateRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "billing_and_usage", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Quotas are platform-level limits" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "quotaCreateResponse": { "type": "object", "x-ves-proto-message": "ves.io.schema.quota.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/schemaquotaGetSpecType" } ], "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 quotaCreateResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for quotaCreateResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "billing_and_usage", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Quotas are platform-level limits" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "quotaDeleteRequest": { "type": "object", "description": "This is the input message of the 'DELETE' RPC.", "title": "DeleteRequest is used to delete a quota", "x-displayname": "DELETE Request.", "x-ves-proto-message": "ves.io.schema.quota.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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for quotaDeleteRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for quotaDeleteRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "billing_and_usage", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Quotas are platform-level limits" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "quotaGetQuotaLimitsResponse": { "type": "object", "description": "Map of quotas that are assigned for the current tenant and namespace.", "title": "GetQuotaLimitsResponse", "x-displayname": "GET Quotas Limits Response.", "x-ves-proto-message": "ves.io.schema.quota.GetQuotaLimitsResponse", "properties": { "api_limits": { "type": "object", "description": "APILimits object.\nDeprecated by 'APIs'", "title": "APILimits object", "x-displayname": "API Limits.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "apis": { "type": "object", "description": "Configured rate limits for APIs.", "title": "apis", "x-displayname": "APIs", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "float_quota_usage": { "type": "object", "description": "FloatQuotaUsage object.\nDeprecated by 'resources'", "title": "FloatQuotaUsage object", "x-displayname": "Float Quota Usage.", "x-f5xc-description-short": "FloatQuotaUsage object. Deprecated by 'resources'", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "objects": { "type": "object", "description": "Configured limits for object instances.", "title": "objects", "x-displayname": "Object limits.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "quota_usage": { "type": "object", "description": "QuotaUsage object.\nDeprecated by 'objects'", "title": "QuotaUsage object", "x-displayname": "Qouta Usage.", "x-f5xc-description-short": "QuotaUsage object. Deprecated by 'objects'", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "resources": { "type": "object", "description": "Configured limits for resources if relevant.", "title": "resources", "x-displayname": "Resource limits.", "x-f5xc-description-short": "Configured limits for resources if relevant.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Map of quotas that are assigned for the current tenant and namespace.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for quotaGetQuotaLimitsResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for quotaGetQuotaLimitsResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "billing_and_usage", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Quotas are platform-level limits" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "quotaGetResponse": { "type": "object", "description": "This is the output message of the 'GET' RPC.", "title": "GetResponse is the shape of a read quota", "x-displayname": "GET Response.", "x-ves-proto-message": "ves.io.schema.quota.GetResponse", "properties": { "create_form": { "allOf": [ { "$ref": "#/components/schemas/quotaCreateRequest" } ], "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/quotaReplaceRequest" } ], "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/schemaquotaGetSpecType" } ], "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/quotaStatusObject" }, "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-08-20T09:12:47+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 quotaGetResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for quotaGetResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "billing_and_usage", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Quotas are platform-level limits" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "quotaGetResponseType": { "type": "object", "description": "User\": {limit: {maximum: 10}, usage: {number: 8}}, \"virtual_host\":{limit: {maximum: 12}, usage: {number: 6}}, \"domain\": {limit: {maximum: 7}, usage: {number: 5}}}\"\nMap of quotas that are assigned for the current tenant and namespace.", "title": "Get response", "x-displayname": "Quotas GET Response.", "x-ves-proto-message": "ves.io.schema.quota.GetResponseType", "properties": { "api_limits": { "type": "object", "description": "APILimits object.\nDeprecated by 'APIs'", "title": "APILimits object", "x-displayname": "API Limits.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "apis": { "type": "object", "description": "Configured rate limits for APIs.", "title": "apis", "x-displayname": "APIs", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "float_quota_usage": { "type": "object", "description": "UsageDataInFloat object.\nDeprecated by 'resources'", "title": "UsageDataInFloat object", "x-displayname": "Usage Data in float.", "x-f5xc-description-short": "UsageDataInFloat object. Deprecated by 'resources'", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "objects": { "type": "object", "description": "Configured limits for object instances and current usage.", "title": "objects", "x-displayname": "Object limits and usage.", "x-f5xc-description-short": "Configured limits for object instances and current usage.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "quota_usage": { "type": "object", "description": "UsageData object.\nDeprecated by 'objects'", "title": "UsageData object", "x-displayname": "Usage Data.", "x-f5xc-description-short": "UsageData object. Deprecated by 'objects'", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "resources": { "type": "object", "description": "Configured limits for resources and current usage if relevant.", "title": "resources", "x-displayname": "Resource limits and usage.", "x-f5xc-description-short": "Configured limits for resources and current usage if relevant.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-example": "{", "x-f5xc-description-short": "User\": {limit: {maximum: 10}, usage: {number: 8}}, \"virtual_host\":{limit: {maximum: 12}, usage: {number: 6}}, \"domain\": {limit: {maximum: 7}...", "x-f5xc-description-medium": "User\": {limit: {maximum: 10}, usage: {number: 8}}, \"virtual_host\":{limit: {maximum: 12}, usage: {number: 6}}, \"domain\": {limit: {maximum: 7}, usage: {number: 5}}}\" Map of quotas that are assigned for the current tenant and namespace.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for quotaGetResponseType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for quotaGetResponseType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "billing_and_usage", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Quotas are platform-level limits" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "quotaListResponse": { "type": "object", "description": "This is the output message of 'List' RPC.", "title": "ListResponse is the collection of quota", "x-displayname": "List Response.", "x-ves-proto-message": "ves.io.schema.quota.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/quotaListResponseItem" }, "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for quotaListResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for quotaListResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "billing_and_usage", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Quotas are platform-level limits" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "quotaListResponseItem": { "type": "object", "description": "By default a summary of quota 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 quota", "x-displayname": "List Item", "x-ves-proto-message": "ves.io.schema.quota.ListResponseItem", "properties": { "annotations": { "type": "object", "description": "The set of annotations present on this quota.", "title": "annotations", "x-displayname": "Annotations.", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "The set of annotations present on this quota.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "description": { "type": "string", "description": "The description set for this quota.", "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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "disabled": { "type": "boolean", "description": "A value of true indicates quota is administratively disabled.", "title": "disabled", "format": "boolean", "x-displayname": "Disabled", "x-f5xc-example": "True", "x-f5xc-description-short": "Value of true indicates quota is administratively disabled.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "get_spec": { "allOf": [ { "$ref": "#/components/schemas/schemaquotaGetSpecType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "labels": { "type": "object", "description": "The set of labels present on this quota.", "title": "labels", "x-displayname": "Labels", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "The set of labels present on this quota.", "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 quota.", "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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/quotaStatusObject" }, "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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "uid": { "type": "string", "description": "The unique uid of this quota.", "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-08-20T09:12:47+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-08-20T09:12:47+00:00" } }, "x-f5xc-description-short": "By default a summary of quota 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 quota 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 quotaListResponseItem", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for quotaListResponseItem\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "billing_and_usage", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Quotas are platform-level limits" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "quotaReplaceRequest": { "type": "object", "description": "This is the input message of the 'Replace' RPC.", "title": "ReplaceRequest is used to replace contents of a quota", "x-displayname": "Replace Request.", "x-ves-proto-message": "ves.io.schema.quota.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/schemaquotaReplaceSpecType" } ], "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 quotaReplaceRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for quotaReplaceRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "billing_and_usage", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Quotas are platform-level limits" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "quotaReplaceResponse": { "type": "object", "x-ves-proto-message": "ves.io.schema.quota.ReplaceResponse", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for quotaReplaceResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for quotaReplaceResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "billing_and_usage", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Quotas are platform-level limits" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "quotaStatusObject": { "type": "object", "title": "Most recently observed status of object", "x-ves-displayorder": "1,2,3", "x-ves-proto-message": "ves.io.schema.quota.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/schemaObjectRefType" }, "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 quotaStatusObject", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for quotaStatusObject\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "billing_and_usage", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Quotas are platform-level limits" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaConditionType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Quotas are platform-level limits" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "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_yaml": "# Minimal example for schemaErrorCode\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Quotas are platform-level limits" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for schemaErrorType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Quotas are platform-level limits" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaInitializerType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Quotas are platform-level limits" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "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_yaml": "# Minimal example for schemaInitializersType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Quotas are platform-level limits" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaObjectCreateMetaType\nmetadata:\n name: example\n namespace: default\nspec:\n name: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"name\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Quotas are platform-level limits" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaObjectGetMetaType\nmetadata:\n name: example\n namespace: default\nspec:\n name: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"name\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Quotas are platform-level limits" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaObjectRefType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Quotas are platform-level limits" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemaObjectReplaceMetaType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Quotas are platform-level limits" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaStatusMetaType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Quotas are platform-level limits" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "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_yaml": "# Minimal example for schemaStatusPublishType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Quotas are platform-level limits" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaStatusType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Quotas are platform-level limits" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaSystemObjectGetMetaType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Quotas are platform-level limits" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaViewRefType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Quotas are platform-level limits" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "schemaquotaCreateSpecType": { "type": "object", "description": "Create quota creates a given object from storage backend for metadata.namespace.", "title": "Create quota", "x-displayname": "Create Quota.", "x-ves-proto-message": "ves.io.schema.quota.CreateSpecType", "properties": { "api_limits": { "type": "object", "description": "API Limits defines ratelimit parameters for an API at the stdlib service\nThe key of the api_limits map is rpc FQN e.g. \"VES.I/o.schema.advertise_policy.api.create\"", "x-displayname": "API Limits.", "x-ves-validation-rules": { "ves.io.schema.rules.map.keys.string.max_len": "512", "ves.io.schema.rules.map.keys.string.min_len": "1", "ves.io.schema.rules.map.keys.string.pattern": "^[a-zA-Z][a-zA-Z0-9-._]*[a-zA-Z0-9]$" }, "x-validation-rules": { "ves.io.schema.rules.map.keys.string.max_len": "512", "ves.io.schema.rules.map.keys.string.min_len": "1", "ves.io.schema.rules.map.keys.string.pattern": "^[a-zA-Z][a-zA-Z0-9-._]*[a-zA-Z0-9]$" }, "x-f5xc-description-short": "API Limits defines ratelimit parameters for an API at the stdlib service The key of the api_limits map is rpc FQN e.g...", "x-f5xc-description-medium": "API Limits defines ratelimit parameters for an API at the stdlib service The key of the api_limits map is rpc FQN e.g. \"VES.I/o.schema.advertise_policy.api.create\".", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "object_limits": { "type": "object", "description": "Object Limits define maximum number of instances that can be present per object kind for the tenant\nThe key of the object_limits map is object kind e.g. \"virtual_host\"", "x-displayname": "Object Limits.", "x-ves-validation-rules": { "ves.io.schema.rules.map.keys.string.max_len": "512", "ves.io.schema.rules.map.keys.string.min_len": "1", "ves.io.schema.rules.map.keys.string.pattern": "^[a-zA-Z][a-zA-Z0-9-._]*[a-zA-Z0-9]$" }, "x-validation-rules": { "ves.io.schema.rules.map.keys.string.max_len": "512", "ves.io.schema.rules.map.keys.string.min_len": "1", "ves.io.schema.rules.map.keys.string.pattern": "^[a-zA-Z][a-zA-Z0-9-._]*[a-zA-Z0-9]$" }, "x-f5xc-description-short": "Object Limits define maximum number of instances that can be present per object kind for the tenant The key of the object_limits map is object...", "x-f5xc-description-medium": "Object Limits define maximum number of instances that can be present per object kind for the tenant The key of the object_limits map is object kind e.g. \"virtual_host\".", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "resource_limits": { "type": "object", "description": "Resource Limits define maximum value of resources in the appropriate units that can be present. The key of\nthe resource limits is the resource name.", "x-displayname": "Resource Limits.", "x-ves-validation-rules": { "ves.io.schema.rules.map.keys.string.max_len": "512", "ves.io.schema.rules.map.keys.string.min_len": "1", "ves.io.schema.rules.map.keys.string.pattern": "^[a-zA-Z][a-zA-Z0-9-._]*[a-zA-Z0-9]$" }, "x-validation-rules": { "ves.io.schema.rules.map.keys.string.max_len": "512", "ves.io.schema.rules.map.keys.string.min_len": "1", "ves.io.schema.rules.map.keys.string.pattern": "^[a-zA-Z][a-zA-Z0-9-._]*[a-zA-Z0-9]$" }, "x-f5xc-description-short": "Resource Limits define maximum value of resources in the appropriate units that can be present.", "x-f5xc-description-medium": "Resource Limits define maximum value of resources in the appropriate units that can be present. The key of the resource limits is the resource name.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Create quota creates a given object from storage backend for metadata.namespace.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for schemaquotaCreateSpecType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemaquotaCreateSpecType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "billing_and_usage", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Quotas are platform-level limits" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "schemaquotaGetSpecType": { "type": "object", "description": "GET quota reads a given object from storage backend for metadata.namespace.", "title": "Get quota", "x-displayname": "GET Quota", "x-ves-proto-message": "ves.io.schema.quota.GetSpecType", "properties": { "api_limits": { "type": "object", "description": "API Limits defines ratelimit parameters for an API at the stdlib service\nThe key of the api_limits map is rpc FQN e.g. \"VES.I/o.schema.advertise_policy.api.create\"", "x-displayname": "API Limits.", "x-ves-validation-rules": { "ves.io.schema.rules.map.keys.string.max_len": "512", "ves.io.schema.rules.map.keys.string.min_len": "1", "ves.io.schema.rules.map.keys.string.pattern": "^[a-zA-Z][a-zA-Z0-9-._]*[a-zA-Z0-9]$" }, "x-validation-rules": { "ves.io.schema.rules.map.keys.string.max_len": "512", "ves.io.schema.rules.map.keys.string.min_len": "1", "ves.io.schema.rules.map.keys.string.pattern": "^[a-zA-Z][a-zA-Z0-9-._]*[a-zA-Z0-9]$" }, "x-f5xc-description-short": "API Limits defines ratelimit parameters for an API at the stdlib service The key of the api_limits map is rpc FQN e.g...", "x-f5xc-description-medium": "API Limits defines ratelimit parameters for an API at the stdlib service The key of the api_limits map is rpc FQN e.g. \"VES.I/o.schema.advertise_policy.api.create\".", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "object_limits": { "type": "object", "description": "Object Limits define maximum number of instances that can be present per object kind for the tenant\nThe key of the object_limits map is object kind e.g. \"virtual_host\"", "x-displayname": "Object Limits.", "x-ves-validation-rules": { "ves.io.schema.rules.map.keys.string.max_len": "512", "ves.io.schema.rules.map.keys.string.min_len": "1", "ves.io.schema.rules.map.keys.string.pattern": "^[a-zA-Z][a-zA-Z0-9-._]*[a-zA-Z0-9]$" }, "x-validation-rules": { "ves.io.schema.rules.map.keys.string.max_len": "512", "ves.io.schema.rules.map.keys.string.min_len": "1", "ves.io.schema.rules.map.keys.string.pattern": "^[a-zA-Z][a-zA-Z0-9-._]*[a-zA-Z0-9]$" }, "x-f5xc-description-short": "Object Limits define maximum number of instances that can be present per object kind for the tenant The key of the object_limits map is object...", "x-f5xc-description-medium": "Object Limits define maximum number of instances that can be present per object kind for the tenant The key of the object_limits map is object kind e.g. \"virtual_host\".", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "resource_limits": { "type": "object", "description": "Resource Limits define maximum value of resources in the appropriate units that can be present. The key of\nthe resource limits is the resource name.", "x-displayname": "Resource Limits.", "x-ves-validation-rules": { "ves.io.schema.rules.map.keys.string.max_len": "512", "ves.io.schema.rules.map.keys.string.min_len": "1", "ves.io.schema.rules.map.keys.string.pattern": "^[a-zA-Z][a-zA-Z0-9-._]*[a-zA-Z0-9]$" }, "x-validation-rules": { "ves.io.schema.rules.map.keys.string.max_len": "512", "ves.io.schema.rules.map.keys.string.min_len": "1", "ves.io.schema.rules.map.keys.string.pattern": "^[a-zA-Z][a-zA-Z0-9-._]*[a-zA-Z0-9]$" }, "x-f5xc-description-short": "Resource Limits define maximum value of resources in the appropriate units that can be present.", "x-f5xc-description-medium": "Resource Limits define maximum value of resources in the appropriate units that can be present. The key of the resource limits is the resource name.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "GET quota reads a given object from storage backend for metadata.namespace.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for schemaquotaGetSpecType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemaquotaGetSpecType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "billing_and_usage", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Quotas are platform-level limits" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "schemaquotaReplaceSpecType": { "type": "object", "description": "Replace quota updates a given object from storage backend for metadata.namespace.", "title": "Replace quota", "x-displayname": "Replace Quota.", "x-ves-proto-message": "ves.io.schema.quota.ReplaceSpecType", "properties": { "api_limits": { "type": "object", "description": "API Limits defines ratelimit parameters for an API at the stdlib service\nThe key of the api_limits map is rpc FQN e.g. \"VES.I/o.schema.advertise_policy.api.create\"", "x-displayname": "API Limits.", "x-ves-validation-rules": { "ves.io.schema.rules.map.keys.string.max_len": "512", "ves.io.schema.rules.map.keys.string.min_len": "1", "ves.io.schema.rules.map.keys.string.pattern": "^[a-zA-Z][a-zA-Z0-9-._]*[a-zA-Z0-9]$" }, "x-validation-rules": { "ves.io.schema.rules.map.keys.string.max_len": "512", "ves.io.schema.rules.map.keys.string.min_len": "1", "ves.io.schema.rules.map.keys.string.pattern": "^[a-zA-Z][a-zA-Z0-9-._]*[a-zA-Z0-9]$" }, "x-f5xc-description-short": "API Limits defines ratelimit parameters for an API at the stdlib service The key of the api_limits map is rpc FQN e.g...", "x-f5xc-description-medium": "API Limits defines ratelimit parameters for an API at the stdlib service The key of the api_limits map is rpc FQN e.g. \"VES.I/o.schema.advertise_policy.api.create\".", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "object_limits": { "type": "object", "description": "Object Limits define maximum number of instances that can be present per object kind for the tenant\nThe key of the object_limits map is object kind e.g. \"virtual_host\"", "x-displayname": "Object Limits.", "x-ves-validation-rules": { "ves.io.schema.rules.map.keys.string.max_len": "512", "ves.io.schema.rules.map.keys.string.min_len": "1", "ves.io.schema.rules.map.keys.string.pattern": "^[a-zA-Z][a-zA-Z0-9-._]*[a-zA-Z0-9]$" }, "x-validation-rules": { "ves.io.schema.rules.map.keys.string.max_len": "512", "ves.io.schema.rules.map.keys.string.min_len": "1", "ves.io.schema.rules.map.keys.string.pattern": "^[a-zA-Z][a-zA-Z0-9-._]*[a-zA-Z0-9]$" }, "x-f5xc-description-short": "Object Limits define maximum number of instances that can be present per object kind for the tenant The key of the object_limits map is object...", "x-f5xc-description-medium": "Object Limits define maximum number of instances that can be present per object kind for the tenant The key of the object_limits map is object kind e.g. \"virtual_host\".", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "resource_limits": { "type": "object", "description": "Resource Limits define maximum value of resources in the appropriate units that can be present. The key of\nthe resource limits is the resource name.", "x-displayname": "Resource Limits.", "x-ves-validation-rules": { "ves.io.schema.rules.map.keys.string.max_len": "512", "ves.io.schema.rules.map.keys.string.min_len": "1", "ves.io.schema.rules.map.keys.string.pattern": "^[a-zA-Z][a-zA-Z0-9-._]*[a-zA-Z0-9]$" }, "x-validation-rules": { "ves.io.schema.rules.map.keys.string.max_len": "512", "ves.io.schema.rules.map.keys.string.min_len": "1", "ves.io.schema.rules.map.keys.string.pattern": "^[a-zA-Z][a-zA-Z0-9-._]*[a-zA-Z0-9]$" }, "x-f5xc-description-short": "Resource Limits define maximum value of resources in the appropriate units that can be present.", "x-f5xc-description-medium": "Resource Limits define maximum value of resources in the appropriate units that can be present. The key of the resource limits is the resource name.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Replace quota updates a given object from storage backend for metadata.namespace.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for schemaquotaReplaceSpecType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemaquotaReplaceSpecType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "billing_and_usage", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Quotas are platform-level limits" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "subscriptionListSubscriptionsRsp": { "type": "object", "description": "Response to call to GET list of tenant subscriptions.", "title": "List subscription response", "x-displayname": "List subscription response.", "x-ves-proto-message": "ves.io.schema.usage.subscription.ListSubscriptionsRsp", "properties": { "subscriptions": { "type": "array", "items": { "$ref": "#/components/schemas/subscriptionSubscriptionType" }, "description": "IP address configuration", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Response to call to GET list of tenant subscriptions.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for subscriptionListSubscriptionsRsp", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for subscriptionListSubscriptionsRsp\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "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" } } }, "subscriptionPeriod": { "type": "object", "description": "Response to call to GET list of tenant subscriptions.", "title": "List subscription response", "x-displayname": "List subscription response.", "x-ves-proto-message": "ves.io.schema.usage.subscription.Period", "properties": { "closed_invoice": { "type": "array", "description": "Link to the closed invoice.", "title": "Closed invoices", "items": { "type": "string" }, "x-displayname": "Closed invoices.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "end_date": { "type": "string", "description": "Kast day of the last billing_period in external provider.", "title": "End date", "format": "date-time", "x-displayname": "End date", "x-ves-example": "2020-05-20T12:32:51.341959216Z.", "x-f5xc-example": "2020-05-20T12:32:51.341959216Z", "x-f5xc-description-short": "Kast day of the last billing_period in external provider.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "format": "date-time", "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "internal_end_date": { "type": "string", "description": "Internal end date that serves as source of truth.", "title": "Internal end date", "format": "date-time", "x-displayname": "Internal end date.", "x-ves-example": "2020-05-20T12:32:51.341959216Z.", "x-f5xc-example": "2020-05-20T12:32:51.341959216Z", "x-f5xc-description-short": "Internal end date that serves as source of truth.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "format": "date-time", "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "internal_start_date": { "type": "string", "description": "Internal start date that serves as source of truth.", "title": "Internal start date", "format": "date-time", "x-displayname": "Internal start date.", "x-ves-example": "2020-05-20T12:32:51.341959216Z.", "x-f5xc-example": "2020-05-20T12:32:51.341959216Z", "x-f5xc-description-short": "Internal start date that serves as source of truth.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "format": "date-time", "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "invoices": { "type": "array", "description": "Link to all of the invoices for this period.", "title": "Invoices", "items": { "type": "string" }, "x-displayname": "Invoices", "x-f5xc-description-short": "Link to all of the invoices for this period.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "pending_invoice": { "type": "array", "description": "Link to the pending invoice.", "title": "Open invoices", "items": { "type": "string" }, "x-displayname": "Open invoices.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "start_date": { "type": "string", "description": "The first day of the last billing_period in external provider.", "title": "Start date", "format": "date-time", "x-displayname": "Start date.", "x-ves-example": "2020-05-20T12:32:51.341959216Z.", "x-f5xc-example": "2020-05-20T12:32:51.341959216Z", "x-f5xc-description-short": "The first day of the last billing_period in external provider.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "format": "date-time", "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "trial": { "type": "boolean", "description": "Flag shows if this billing time frame is part of trial period.", "title": "Trial", "format": "boolean", "x-displayname": "Trial", "x-f5xc-description-short": "Flag shows if this billing time frame is part of trial period.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "uid": { "type": "string", "description": "Unique identifier of this time frame.", "title": "UUID", "x-displayname": "UUID", "x-ves-example": "00000000-0000-4000-8000-c698bccc2be4.", "x-f5xc-example": "00000000-0000-4000-8000-c698bccc2be4", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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-08-20T09:12:47+00:00" } }, "x-f5xc-description-short": "Response to call to GET list of tenant subscriptions.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for subscriptionPeriod", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for subscriptionPeriod\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "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" } } }, "subscriptionSubscriptionType": { "type": "object", "description": "Tenant subscription to the services record.", "title": "Subscription record", "x-displayname": "Subscription.", "x-ves-proto-message": "ves.io.schema.usage.subscription.SubscriptionType", "properties": { "cancellation_date": { "type": "string", "description": "Date when subscription become cancelled.", "title": "Cancellation date", "format": "date-time", "x-displayname": "Cancellation date.", "x-ves-example": "2020-04-20T12:32:51.341959216Z.", "x-f5xc-example": "2020-04-20T12:32:51.341959216Z", "x-f5xc-description-short": "Date when subscription become cancelled.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "format": "date-time", "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "cancelled": { "type": "boolean", "description": "Flag shows if this subscription is already cancelled.", "title": "Cancelled", "format": "boolean", "x-displayname": "Cancelled", "x-f5xc-description-short": "Flag shows if this subscription is already cancelled.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "current": { "type": "boolean", "description": "Flag shows if this subscription is currently active.", "title": "Current", "format": "boolean", "x-displayname": "Current", "x-f5xc-description-short": "Flag shows if this subscription is currently active.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "last_billing_period_end_date": { "type": "string", "description": "The last day of the last billing_period.", "title": "Billing period end date", "format": "date-time", "x-displayname": "Billing period end date.", "x-ves-example": "2020-05-20T12:32:51.341959216Z.", "x-f5xc-example": "2020-05-20T12:32:51.341959216Z", "x-f5xc-description-short": "The last day of the last billing_period.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "format": "date-time", "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "last_billing_period_start_date": { "type": "string", "description": "The first day of the last billing_period.", "title": "Billing period start date", "format": "date-time", "x-displayname": "Billing period start date.", "x-ves-example": "2020-04-20T12:32:51.341959216Z.", "x-f5xc-example": "2020-04-20T12:32:51.341959216Z", "x-f5xc-description-short": "The first day of the last billing_period.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "format": "date-time", "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "name": { "type": "string", "description": "Name of the subscription (internal name, not human readable), a subscription has no human readable name.", "title": "Name", "x-displayname": "Name", "x-ves-example": "Sub-name-00000000-0000-4000-8000-727ea87b3b37.", "x-f5xc-example": "sub-name-00000000-0000-4000-8000-727ea87b3b37", "x-f5xc-description-short": "Name of the subscription (internal name, not human readable), a subscription has no human readable name.", "x-f5xc-description-medium": "Name of the subscription (internal name, not human readable), a subscription has no human readable 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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" }, "plan_name": { "type": "string", "description": "Plan name", "title": "Plan name", "x-displayname": "Plan name", "x-ves-example": "Teams plan.", "x-f5xc-example": "Teams plan", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "plan_object_name": { "type": "string", "description": "Plan object name.", "title": "Plan object name", "x-displayname": "Plan object name.", "x-ves-example": "Plan-00000000-0000-4000-8000-204b781243ce.", "x-f5xc-example": "plan-00000000-0000-4000-8000-204b781243ce", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "previous_billing_periods": { "type": "array", "description": "List of the previous billing periods.", "title": "Previous billing periods", "items": { "$ref": "#/components/schemas/subscriptionPeriod" }, "x-displayname": "Previous billing periods.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "start_date": { "type": "string", "description": "Date when subscription become active.", "title": "Start date", "format": "date-time", "x-displayname": "Start date.", "x-ves-example": "2020-04-20T12:32:51.341959216Z.", "x-f5xc-example": "2020-04-20T12:32:51.341959216Z", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "format": "date-time", "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Tenant subscription to the services record.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for subscriptionSubscriptionType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for subscriptionSubscriptionType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "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" } } }, "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_yaml": "# Minimal example for schemaEmpty\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Quotas are platform-level limits" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "subscriptionSubscribeRequest__ves_io_schema_subscription": { "type": "object", "description": "Request to subscribe to one of addon services.", "title": "SubscribeRequest", "x-displayname": "Subscribe request.", "x-ves-oneof-field-addon_choice": "[\"f5xc_appstack_standard\",\"f5xc_big_ip_irule_standard\",\"f5xc_bigip_utilities_standard\",\"f5xc_content_delivery_network_advanced\",\"f5xc_content_delivery_network_standard\",\"f5xc_delegated_access_standard\",\"f5xc_securemesh_advanced\",\"f5xc_securemesh_standard\",\"f5xc_site_management_standard\",\"f5xc_synthetic_monitoring_standard\",\"f5xc_waap_advanced\",\"f5xc_waap_standard\",\"f5xc_web_app_scanning_standard\"]", "x-ves-proto-message": "ves.io.schema.subscription.SubscribeRequest", "properties": { "f5xc_appstack_standard": { "allOf": [ { "$ref": "#/components/schemas/schemaEmpty" } ], "x-f5xc-description-short": "Configuration parameter for f5xc appstack standard.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "f5xc_big_ip_irule_standard", "f5xc_bigip_utilities_standard", "f5xc_content_delivery_network_advanced", "f5xc_content_delivery_network_standard", "f5xc_delegated_access_standard", "f5xc_securemesh_advanced", "f5xc_securemesh_standard", "f5xc_site_management_standard", "f5xc_synthetic_monitoring_standard", "f5xc_waap_advanced", "f5xc_waap_standard", "f5xc_web_app_scanning_standard" ] }, "f5xc_big_ip_irule_standard": { "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": [ "f5xc_appstack_standard", "f5xc_bigip_utilities_standard", "f5xc_content_delivery_network_advanced", "f5xc_content_delivery_network_standard", "f5xc_delegated_access_standard", "f5xc_securemesh_advanced", "f5xc_securemesh_standard", "f5xc_site_management_standard", "f5xc_synthetic_monitoring_standard", "f5xc_waap_advanced", "f5xc_waap_standard", "f5xc_web_app_scanning_standard" ] }, "f5xc_bigip_utilities_standard": { "allOf": [ { "$ref": "#/components/schemas/schemaEmpty" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "f5xc_appstack_standard", "f5xc_big_ip_irule_standard", "f5xc_content_delivery_network_advanced", "f5xc_content_delivery_network_standard", "f5xc_delegated_access_standard", "f5xc_securemesh_advanced", "f5xc_securemesh_standard", "f5xc_site_management_standard", "f5xc_synthetic_monitoring_standard", "f5xc_waap_advanced", "f5xc_waap_standard", "f5xc_web_app_scanning_standard" ] }, "f5xc_content_delivery_network_advanced": { "allOf": [ { "$ref": "#/components/schemas/schemaEmpty" } ], "x-f5xc-description-short": "Configuration parameter for f5xc content delivery network advanced.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "f5xc_appstack_standard", "f5xc_big_ip_irule_standard", "f5xc_bigip_utilities_standard", "f5xc_content_delivery_network_standard", "f5xc_delegated_access_standard", "f5xc_securemesh_advanced", "f5xc_securemesh_standard", "f5xc_site_management_standard", "f5xc_synthetic_monitoring_standard", "f5xc_waap_advanced", "f5xc_waap_standard", "f5xc_web_app_scanning_standard" ] }, "f5xc_content_delivery_network_standard": { "allOf": [ { "$ref": "#/components/schemas/schemaEmpty" } ], "x-f5xc-description-short": "Configuration parameter for f5xc content delivery network standard.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "f5xc_appstack_standard", "f5xc_big_ip_irule_standard", "f5xc_bigip_utilities_standard", "f5xc_content_delivery_network_advanced", "f5xc_delegated_access_standard", "f5xc_securemesh_advanced", "f5xc_securemesh_standard", "f5xc_site_management_standard", "f5xc_synthetic_monitoring_standard", "f5xc_waap_advanced", "f5xc_waap_standard", "f5xc_web_app_scanning_standard" ] }, "f5xc_delegated_access_standard": { "allOf": [ { "$ref": "#/components/schemas/schemaEmpty" } ], "x-f5xc-description-short": "Configuration parameter for f5xc delegated access standard.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "f5xc_appstack_standard", "f5xc_big_ip_irule_standard", "f5xc_bigip_utilities_standard", "f5xc_content_delivery_network_advanced", "f5xc_content_delivery_network_standard", "f5xc_securemesh_advanced", "f5xc_securemesh_standard", "f5xc_site_management_standard", "f5xc_synthetic_monitoring_standard", "f5xc_waap_advanced", "f5xc_waap_standard", "f5xc_web_app_scanning_standard" ] }, "f5xc_securemesh_advanced": { "allOf": [ { "$ref": "#/components/schemas/schemaEmpty" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "f5xc_appstack_standard", "f5xc_big_ip_irule_standard", "f5xc_bigip_utilities_standard", "f5xc_content_delivery_network_advanced", "f5xc_content_delivery_network_standard", "f5xc_delegated_access_standard", "f5xc_securemesh_standard", "f5xc_site_management_standard", "f5xc_synthetic_monitoring_standard", "f5xc_waap_advanced", "f5xc_waap_standard", "f5xc_web_app_scanning_standard" ] }, "f5xc_securemesh_standard": { "allOf": [ { "$ref": "#/components/schemas/schemaEmpty" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "f5xc_appstack_standard", "f5xc_big_ip_irule_standard", "f5xc_bigip_utilities_standard", "f5xc_content_delivery_network_advanced", "f5xc_content_delivery_network_standard", "f5xc_delegated_access_standard", "f5xc_securemesh_advanced", "f5xc_site_management_standard", "f5xc_synthetic_monitoring_standard", "f5xc_waap_advanced", "f5xc_waap_standard", "f5xc_web_app_scanning_standard" ] }, "f5xc_site_management_standard": { "allOf": [ { "$ref": "#/components/schemas/schemaEmpty" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "f5xc_appstack_standard", "f5xc_big_ip_irule_standard", "f5xc_bigip_utilities_standard", "f5xc_content_delivery_network_advanced", "f5xc_content_delivery_network_standard", "f5xc_delegated_access_standard", "f5xc_securemesh_advanced", "f5xc_securemesh_standard", "f5xc_synthetic_monitoring_standard", "f5xc_waap_advanced", "f5xc_waap_standard", "f5xc_web_app_scanning_standard" ] }, "f5xc_synthetic_monitoring_standard": { "allOf": [ { "$ref": "#/components/schemas/schemaEmpty" } ], "x-f5xc-description-short": "Configuration parameter for f5xc synthetic monitoring standard.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "f5xc_appstack_standard", "f5xc_big_ip_irule_standard", "f5xc_bigip_utilities_standard", "f5xc_content_delivery_network_advanced", "f5xc_content_delivery_network_standard", "f5xc_delegated_access_standard", "f5xc_securemesh_advanced", "f5xc_securemesh_standard", "f5xc_site_management_standard", "f5xc_waap_advanced", "f5xc_waap_standard", "f5xc_web_app_scanning_standard" ] }, "f5xc_waap_advanced": { "allOf": [ { "$ref": "#/components/schemas/schemaEmpty" } ], "x-f5xc-description-short": "Configuration parameter for f5xc waap advanced.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "f5xc_appstack_standard", "f5xc_big_ip_irule_standard", "f5xc_bigip_utilities_standard", "f5xc_content_delivery_network_advanced", "f5xc_content_delivery_network_standard", "f5xc_delegated_access_standard", "f5xc_securemesh_advanced", "f5xc_securemesh_standard", "f5xc_site_management_standard", "f5xc_synthetic_monitoring_standard", "f5xc_waap_standard", "f5xc_web_app_scanning_standard" ] }, "f5xc_waap_standard": { "allOf": [ { "$ref": "#/components/schemas/schemaEmpty" } ], "x-f5xc-description-short": "Configuration parameter for f5xc waap standard.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "f5xc_appstack_standard", "f5xc_big_ip_irule_standard", "f5xc_bigip_utilities_standard", "f5xc_content_delivery_network_advanced", "f5xc_content_delivery_network_standard", "f5xc_delegated_access_standard", "f5xc_securemesh_advanced", "f5xc_securemesh_standard", "f5xc_site_management_standard", "f5xc_synthetic_monitoring_standard", "f5xc_waap_advanced", "f5xc_web_app_scanning_standard" ] }, "f5xc_web_app_scanning_standard": { "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": [ "f5xc_appstack_standard", "f5xc_big_ip_irule_standard", "f5xc_bigip_utilities_standard", "f5xc_content_delivery_network_advanced", "f5xc_content_delivery_network_standard", "f5xc_delegated_access_standard", "f5xc_securemesh_advanced", "f5xc_securemesh_standard", "f5xc_site_management_standard", "f5xc_synthetic_monitoring_standard", "f5xc_waap_advanced", "f5xc_waap_standard" ] } }, "x-f5xc-description-short": "Request to subscribe to one of addon services.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for subscriptionSubscribeRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for subscriptionSubscribeRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "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_subscription": { "type": "object", "description": "Response for subscribe.", "title": "SubscribeResponse", "x-displayname": "Subscribe response.", "x-ves-proto-message": "ves.io.schema.subscription.SubscribeResponse", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for subscriptionSubscribeResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for subscriptionSubscribeResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "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_subscription": { "type": "object", "description": "Request to unsubscribe to one of addon services.", "title": "UnsubscribeRequest", "x-displayname": "Unsubscribe request.", "x-ves-oneof-field-addon_choice": "[\"f5xc_appstack_standard\",\"f5xc_big_ip_irule_standard\",\"f5xc_bigip_utilities_standard\",\"f5xc_content_delivery_network_advanced\",\"f5xc_content_delivery_network_standard\",\"f5xc_delegated_access_standard\",\"f5xc_securemesh_advanced\",\"f5xc_securemesh_standard\",\"f5xc_site_management_standard\",\"f5xc_synthetic_monitoring_standard\",\"f5xc_waap_advanced\",\"f5xc_waap_standard\",\"f5xc_web_app_scanning_standard\"]", "x-ves-proto-message": "ves.io.schema.subscription.UnsubscribeRequest", "properties": { "f5xc_appstack_standard": { "allOf": [ { "$ref": "#/components/schemas/schemaEmpty" } ], "x-f5xc-description-short": "Configuration parameter for f5xc appstack standard.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "f5xc_big_ip_irule_standard", "f5xc_bigip_utilities_standard", "f5xc_content_delivery_network_advanced", "f5xc_content_delivery_network_standard", "f5xc_delegated_access_standard", "f5xc_securemesh_advanced", "f5xc_securemesh_standard", "f5xc_site_management_standard", "f5xc_synthetic_monitoring_standard", "f5xc_waap_advanced", "f5xc_waap_standard", "f5xc_web_app_scanning_standard" ] }, "f5xc_big_ip_irule_standard": { "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": [ "f5xc_appstack_standard", "f5xc_bigip_utilities_standard", "f5xc_content_delivery_network_advanced", "f5xc_content_delivery_network_standard", "f5xc_delegated_access_standard", "f5xc_securemesh_advanced", "f5xc_securemesh_standard", "f5xc_site_management_standard", "f5xc_synthetic_monitoring_standard", "f5xc_waap_advanced", "f5xc_waap_standard", "f5xc_web_app_scanning_standard" ] }, "f5xc_bigip_utilities_standard": { "allOf": [ { "$ref": "#/components/schemas/schemaEmpty" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "f5xc_appstack_standard", "f5xc_big_ip_irule_standard", "f5xc_content_delivery_network_advanced", "f5xc_content_delivery_network_standard", "f5xc_delegated_access_standard", "f5xc_securemesh_advanced", "f5xc_securemesh_standard", "f5xc_site_management_standard", "f5xc_synthetic_monitoring_standard", "f5xc_waap_advanced", "f5xc_waap_standard", "f5xc_web_app_scanning_standard" ] }, "f5xc_content_delivery_network_advanced": { "allOf": [ { "$ref": "#/components/schemas/schemaEmpty" } ], "x-f5xc-description-short": "Configuration parameter for f5xc content delivery network advanced.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "f5xc_appstack_standard", "f5xc_big_ip_irule_standard", "f5xc_bigip_utilities_standard", "f5xc_content_delivery_network_standard", "f5xc_delegated_access_standard", "f5xc_securemesh_advanced", "f5xc_securemesh_standard", "f5xc_site_management_standard", "f5xc_synthetic_monitoring_standard", "f5xc_waap_advanced", "f5xc_waap_standard", "f5xc_web_app_scanning_standard" ] }, "f5xc_content_delivery_network_standard": { "allOf": [ { "$ref": "#/components/schemas/schemaEmpty" } ], "x-f5xc-description-short": "Configuration parameter for f5xc content delivery network standard.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "f5xc_appstack_standard", "f5xc_big_ip_irule_standard", "f5xc_bigip_utilities_standard", "f5xc_content_delivery_network_advanced", "f5xc_delegated_access_standard", "f5xc_securemesh_advanced", "f5xc_securemesh_standard", "f5xc_site_management_standard", "f5xc_synthetic_monitoring_standard", "f5xc_waap_advanced", "f5xc_waap_standard", "f5xc_web_app_scanning_standard" ] }, "f5xc_delegated_access_standard": { "allOf": [ { "$ref": "#/components/schemas/schemaEmpty" } ], "x-f5xc-description-short": "Configuration parameter for f5xc delegated access standard.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "f5xc_appstack_standard", "f5xc_big_ip_irule_standard", "f5xc_bigip_utilities_standard", "f5xc_content_delivery_network_advanced", "f5xc_content_delivery_network_standard", "f5xc_securemesh_advanced", "f5xc_securemesh_standard", "f5xc_site_management_standard", "f5xc_synthetic_monitoring_standard", "f5xc_waap_advanced", "f5xc_waap_standard", "f5xc_web_app_scanning_standard" ] }, "f5xc_securemesh_advanced": { "allOf": [ { "$ref": "#/components/schemas/schemaEmpty" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "f5xc_appstack_standard", "f5xc_big_ip_irule_standard", "f5xc_bigip_utilities_standard", "f5xc_content_delivery_network_advanced", "f5xc_content_delivery_network_standard", "f5xc_delegated_access_standard", "f5xc_securemesh_standard", "f5xc_site_management_standard", "f5xc_synthetic_monitoring_standard", "f5xc_waap_advanced", "f5xc_waap_standard", "f5xc_web_app_scanning_standard" ] }, "f5xc_securemesh_standard": { "allOf": [ { "$ref": "#/components/schemas/schemaEmpty" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "f5xc_appstack_standard", "f5xc_big_ip_irule_standard", "f5xc_bigip_utilities_standard", "f5xc_content_delivery_network_advanced", "f5xc_content_delivery_network_standard", "f5xc_delegated_access_standard", "f5xc_securemesh_advanced", "f5xc_site_management_standard", "f5xc_synthetic_monitoring_standard", "f5xc_waap_advanced", "f5xc_waap_standard", "f5xc_web_app_scanning_standard" ] }, "f5xc_site_management_standard": { "allOf": [ { "$ref": "#/components/schemas/schemaEmpty" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "f5xc_appstack_standard", "f5xc_big_ip_irule_standard", "f5xc_bigip_utilities_standard", "f5xc_content_delivery_network_advanced", "f5xc_content_delivery_network_standard", "f5xc_delegated_access_standard", "f5xc_securemesh_advanced", "f5xc_securemesh_standard", "f5xc_synthetic_monitoring_standard", "f5xc_waap_advanced", "f5xc_waap_standard", "f5xc_web_app_scanning_standard" ] }, "f5xc_synthetic_monitoring_standard": { "allOf": [ { "$ref": "#/components/schemas/schemaEmpty" } ], "x-f5xc-description-short": "Configuration parameter for f5xc synthetic monitoring standard.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "f5xc_appstack_standard", "f5xc_big_ip_irule_standard", "f5xc_bigip_utilities_standard", "f5xc_content_delivery_network_advanced", "f5xc_content_delivery_network_standard", "f5xc_delegated_access_standard", "f5xc_securemesh_advanced", "f5xc_securemesh_standard", "f5xc_site_management_standard", "f5xc_waap_advanced", "f5xc_waap_standard", "f5xc_web_app_scanning_standard" ] }, "f5xc_waap_advanced": { "allOf": [ { "$ref": "#/components/schemas/schemaEmpty" } ], "x-f5xc-description-short": "Configuration parameter for f5xc waap advanced.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "f5xc_appstack_standard", "f5xc_big_ip_irule_standard", "f5xc_bigip_utilities_standard", "f5xc_content_delivery_network_advanced", "f5xc_content_delivery_network_standard", "f5xc_delegated_access_standard", "f5xc_securemesh_advanced", "f5xc_securemesh_standard", "f5xc_site_management_standard", "f5xc_synthetic_monitoring_standard", "f5xc_waap_standard", "f5xc_web_app_scanning_standard" ] }, "f5xc_waap_standard": { "allOf": [ { "$ref": "#/components/schemas/schemaEmpty" } ], "x-f5xc-description-short": "Configuration parameter for f5xc waap standard.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "f5xc_appstack_standard", "f5xc_big_ip_irule_standard", "f5xc_bigip_utilities_standard", "f5xc_content_delivery_network_advanced", "f5xc_content_delivery_network_standard", "f5xc_delegated_access_standard", "f5xc_securemesh_advanced", "f5xc_securemesh_standard", "f5xc_site_management_standard", "f5xc_synthetic_monitoring_standard", "f5xc_waap_advanced", "f5xc_web_app_scanning_standard" ] }, "f5xc_web_app_scanning_standard": { "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": [ "f5xc_appstack_standard", "f5xc_big_ip_irule_standard", "f5xc_bigip_utilities_standard", "f5xc_content_delivery_network_advanced", "f5xc_content_delivery_network_standard", "f5xc_delegated_access_standard", "f5xc_securemesh_advanced", "f5xc_securemesh_standard", "f5xc_site_management_standard", "f5xc_synthetic_monitoring_standard", "f5xc_waap_advanced", "f5xc_waap_standard" ] } }, "x-f5xc-description-short": "Request to unsubscribe to one of addon services.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for subscriptionUnsubscribeRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for subscriptionUnsubscribeRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "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_subscription": { "type": "object", "description": "Response for unsubscribe.", "title": "UnsubscribeResponse", "x-displayname": "Unsubscribe response.", "x-ves-proto-message": "ves.io.schema.subscription.UnsubscribeResponse", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for subscriptionUnsubscribeResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for subscriptionUnsubscribeResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "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" } } }, "schemausageStatusType": { "type": "string", "description": "All possible usage line statuses\n\n- STATUS_UNKNOWN: No value defined\n- STATUS_NO_DATA: No data\n- STATUS_NOT_MEASURED: No measured\n- STATUS_ACTIVE: Active.", "title": "Status type", "enum": [ "STATUS_UNKNOWN", "STATUS_NO_DATA", "STATUS_NOT_MEASURED", "STATUS_ACTIVE" ], "default": "STATUS_UNKNOWN", "x-displayname": "Status type.", "x-ves-proto-enum": "ves.io.schema.usage.StatusType", "x-f5xc-description-short": "All possible usage line statuses - STATUS_UNKNOWN: No value defined - STATUS_NO_DATA: No data - STATUS_NOT_MEASURED: No measured - STATUS_ACTIVE...", "x-f5xc-description-medium": "All possible usage line statuses - STATUS_UNKNOWN: No value defined - STATUS_NO_DATA: No data - STATUS_NOT_MEASURED: No measured - STATUS_ACTIVE: Active.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for schemausageStatusType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemausageStatusType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "billing_and_usage", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Quotas are platform-level limits" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "usageCalculatedUsageItem": { "type": "object", "description": "One line of usage, including pricing details.", "title": "CalculatedUsageItem", "x-displayname": "Usage item.", "x-ves-proto-message": "ves.io.schema.usage.CalculatedUsageItem", "properties": { "amount": { "type": "string", "description": "Cost as hundredths of currency.", "title": "Amount", "format": "int64", "x-displayname": "Amount", "x-ves-example": "1234", "x-f5xc-example": "1234", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "format": "int64", "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "currency_code": { "type": "string", "description": "ISO currency code.", "title": "Currency code", "x-displayname": "Currency code.", "x-ves-example": "USD", "x-f5xc-example": "USD", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "end_timestamp": { "type": "string", "description": "End of the time unit.", "title": "Timestamp end", "format": "date-time", "x-displayname": "End", "x-ves-example": "2020-04-20T12:32:51.341959216Z.", "x-f5xc-example": "2020-04-20T12:32:51.341959216Z", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "format": "date-time", "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "fixed": { "type": "boolean", "description": "Means that this data came not from usage (reserved flag for support/discount/onboarding fees)", "title": "Fixed", "format": "boolean", "x-displayname": "Fixes", "x-f5xc-description-short": "Means that this data came not from usage (reserved flag for support/discount/onboarding fees).", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "metric_labels": { "type": "array", "description": "ID of the corresponding aggregated_usage metric labels from which this calculated usage item is assembled.", "title": "Metric labels", "items": { "type": "string" }, "x-displayname": "Metric labels.", "x-ves-example": "['container-usage-large', 'container-usage-medium']", "x-f5xc-example": "['container-usage-large', 'container-usage-medium']", "x-f5xc-description-short": "ID of the corresponding aggregated_usage metric labels from which this calculated usage item is assembled.", "x-f5xc-description-medium": "ID of the corresponding aggregated_usage metric labels from which this calculated usage item is assembled.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "quantity": { "type": "number", "description": "Quantity incurred.", "title": "Quantity", "format": "double", "x-displayname": "Quantity", "x-ves-example": "100", "x-f5xc-example": "100", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "quantity_billable": { "type": "string", "description": "Quantity which is used to calculate the amount. Rounded from quantity as the following:\n* after converting quantity from unit_code to unit_code of this addon_id, if the value < 1, then\nquantity_billable is rounded to 1\n* after converting quantity from unit_code to unit_code of this addon_id, if the value > 1, then\nquantity_billable is rounded down to the nearest value.", "title": "Quantity billable", "format": "int64", "x-displayname": "Quantity billable.", "x-f5xc-example": "115", "x-f5xc-description-short": "Quantity which is used to calculate the amount.", "x-f5xc-description-medium": "Quantity which is used to calculate the amount. Rounded from quantity as the following: * after converting quantity from unit_code to unit_code of this addon_id, if the value < 1, then quantity_billable is rounded to 1 * after converting quantity from unit_code to unit_code of this addon_id, if...", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "format": "int64", "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "start_timestamp": { "type": "string", "description": "Beginning of the time unit.", "title": "Timestamp start", "format": "date-time", "x-displayname": "Start", "x-ves-example": "2020-04-20T12:32:51.341959216Z.", "x-f5xc-example": "2020-04-20T12:32:51.341959216Z", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "format": "date-time", "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "status": { "allOf": [ { "$ref": "#/components/schemas/schemausageStatusType" } ], "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-08-20T09:12:47+00:00" }, "unit_name": { "type": "string", "description": "Name of the quantity unit.", "title": "Unit name", "x-displayname": "Unit name", "x-ves-example": "MB", "x-f5xc-example": "MB", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "unit_name_billable": { "type": "string", "description": "Unit name a quantity_billable is provided in.", "title": "Unit name billable", "x-displayname": "Unit name billable.", "x-f5xc-example": "GB", "x-f5xc-description-short": "Unit name a quantity_billable is provided in.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "usage_type": { "type": "string", "description": "Type of the resource.", "title": "Usage type", "x-displayname": "Usage type.", "x-ves-example": "ADN App Mgmt - Customer Edge Large Containers.", "x-f5xc-example": "ADN App Mgmt - Customer Edge Large Containers", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "One line of usage, including pricing details.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for usageCalculatedUsageItem", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for usageCalculatedUsageItem\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "billing_and_usage", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Quotas are platform-level limits" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "usageCoupon": { "type": "object", "description": "Coupon details, discount type, amount and name.", "title": "Coupon", "x-displayname": "Coupon", "x-ves-proto-message": "ves.io.schema.usage.Coupon", "properties": { "discount_amount": { "type": "integer", "description": "[x-required]\nIf discount_type is fixed_amount, discount_amount is in cents\nIf discount_type is percentage, discount_amount is in percentages of 0.01% precision (12.35% equals to 1235)", "title": "Discount amount", "format": "int32", "x-displayname": "Discount amount.", "x-ves-example": "1234", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true" }, "x-f5xc-example": "1234", "x-validation-rules": { "ves.io.schema.rules.message.required": "true" }, "x-f5xc-description-short": "[x-required] If discount_type is fixed_amount, discount_amount is in cents If discount_type is percentage, discount_amount is in percentages of...", "x-f5xc-description-medium": "[x-required] If discount_type is fixed_amount, discount_amount is in cents If discount_type is percentage, discount_amount is in percentages of 0.01% precision (12.35% equals to 1235).", "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "discount_type": { "allOf": [ { "$ref": "#/components/schemas/usageDiscountType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "title": { "type": "string", "description": "Title (or name) of the coupon.", "title": "Title", "x-displayname": "Title", "x-ves-example": "Coupon 1", "x-f5xc-example": "Coupon 1", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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-08-20T09:12:47+00:00" } }, "x-f5xc-description-short": "Coupon details, discount type, amount and name.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for usageCoupon", "required_fields": [ "discount_amount" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for usageCoupon\nmetadata:\n name: example\n namespace: default\nspec:\n discount_amount: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"discount_amount\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "billing_and_usage", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Quotas are platform-level limits" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "usageDiscountType": { "type": "string", "description": "Indicates what type of discount is applied for a coupon: fixed price or percentage.\n\nUnknown\nThe specified amount will be given as discount.\nThe specified percentage will be given as discount.", "title": "Discount type", "enum": [ "DISCOUNT_TYPE_UNKNOWN", "DISCOUNT_TYPE_FIXED_AMOUNT", "DISCOUNT_TYPE_PERCENTAGE" ], "default": "DISCOUNT_TYPE_UNKNOWN", "x-displayname": "Discount type.", "x-ves-proto-enum": "ves.io.schema.usage.DiscountType", "x-f5xc-description-short": "Indicates what type of discount is applied for a coupon: fixed price or percentage.", "x-f5xc-description-medium": "Indicates what type of discount is applied for a coupon: fixed price or percentage. Unknown The specified amount will be given as discount. The specified percentage will be given as discount.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for usageDiscountType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for usageDiscountType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "billing_and_usage", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Quotas are platform-level limits" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "usageHourlyItem": { "type": "object", "description": "One line of usage by an hour. One hour as the least resolution.", "title": "Hourly usage item", "x-displayname": "Hourly usage item.", "x-ves-proto-message": "ves.io.schema.usage.HourlyItem", "properties": { "container": { "type": "string", "description": "Container name if this item correspond to the container usage. Otherwise it's empty.", "title": "Container", "x-displayname": "Container", "x-ves-example": "Pa4-deployment1-abcd12.", "x-f5xc-example": "pa4-deployment1-abcd12", "x-f5xc-description-short": "Container name if this item correspond to the container usage. Otherwise it's empty.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "deployment": { "type": "string", "description": "[x-required]\nDeployment name if this item correspond to the container usage. Otherwise it's empty.", "title": "Deployment", "x-displayname": "Deployment.", "x-ves-example": "Pa4-deployment1.", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true" }, "x-f5xc-example": "pa4-deployment1", "x-validation-rules": { "ves.io.schema.rules.message.required": "true" }, "x-f5xc-description-short": "[x-required] Deployment name if this item correspond to the container usage. Otherwise it's empty.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "end_timestamp": { "type": "string", "description": "End of the time unit.", "title": "Timestamp end", "format": "date-time", "x-displayname": "End", "x-ves-example": "2020-04-20T12:32:51.341959216Z.", "x-f5xc-example": "2020-04-20T12:32:51.341959216Z", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "format": "date-time", "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "quantity": { "type": "number", "description": "Quantity incurred.", "title": "Quantity", "format": "double", "x-displayname": "Quantity", "x-ves-example": "100", "x-f5xc-example": "100", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "start_timestamp": { "type": "string", "description": "Beginning of the time unit.", "title": "Timestamp start", "format": "date-time", "x-displayname": "Start", "x-ves-example": "2020-04-20T12:32:51.341959216Z.", "x-f5xc-example": "2020-04-20T12:32:51.341959216Z", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "format": "date-time", "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "unit_name": { "type": "string", "description": "Name of the quantity unit.", "title": "Unit name", "x-displayname": "Unit name", "x-ves-example": "MB", "x-f5xc-example": "MB", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "One line of usage by an hour. One hour as the least resolution.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for usageHourlyItem", "required_fields": [ "deployment" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for usageHourlyItem\nmetadata:\n name: example\n namespace: default\nspec:\n deployment: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"deployment\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "billing_and_usage", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Quotas are platform-level limits" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "usageListCurrentUsageReq": { "type": "object", "description": "Request message to GET current usage details.", "title": "List current usage details request", "x-displayname": "List current usage details request.", "x-ves-proto-message": "ves.io.schema.usage.ListCurrentUsageReq", "properties": { "from": { "type": "string", "description": "Indicates the \"from\" part of the request.", "title": "Timestamp from", "format": "date-time", "x-displayname": "From", "x-ves-example": "2020-04-20T12:32:51.341959216Z.", "x-f5xc-example": "2020-04-20T12:32:51.341959216Z", "x-f5xc-description-short": "Indicates the \"from\" part of the request.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "format": "date-time", "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "namespace": { "type": "string", "description": "Namespace to be considered.", "title": "Namespace", "x-displayname": "Namespace", "x-ves-example": "System", "x-ves-validation-rules": { "ves.io.schema.rules.string.const": "system" }, "x-f5xc-example": "system", "x-validation-rules": { "ves.io.schema.rules.string.const": "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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" }, "to": { "type": "string", "description": "Indicates the \"to\" part of the request.", "title": "Timestamp to", "format": "date-time", "x-displayname": "To", "x-ves-example": "2020-04-20T12:32:51.341959216Z.", "x-f5xc-example": "2020-04-20T12:32:51.341959216Z", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "format": "date-time", "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Request message to GET current usage details.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for usageListCurrentUsageReq", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for usageListCurrentUsageReq\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "billing_and_usage", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Quotas are platform-level limits" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "usageListCurrentUsageResp": { "type": "object", "description": "Response message to GET current usage details.", "title": "List current usage details response", "x-displayname": "List current usage details response.", "x-ves-proto-message": "ves.io.schema.usage.ListCurrentUsageResp", "properties": { "coupons": { "type": "array", "description": "All used coupons.", "title": "Coupons", "items": { "$ref": "#/components/schemas/usageCoupon" }, "x-displayname": "Coupons", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "discount": { "type": "string", "description": "Discount as hundredths of currency.", "title": "Discount", "format": "int64", "x-displayname": "Discount", "x-ves-example": "12345", "x-f5xc-example": "12345", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "format": "int64", "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "total_cost": { "type": "string", "description": "Total cost as hundredths of currency.", "title": "Total cost", "format": "int64", "x-displayname": "Total cost.", "x-ves-example": "12345", "x-f5xc-example": "12345", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "format": "int64", "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "usage_items": { "type": "array", "description": "Collection of usage items, lines of response.", "title": "Usage items", "items": { "$ref": "#/components/schemas/usageCalculatedUsageItem" }, "x-displayname": "Usage items.", "x-f5xc-description-short": "Collection of usage items, lines of response.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Response message to GET current usage details.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for usageListCurrentUsageResp", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for usageListCurrentUsageResp\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "billing_and_usage", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Quotas are platform-level limits" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "usageListHourlyUsageDetailsReq": { "type": "object", "description": "Request body for ListHourlyUsageDetails rpc method.", "title": "ListHourlyUsageDetailsReq", "x-displayname": "List Hourly Usage Details Request.", "x-ves-proto-message": "ves.io.schema.usage.ListHourlyUsageDetailsReq", "properties": { "namespace": { "type": "string", "description": "Namespace", "title": "Namespace", "x-displayname": "Namespace", "x-ves-example": "System", "x-ves-validation-rules": { "ves.io.schema.rules.string.const": "system" }, "x-f5xc-example": "system", "x-validation-rules": { "ves.io.schema.rules.string.const": "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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" }, "query": { "type": "string", "description": "Encoded query which is passed as is to barracute daemon.", "title": "query", "x-displayname": "Query", "x-ves-example": "{'MetricLabel':'label'}", "x-f5xc-example": "{'MetricLabel':'label'}", "x-f5xc-description-short": "Encoded query which is passed as is to barracute daemon.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "content", "maxLength": 1024, "minLength": 0, "metadata": { "source": "inferred", "confidence": 0.75, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Request body for ListHourlyUsageDetails rpc method.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for usageListHourlyUsageDetailsReq", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for usageListHourlyUsageDetailsReq\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "billing_and_usage", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Quotas are platform-level limits" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "usageListHourlyUsageDetailsResp": { "type": "object", "description": "Response body for ListHourlyUsageDetails rpc method.", "title": "List Hourly Usage Details Response", "x-displayname": "List Hourly Usage Details Response.", "x-ves-proto-message": "ves.io.schema.usage.ListHourlyUsageDetailsResp", "properties": { "hourly_usage_items": { "type": "array", "description": "Array of usage by hour in the period from the query.", "title": "Usage items", "items": { "$ref": "#/components/schemas/usageHourlyItem" }, "x-displayname": "Usage items.", "x-f5xc-description-short": "Array of usage by hour in the period from the query.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Response body for ListHourlyUsageDetails rpc method.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for usageListHourlyUsageDetailsResp", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for usageListHourlyUsageDetailsResp\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "billing_and_usage", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Quotas are platform-level limits" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "usageListMonthlyUsageReq": { "type": "object", "description": "Request message to GET mon thly usage details.", "title": "List monthly usage details request", "x-displayname": "List monthly usage details request.", "x-ves-proto-message": "ves.io.schema.usage.ListMonthlyUsageReq", "properties": { "namespace": { "type": "string", "description": "Namespace to be considered.", "title": "Namespace", "x-displayname": "Namespace", "x-ves-example": "System", "x-ves-validation-rules": { "ves.io.schema.rules.string.const": "system" }, "x-f5xc-example": "system", "x-validation-rules": { "ves.io.schema.rules.string.const": "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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" } }, "x-f5xc-description-short": "Request message to GET mon thly usage details.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for usageListMonthlyUsageReq", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for usageListMonthlyUsageReq\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "billing_and_usage", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Quotas are platform-level limits" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "usageListMonthlyUsageResp": { "type": "object", "description": "Response message to GET monthly usage details.", "title": "List monthly usage details response", "x-displayname": "List monthly usage details response.", "x-ves-proto-message": "ves.io.schema.usage.ListMonthlyUsageResp", "properties": { "monthly_usage_items": { "type": "array", "description": "Collection of usage items, lines of response.", "title": "Usage items", "items": { "$ref": "#/components/schemas/usageMonthlyUsageType" }, "x-displayname": "Usage items.", "x-f5xc-description-short": "Collection of usage items, lines of response.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Response message to GET monthly usage details.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for usageListMonthlyUsageResp", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for usageListMonthlyUsageResp\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "billing_and_usage", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Quotas are platform-level limits" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "usageListUsageDetailsReq": { "type": "object", "description": "Request message to GET usage details.", "title": "List usage details request", "x-displayname": "List usage details request.", "x-ves-proto-message": "ves.io.schema.usage.ListUsageDetailsReq", "properties": { "from": { "type": "string", "description": "Indicates the \"from\" part of the request.", "title": "Timestamp from", "format": "date-time", "x-displayname": "From", "x-ves-example": "2020-04-20T12:32:51.341959216Z.", "x-f5xc-example": "2020-04-20T12:32:51.341959216Z", "x-f5xc-description-short": "Indicates the \"from\" part of the request.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "format": "date-time", "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "namespace": { "type": "string", "description": "Namespace to be considered.", "title": "Namespace", "x-displayname": "Namespace", "x-ves-example": "System", "x-ves-validation-rules": { "ves.io.schema.rules.string.const": "system" }, "x-f5xc-example": "system", "x-validation-rules": { "ves.io.schema.rules.string.const": "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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" }, "to": { "type": "string", "description": "Indicates the \"to\" part of the request.", "title": "Timestamp to", "format": "date-time", "x-displayname": "To", "x-ves-example": "2020-04-20T12:32:51.341959216Z.", "x-f5xc-example": "2020-04-20T12:32:51.341959216Z", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "format": "date-time", "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for usageListUsageDetailsReq", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for usageListUsageDetailsReq\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "billing_and_usage", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Quotas are platform-level limits" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "usageListUsageDetailsResp": { "type": "object", "description": "Response message to GET usage details.", "title": "List usage details response", "x-displayname": "List usage details response.", "x-ves-proto-message": "ves.io.schema.usage.ListUsageDetailsResp", "properties": { "usage_items": { "type": "array", "description": "Collection of usage items, lines of response.", "title": "Usage items", "items": { "$ref": "#/components/schemas/usageUsageItem" }, "x-displayname": "Usage items.", "x-f5xc-description-short": "Collection of usage items, lines of response.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for usageListUsageDetailsResp", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for usageListUsageDetailsResp\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "billing_and_usage", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Quotas are platform-level limits" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "usageMonthlyUsageType": { "type": "object", "description": "One line of usage, including pricing details.", "title": "MonthlyUsageType", "x-displayname": "Usage item.", "x-ves-proto-message": "ves.io.schema.usage.MonthlyUsageType", "properties": { "amount": { "type": "string", "description": "Cost as hundredths of currency.", "title": "Amount", "format": "int64", "x-displayname": "Amount", "x-ves-example": "1234", "x-f5xc-example": "1234", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "format": "int64", "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "currency_code": { "type": "string", "description": "ISO currency code.", "title": "Currency code", "x-displayname": "Currency code.", "x-ves-example": "USD", "x-f5xc-example": "USD", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "end_timestamp": { "type": "string", "description": "End of the time unit.", "title": "Timestamp end", "format": "date-time", "x-displayname": "End", "x-ves-example": "2020-04-20T12:32:51.341959216Z.", "x-f5xc-example": "2020-04-20T12:32:51.341959216Z", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "format": "date-time", "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "start_timestamp": { "type": "string", "description": "Beginning of the time unit.", "title": "Timestamp start", "format": "date-time", "x-displayname": "Start", "x-ves-example": "2020-04-20T12:32:51.341959216Z.", "x-f5xc-example": "2020-04-20T12:32:51.341959216Z", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "format": "date-time", "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "One line of usage, including pricing details.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for usageMonthlyUsageType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for usageMonthlyUsageType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "billing_and_usage", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Quotas are platform-level limits" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "usageUsageItem": { "type": "object", "description": "Usage item represents a line in a usage report, including quantity and resource incurring usage.", "title": "Usage item", "x-displayname": "Usage item.", "x-ves-proto-message": "ves.io.schema.usage.UsageItem", "properties": { "end_timestamp": { "type": "string", "description": "End of the time unit.", "title": "Timestamp end", "format": "date-time", "x-displayname": "End", "x-ves-example": "2020-04-20T12:32:51.341959216Z.", "x-f5xc-example": "2020-04-20T12:32:51.341959216Z", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "format": "date-time", "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "hourly_breakdown": { "type": "array", "description": "An array of HourlyItem with usage per hour. The sum of these items will result into the parent's object `quantity`\nDeprecated: use /hourly_usage_details along with hourly_breakdown_query.", "title": "Hourly breakdown", "items": { "$ref": "#/components/schemas/usageHourlyItem" }, "x-displayname": "Hourly breakdown.", "x-f5xc-description-short": "Array of HourlyItem with usage per hour.", "x-f5xc-description-medium": "Array of HourlyItem with usage per hour. The sum of these items will result into the parent's object Deprecated: use /hourly_usage_details along with hourly_breakdown_query.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "hourly_breakdown_query": { "type": "string", "description": "[x-required]\nA base64 encoded JSON which should be passed as is to /hourly_usage_details\nto GET hourly items for this aggregated usage.", "title": "Hourly breakdown query", "x-displayname": "Hourly breakdown query.", "x-ves-example": "{'MetricLabel':'label'}", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true" }, "x-f5xc-example": "{'MetricLabel':'label'}", "x-validation-rules": { "ves.io.schema.rules.message.required": "true" }, "x-f5xc-description-short": "[x-required] A base64 encoded JSON which should be passed as is to /hourly_usage_details to GET hourly items for this aggregated usage.", "x-f5xc-description-medium": "[x-required] A base64 encoded JSON which should be passed as is to /hourly_usage_details to GET hourly items for this aggregated usage.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "metric_label": { "type": "string", "description": "[x-required]\nID of the usage type. As Usage type is shown for user and is a subject of frequent changes,\nthis metric_label should be static and should be usage for mapping between calculated usage and aggregated_usage.", "title": "Metric label", "x-displayname": "Metric label.", "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-medium": "[x-required] ID of the usage type. As Usage type is shown for user and is a subject of frequent changes, this metric_label should be static and should be usage for mapping between calculated usage and aggregated_usage.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "namespace": { "type": "string", "description": "Namespace where the usage occurred.", "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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" }, "object_name": { "type": "string", "description": "Name of the object where the usage occurred.", "title": "Object name", "x-displayname": "Object name.", "x-ves-example": "Pa4-resource1.", "x-f5xc-example": "pa4-resource1", "x-f5xc-description-short": "Name of the object where the usage occurred.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "quantity": { "type": "number", "description": "Quantity incurred.", "title": "Quantity", "format": "double", "x-displayname": "Quantity", "x-ves-example": "100", "x-f5xc-example": "100", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "start_timestamp": { "type": "string", "description": "Beginning of the time unit.", "title": "Timestamp start", "format": "date-time", "x-displayname": "Start", "x-ves-example": "2020-04-20T12:32:51.341959216Z.", "x-f5xc-example": "2020-04-20T12:32:51.341959216Z", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "format": "date-time", "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "unit_name": { "type": "string", "description": "Name of the quantity unit.", "title": "Unit name", "x-displayname": "Unit name", "x-ves-example": "MB", "x-f5xc-example": "MB", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "usage_type": { "type": "string", "description": "Type of the resource.", "title": "Usage type", "x-displayname": "Usage type.", "x-ves-example": "ADN App Mgmt - Customer Edge Large Containers.", "x-f5xc-example": "ADN App Mgmt - Customer Edge Large Containers", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Usage item represents a line in a usage report, including quantity and resource incurring usage.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for usageUsageItem", "required_fields": [ "hourly_breakdown_query", "metric_label" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for usageUsageItem\nmetadata:\n name: example\n namespace: default\nspec:\n hourly_breakdown_query: value\n metric_label: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"hourly_breakdown_query\": \"value\",\n \"metric_label\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "billing_and_usage", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Quotas are platform-level limits" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "planAddonServiceDetails": { "type": "object", "description": "Details about addon service.", "title": "Addon Service Details", "x-displayname": "Addon Service Details.", "x-ves-proto-message": "ves.io.schema.usage.plan.AddonServiceDetails", "properties": { "display_name": { "type": "string", "description": "Human readable name of addon.", "title": "Display name", "x-displayname": "Display name.", "x-ves-example": "Transfer from RE to CE.", "x-f5xc-example": "Transfer from RE to CE", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "display", "maxLength": 1024, "minLength": 1, "characterSet": { "description": "Free text with UTF-8 support" }, "metadata": { "source": "inferred", "confidence": 0.8, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "name": { "type": "string", "description": "Name of the addon feature.", "title": "Name", "x-displayname": "Name", "x-ves-example": "RE-2-CE-v1.", "x-f5xc-example": "re-2-ce-v1", "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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for planAddonServiceDetails", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for planAddonServiceDetails\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Quotas are platform-level limits" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "planListUsagePlansRsp": { "type": "object", "description": "Response with the usage plans info.", "title": "Usage Plans Response", "x-displayname": "UsagePlansRsp.", "x-ves-proto-message": "ves.io.schema.usage.plan.ListUsagePlansRsp", "properties": { "usage_plans": { "type": "array", "description": "Collection of available plans.", "title": "Usage plans", "items": { "$ref": "#/components/schemas/planLocalizedPlan" }, "x-displayname": "Usage plans.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for planListUsagePlansRsp", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for planListUsagePlansRsp\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "billing_and_usage", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Quotas are platform-level limits" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "planLocalizedPlan": { "type": "object", "description": "Localized info of usage plan.", "title": "LocalizedUsagePlan", "x-displayname": "LocalizedUsagePlan.", "x-ves-proto-message": "ves.io.schema.usage.plan.LocalizedPlan", "properties": { "locale": { "type": "string", "description": "Locale in the ISO dashed format.", "title": "Locale", "x-displayname": "Locale", "x-ves-example": "En-us", "x-f5xc-example": "en-us", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "plans": { "type": "array", "description": "Collection of currently publicly available plans.", "title": "Plans", "items": { "$ref": "#/components/schemas/planPlanInternal" }, "x-displayname": "Plans", "x-f5xc-description-short": "Collection of currently publicly available plans.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for planLocalizedPlan", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for planLocalizedPlan\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Quotas are platform-level limits" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "planPeriodUnitType": { "type": "string", "description": "Temporal period type\n\n- PERIOD_UNKNOWN: unknown, undefined period of time\n- PERIOD_DAY: Day\n- PERIOD_WEEK: Week\n- PERIOD_MONTH: Month\n- PERIOD_YEAR: Year.", "title": "Period type", "enum": [ "PERIOD_UNKNOWN", "PERIOD_DAY", "PERIOD_WEEK", "PERIOD_MONTH", "PERIOD_YEAR" ], "default": "PERIOD_UNKNOWN", "x-displayname": "Period type.", "x-ves-proto-enum": "ves.io.schema.usage.plan.PeriodUnitType", "x-f5xc-description-short": "Temporal period type - PERIOD_UNKNOWN: unknown, undefined period of time - PERIOD_DAY: Day - PERIOD_WEEK: Week - PERIOD_MONTH: Month ...", "x-f5xc-description-medium": "Temporal period type - PERIOD_UNKNOWN: unknown, undefined period of time - PERIOD_DAY: Day - PERIOD_WEEK: Week - PERIOD_MONTH: Month - PERIOD_YEAR: Year.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for planPeriodUnitType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for planPeriodUnitType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Quotas are platform-level limits" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "planPlanInternal": { "type": "object", "description": "Structure that holds all data needed to choose usage plan.", "title": "PlanInternal", "x-displayname": "PlanInternal.", "x-ves-proto-message": "ves.io.schema.usage.plan.PlanInternal", "properties": { "allowed_addon_services": { "type": "array", "description": "List of addon services that can be subscribed part of current plan.", "items": { "$ref": "#/components/schemas/planAddonServiceDetails" }, "x-displayname": "Allowed Addon Services.", "x-f5xc-description-short": "List of addon services that can be subscribed part of current plan.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "billing_disabled": { "type": "boolean", "description": "If true then there's no automatic billing.", "title": "Billing disabled", "format": "boolean", "x-displayname": "Billing disabled.", "x-f5xc-description-short": "If true then there's no automatic billing.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "current": { "type": "boolean", "description": "True if plan is active. Note that customers are only allowed to current plans.", "title": "Current", "format": "boolean", "x-displayname": "Current", "x-f5xc-description-short": "True if plan is active. Note that customers are only allowed to current plans.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "default_quota": { "allOf": [ { "$ref": "#/components/schemas/schemaquotaGlobalSpecType" } ], "x-f5xc-description-short": "Configuration parameter for default quota.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "description": { "type": "string", "description": "Description of the plan as mark-down text.", "title": "Description", "x-displayname": "Description.", "x-ves-example": "###Free plan, includes x y z *Free item 1 *Free item 2 ##Self-support only.", "x-f5xc-example": "###Free plan, includes x y z *Free item 1 *Free item 2 ##Self-support only", "x-f5xc-description-short": "Description of the plan as mark-down 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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "flat_price": { "type": "integer", "description": "Flat fee of the plan in cents.", "title": "Flat price", "format": "int32", "x-displayname": "Flat price.", "x-ves-example": "100", "x-f5xc-example": "100", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "included_addon_services": { "type": "array", "description": "List of addon services that are available part of current plan.", "items": { "$ref": "#/components/schemas/planAddonServiceDetails" }, "x-displayname": "Included Addon Services.", "x-f5xc-description-short": "List of addon services that are available part of current plan.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "name": { "type": "string", "description": "Name of the plan, the name is not guaranteed to be human readable.", "title": "Name", "x-displayname": "Name", "x-ves-example": "Free-p25-v2.", "x-f5xc-example": "free-p25-v2", "x-f5xc-description-short": "Name of the plan, the name is not guaranteed to be human readable.", "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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" }, "renewal_period_unit": { "allOf": [ { "$ref": "#/components/schemas/planPeriodUnitType" } ], "x-f5xc-description-short": "Configuration parameter for renewal period unit.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "state": { "allOf": [ { "$ref": "#/components/schemas/planPlanState" } ], "x-f5xc-example": "running", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "subtitle": { "type": "string", "description": "Optional second line of the title of the plan, human readable.", "title": "Sub-Title", "x-displayname": "Sub-title", "x-ves-example": "Our free plan.", "x-f5xc-example": "Our free plan", "x-f5xc-description-short": "Optional second line of the title of the plan, human readable.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "tenant_type": { "allOf": [ { "$ref": "#/components/schemas/schemaTenantType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "title": { "type": "string", "description": "Title of the plan, human readable.", "title": "Title", "x-displayname": "Title", "x-ves-example": "Free", "x-f5xc-example": "Free", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "transition_flow": { "allOf": [ { "$ref": "#/components/schemas/planUsagePlanTransitionFlow" } ], "x-f5xc-description-short": "Configuration parameter for transition flow.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "trial_period": { "type": "integer", "description": "Trial period associated with this plan. Different pricing conditions are in place during the trial period - flat fee my not apply, or similar.", "title": "Trial period", "format": "int32", "x-displayname": "Trial period.", "x-ves-example": "3", "x-f5xc-example": "3", "x-f5xc-description-short": "Trial period associated with this plan. Different pricing conditions are in place during the trial period - flat fee my not apply, or similar.", "x-f5xc-description-medium": "Trial period associated with this plan. Different pricing conditions are in place during the trial period - flat fee my not apply, or similar.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "trial_period_unit": { "allOf": [ { "$ref": "#/components/schemas/planPeriodUnitType" } ], "x-f5xc-description-short": "Configuration parameter for trial period unit.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "usage_plan_type": { "allOf": [ { "$ref": "#/components/schemas/schemaPlanType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Structure that holds all data needed to choose usage plan.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for planPlanInternal", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for planPlanInternal\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Quotas are platform-level limits" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "planPlanState": { "type": "string", "description": "State of the\n\n- STATE_UNSPECIFIED: zero value\n- STATE_READY: the plan is in default state\n- STATE_TRANSITION_PENDING: the plan is in the state of plan transitioning. If the plan has current flag equals to true and in\nTRANSITION_PENDING then tenant moves to another plan which is in state TRANSITION_PENDING.\nAt the same moment in time no more than 2 plans should have TRANSITION_PENDING state.", "title": "PlanTransitionState", "enum": [ "STATE_UNSPECIFIED", "STATE_READY", "STATE_TRANSITION_PENDING" ], "default": "STATE_UNSPECIFIED", "x-displayname": "PlanTransitionState.", "x-ves-proto-enum": "ves.io.schema.usage.plan.PlanState", "x-f5xc-description-short": "State of the - STATE_UNSPECIFIED: zero value - STATE_READY: the plan is in default state - STATE_TRANSITION_PENDING: the plan is in the state of...", "x-f5xc-description-medium": "State of the - STATE_UNSPECIFIED: zero value - STATE_READY: the plan is in default state - STATE_TRANSITION_PENDING: the plan is in the state of plan transitioning. If the plan has current flag equals to true and in TRANSITION_PENDING then tenant moves to another plan which is in state...", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for planPlanState", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for planPlanState\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Quotas are platform-level limits" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "planPlanTransitionMethod": { "type": "string", "description": "Transitioning method which UI should show to the customer to properly execute the transition between\n\n- TRANSITION_METHOD_UNSPECIFIED: Zero value\n- TRANSITION_METHOD_SUPPORT: The transition should be done via a support request, the current behaviour for any transition\n- TRANSITION_METHOD_WIZARD: The transition should be done via a custom Wizard. Fields which should be\nprovided will be guided by PlanTransitionRequiredField\n- TRANSITION_METHOD_RECREATE: The transition should be done via logging the user out, deleting the current tenant and creating a new one.", "title": "PlanTransitionMethod", "enum": [ "TRANSITION_METHOD_UNSPECIFIED", "TRANSITION_METHOD_SUPPORT", "TRANSITION_METHOD_WIZARD", "TRANSITION_METHOD_RECREATE" ], "default": "TRANSITION_METHOD_UNSPECIFIED", "x-displayname": "PlanTransitionMethod.", "x-ves-proto-enum": "ves.io.schema.usage.plan.PlanTransitionMethod", "x-f5xc-description-short": "Transitioning method which UI should show to the customer to properly execute the transition between - TRANSITION_METHOD_UNSPECIFIED: Zero value ...", "x-f5xc-description-medium": "Transitioning method which UI should show to the customer to properly execute the transition between - TRANSITION_METHOD_UNSPECIFIED: Zero value - TRANSITION_METHOD_SUPPORT: The transition should be done via a support request, the current behaviour for any transition - TRANSITION_METHOD_WIZARD...", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for planPlanTransitionMethod", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for planPlanTransitionMethod\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Quotas are platform-level limits" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "planPlanTransitionRequiredField": { "type": "string", "description": "Fields which UI should provide to the backend to properly execute the transition between plans\n\n- TRANSITION_REQUIRED_FIELD_UNSPECIFIED: Zero value\n- TRANSITION_REQUIRED_FIELD_PAYMENT_TOKEN: Stripe token after user enters CC info and we submit it to stripe\n- TRANSITION_REQUIRED_FIELD_DOMAIN: Domain for team/organization plans which will be used for keycloak realm\n- TRANSITION_REQUIRED_FIELD_CONTACTS: Contacts is billing contacts.", "title": "PlanTransitionRequiredField", "enum": [ "TRANSITION_REQUIRED_FIELD_UNSPECIFIED", "TRANSITION_REQUIRED_FIELD_PAYMENT_TOKEN", "TRANSITION_REQUIRED_FIELD_DOMAIN", "TRANSITION_REQUIRED_FIELD_CONTACTS" ], "default": "TRANSITION_REQUIRED_FIELD_UNSPECIFIED", "x-displayname": "PlanTransitionRequiredField.", "x-ves-proto-enum": "ves.io.schema.usage.plan.PlanTransitionRequiredField", "x-f5xc-description-short": "Fields which UI should provide to the backend to properly execute the transition between plans - TRANSITION_REQUIRED_FIELD_UNSPECIFIED: Zero value...", "x-f5xc-description-medium": "Fields which UI should provide to the backend to properly execute the transition between plans - TRANSITION_REQUIRED_FIELD_UNSPECIFIED: Zero value - TRANSITION_REQUIRED_FIELD_PAYMENT_TOKEN: Stripe token after user enters CC info and we submit it to stripe - TRANSITION_REQUIRED_FIELD_DOMAIN...", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for planPlanTransitionRequiredField", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for planPlanTransitionRequiredField\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Quotas are platform-level limits" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "planUsagePlanTransitionFlow": { "type": "object", "description": "Details for transition flow. Is used as part of UsagePlanInternal.", "title": "UsagePlanTransitionFlow", "x-displayname": "UsagePlanTransitionFlow.", "x-ves-proto-message": "ves.io.schema.usage.plan.UsagePlanTransitionFlow", "properties": { "method": { "allOf": [ { "$ref": "#/components/schemas/planPlanTransitionMethod" } ], "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 } }, "required_fields": { "type": "array", "description": "Mandatory information to migrate onto this plan.", "title": "Required fields", "items": { "$ref": "#/components/schemas/planPlanTransitionRequiredField" }, "x-displayname": "Required fields.", "x-f5xc-description-short": "Mandatory information to migrate onto this plan.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "requires_manual_approval": { "type": "boolean", "description": "If true then any migration onto this plan must be approved by the billing department.", "title": "Manual approval", "format": "boolean", "x-displayname": "Manual approval.", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "If true then any migration onto this plan must be approved by the billing department.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Details for transition flow. Is used as part of UsagePlanInternal.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for planUsagePlanTransitionFlow", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for planUsagePlanTransitionFlow\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "statistics", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Quotas are platform-level limits" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "schemaPlanType": { "type": "string", "description": "PlanType is the type of billing plan for the customer.", "title": "PlanType", "enum": [ "FREE", "INDIVIDUAL", "TEAM", "ORGANIZATION", "PLAN_TYPE_UNSPECIFIED" ], "default": "FREE", "x-displayname": "Plan Type", "x-ves-proto-enum": "ves.io.schema.PlanType", "x-f5xc-description-short": "PlanType is the type of billing plan for the customer.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for schemaPlanType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemaPlanType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Quotas are platform-level limits" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } }, "schemaTenantType": { "type": "string", "description": "TenantType is the type of the customer\n\nUNKNOWN indicates the field not being set\nFREEMIUM are customer that don't have their domain\nENTERPRiISE customer have their domain.", "title": "TenantType", "enum": [ "UNKNOWN", "FREEMIUM", "ENTERPRISE" ], "default": "UNKNOWN", "x-displayname": "Tenant type.", "x-ves-proto-enum": "ves.io.schema.TenantType", "x-f5xc-description-short": "TenantType is the type of the customer UNKNOWN indicates the field not being set FREEMIUM are customer that don't have their domain ENTERPRiISE...", "x-f5xc-description-medium": "TenantType is the type of the customer UNKNOWN indicates the field not being set FREEMIUM are customer that don't have their domain ENTERPRiISE customer have their domain.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for schemaTenantType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemaTenantType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "tenant_and_identity", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Tenant object is platform-level administration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "schemaquotaGlobalSpecType": { "type": "object", "description": "GlobalSpecType defines the shape of the object in database as present in Global Controller.", "title": "GlobalSpecType", "x-displayname": "Global Spec.", "x-ves-proto-message": "ves.io.schema.quota.GlobalSpecType", "properties": { "api_limits": { "type": "object", "description": "API Limits defines ratelimit parameters for an API at the stdlib service\nThe key of the api_limits map is rpc FQN e.g. \"VES.I/o.schema.advertise_policy.api.create\"", "title": "api_limits", "x-displayname": "API Limits.", "x-ves-validation-rules": { "ves.io.schema.rules.map.keys.string.max_len": "512", "ves.io.schema.rules.map.keys.string.min_len": "1", "ves.io.schema.rules.map.keys.string.pattern": "^[a-zA-Z][a-zA-Z0-9-._]*[a-zA-Z0-9]$" }, "x-validation-rules": { "ves.io.schema.rules.map.keys.string.max_len": "512", "ves.io.schema.rules.map.keys.string.min_len": "1", "ves.io.schema.rules.map.keys.string.pattern": "^[a-zA-Z][a-zA-Z0-9-._]*[a-zA-Z0-9]$" }, "x-f5xc-description-short": "API Limits defines ratelimit parameters for an API at the stdlib service The key of the api_limits map is rpc FQN e.g...", "x-f5xc-description-medium": "API Limits defines ratelimit parameters for an API at the stdlib service The key of the api_limits map is rpc FQN e.g. \"VES.I/o.schema.advertise_policy.api.create\".", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "apigw_limits": { "type": "object", "description": "API Gateway Limits defines rate limit value parameters for an API at a service level (prism, sentinel, etc)\nThe key of the apigw_limits map is rpc FQN e.g. \"VES.I/o.schema.advertise_policy.api.create\"", "title": "apigw_limits", "x-displayname": "API Gateway Limits.", "x-ves-validation-rules": { "ves.io.schema.rules.map.keys.string.max_len": "512", "ves.io.schema.rules.map.keys.string.min_len": "1", "ves.io.schema.rules.map.keys.string.pattern": "^[a-zA-Z][a-zA-Z0-9-._]*[a-zA-Z0-9]$" }, "x-validation-rules": { "ves.io.schema.rules.map.keys.string.max_len": "512", "ves.io.schema.rules.map.keys.string.min_len": "1", "ves.io.schema.rules.map.keys.string.pattern": "^[a-zA-Z][a-zA-Z0-9-._]*[a-zA-Z0-9]$" }, "x-f5xc-description-short": "API Gateway Limits defines rate limit value parameters for an API at a service level (prism, sentinel, etc) The key of the apigw_limits map is rpc...", "x-f5xc-description-medium": "API Gateway Limits defines rate limit value parameters for an API at a service level (prism, sentinel, etc) The key of the apigw_limits map is rpc FQN e.g. \"VES.I/o.schema.advertise_policy.api.create\".", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "object_limits": { "type": "object", "description": "Object Limits define maximum number of instances that can be present per object kind for the tenant\nThe key of the object_limits map is object kind e.g. \"virtual_host\"", "title": "object_limits", "x-displayname": "Object Limits.", "x-ves-validation-rules": { "ves.io.schema.rules.map.keys.string.max_len": "512", "ves.io.schema.rules.map.keys.string.min_len": "1", "ves.io.schema.rules.map.keys.string.pattern": "^[a-zA-Z][a-zA-Z0-9-._]*[a-zA-Z0-9]$" }, "x-validation-rules": { "ves.io.schema.rules.map.keys.string.max_len": "512", "ves.io.schema.rules.map.keys.string.min_len": "1", "ves.io.schema.rules.map.keys.string.pattern": "^[a-zA-Z][a-zA-Z0-9-._]*[a-zA-Z0-9]$" }, "x-f5xc-description-short": "Object Limits define maximum number of instances that can be present per object kind for the tenant The key of the object_limits map is object...", "x-f5xc-description-medium": "Object Limits define maximum number of instances that can be present per object kind for the tenant The key of the object_limits map is object kind e.g. \"virtual_host\".", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "resource_limits": { "type": "object", "description": "Resource Limits define maximum value of resources in the appropriate units that can be present. The key of\nthe resource limits is the resource name.", "title": "resource_limits", "x-displayname": "Resource Limits.", "x-ves-validation-rules": { "ves.io.schema.rules.map.keys.string.max_len": "512", "ves.io.schema.rules.map.keys.string.min_len": "1", "ves.io.schema.rules.map.keys.string.pattern": "^[a-zA-Z][a-zA-Z0-9-._]*[a-zA-Z0-9]$" }, "x-validation-rules": { "ves.io.schema.rules.map.keys.string.max_len": "512", "ves.io.schema.rules.map.keys.string.min_len": "1", "ves.io.schema.rules.map.keys.string.pattern": "^[a-zA-Z][a-zA-Z0-9-._]*[a-zA-Z0-9]$" }, "x-f5xc-description-short": "Resource Limits define maximum value of resources in the appropriate units that can be present.", "x-f5xc-description-medium": "Resource Limits define maximum value of resources in the appropriate units that can be present. The key of the resource limits is the resource name.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "GlobalSpecType defines the shape of the object in database as present in Global Controller.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for schemaquotaGlobalSpecType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemaquotaGlobalSpecType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "billing_and_usage", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Quotas are platform-level limits" }, "classification": { "category": "application", "multi_tenant_pattern": "none" } } } }, "responses": {}, "parameters": {}, "requestBodies": {} } }, "blindfold": { "openapi": "3.0.3", "info": { "title": "Blindfold", "description": "Public key retrieval and secret policy enforcement for encrypted data handling. Policy rules govern access with configurable matching and transformation actions. VoltShare integration provides decryption services, access counting, and audit log aggregation. Namespace-scoped policies enable fine-grained control over sensitive information with administrative overrides.", "version": "4.0.0", "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": "Public key retrieval and secret policy enforcement for encrypted data handling. Policy rules govern access with configurable matching and transformation actions. VoltShare integration provides decryption services, access counting, and audit log aggregation. Namespace-scoped policies enable fine-grained control over sensitive information with administrative overrides.", "x-f5xc-summary": "Encryption key management with policy-based access controls. Audit logging and secure data protection.", "x-f5xc-cli-domain": "blindfold", "externalDocs": { "url": "https://docs.cloud.f5.com/docs/how-to/app-security/blindfold", "description": "F5 XC Documentation - Blindfold Secrets" }, "x-f5xc-api-reference-url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/blindfold/", "x-f5xc-best-practices": { "common_errors": [ { "code": 400, "message": "Invalid request body", "resolution": "Validate JSON structure and required fields before submission", "prevention": "Use schema validation from OpenAPI spec" }, { "code": 401, "message": "Authentication failed", "resolution": "Verify API token is valid and not expired", "prevention": "Use environment variables for token management" }, { "code": 403, "message": "Permission denied", "resolution": "Check user role and namespace permissions", "prevention": "Verify RBAC policies before operations" }, { "code": 404, "message": "Resource not found", "resolution": "Verify resource name and namespace exist", "prevention": "List resources before attempting operations" }, { "code": 409, "message": "Resource already exists", "resolution": "Use unique name or delete existing resource", "prevention": "Check existence before creation" }, { "code": 429, "message": "Rate limit exceeded", "resolution": "Implement exponential backoff and retry logic", "prevention": "Batch operations and add delays between requests" } ], "security_notes": [ "Always use HTTPS for all API communications", "Store API tokens securely, never in source code", "Rotate API tokens regularly following security policies" ], "performance_tips": [ "Use pagination for large result sets", "Batch related operations when possible", "Cache read-only responses appropriately" ] }, "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "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": "config" }, { "name": "secret_management" } ], "paths": { "/api/secret_management/get_public_key": { "get": { "summary": "Public Key.", "description": "GetPublicKey API returns public part of the F5 Distributed Cloud secret management key that needs to be given to F5 Distributed Cloud secret management tool to do secret encryption.", "operationId": "ves.io.schema.secret_management.CustomAPI.GetPublicKey", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/secret_managementGetPublicKeyResponse" } } } }, "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": "key_version", "description": "The version of public key.", "in": "query", "required": false, "x-displayname": "Key Version.", "schema": { "type": "integer", "format": "int64" }, "x-f5xc-example": "0" } ], "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/blindfold/" }, "x-ves-proto-rpc": "ves.io.schema.secret_management.CustomAPI.GetPublicKey", "tags": [ "secret_management" ], "x-f5xc-operation-metadata": { "purpose": "Resource retrieval operation", "required_fields": [], "optional_fields": [], "field_docs": {}, "conditions": { "prerequisites": [], "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-danger-level": "low", "x-f5xc-discovered-response-time": { "p50_ms": 200, "p95_ms": 800, "p99_ms": 2000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "F5XC Secret Management.", "x-ves-proto-service": "ves.io.schema.secret_management.CustomAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/secret_management/namespaces/{namespace}/secret_policys/{name}/get_policy_document": { "get": { "summary": "Policy Document.", "description": "GetPolicyDocument API returns secret policy document for the given policy that contains information about all the rules in the policy and policy_id.\nThis document can be given to F5 Distributed Cloud secret management tool to do secret encryption.", "operationId": "ves.io.schema.secret_management.CustomAPI.GetPolicyDocument", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/secret_managementGetPolicyDocumentResponse" } } } }, "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 of the secret policy.", "in": "path", "required": true, "x-displayname": "Namespace", "schema": { "type": "string" }, "x-f5xc-example": "system" }, { "name": "name", "description": "Name\n\nx-required\nName of the secret policy.", "in": "path", "required": true, "x-displayname": "Name", "schema": { "type": "string" }, "x-f5xc-example": "site-secret-policy" } ], "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/blindfold/" }, "x-ves-proto-rpc": "ves.io.schema.secret_management.CustomAPI.GetPolicyDocument", "tags": [ "secret_management" ], "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": "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": "F5XC Secret Management.", "x-ves-proto-service": "ves.io.schema.secret_management.CustomAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/secret_management/namespaces/system/voltshare/decrypt_secret": { "post": { "summary": "DecryptSecret.", "description": "DecryptSecret API takes blinded encrypted secret and policy and responds with blinded decrypted secret if user is allowed by the policy.", "operationId": "ves.io.schema.voltshare.CustomAPI.DecryptSecret", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/voltshareDecryptSecretResponse" } } } }, "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/voltshareDecryptSecretRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/blindfold/" }, "x-ves-proto-rpc": "ves.io.schema.voltshare.CustomAPI.DecryptSecret", "tags": [ "secret_management" ], "x-f5xc-operation-metadata": { "purpose": "Resource creation operation", "required_fields": [ "metadata.name", "metadata.namespace" ], "optional_fields": [], "field_docs": {}, "conditions": { "prerequisites": [ "Active namespace" ], "postconditions": [ "Decrypt-secret resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "decrypt-secret" ] }, "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": [ "decrypt-secret" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "F5XC VoltShare.", "x-ves-proto-service": "ves.io.schema.voltshare.CustomAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/secret_management/namespaces/system/voltshare/process_policy_information": { "post": { "summary": "ProcessPolicyInformation.", "description": "ProcessPolicyInformation API takes policy and secret name as input and returns a document containing .", "operationId": "ves.io.schema.voltshare.CustomAPI.ProcessPolicyInformation", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/voltshareProcessPolicyResponse" } } } }, "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/voltshareProcessPolicyRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/blindfold/" }, "x-ves-proto-rpc": "ves.io.schema.voltshare.CustomAPI.ProcessPolicyInformation", "tags": [ "secret_management" ], "x-f5xc-operation-metadata": { "purpose": "Configuration policy for resource behavior", "required_fields": [ "metadata.name", "metadata.namespace" ], "optional_fields": [], "field_docs": {}, "conditions": { "prerequisites": [ "Active namespace", "Policy parameters defined" ], "postconditions": [ "Process-policy-information resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "process-policy-information" ] }, "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": [ "process-policy-information" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "F5XC VoltShare.", "x-ves-proto-service": "ves.io.schema.voltshare.CustomAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/secret_management/namespaces/{namespace}/voltshare/access_count": { "post": { "summary": "VoltShare Access Count Query.", "description": "Request to GET number of VoltShare API calls aggregated across multiple dimensions like OPERATION, COUNTRY, RESULT, USER_TENANT.", "operationId": "ves.io.schema.voltshare.MonitoringAPI.VoltShareAccessCountQuery", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/voltshareVoltShareAccessCountResponse" } } } }, "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": "blogging-app-namespace-1" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/voltshareVoltShareAccessCountRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/blindfold/" }, "x-ves-proto-rpc": "ves.io.schema.voltshare.MonitoringAPI.VoltShareAccessCountQuery", "tags": [ "secret_management" ], "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": [ "Access-count resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "access-count" ] }, "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": [ "access-count" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "F5XC VoltShare.", "x-ves-proto-service": "ves.io.schema.voltshare.MonitoringAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/secret_management/namespaces/{namespace}/voltshare/audit_logs": { "post": { "summary": "Audit Log Query.", "description": "Request to GET voltshare audit logs that matches the criteria in request.\nIf no match conditions are specified in the request, then the response contains all\nCRUD operations performed.", "operationId": "ves.io.schema.voltshare.MonitoringAPI.AuditLogQuery", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/voltshareAuditLogResponse" } } } }, "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 log messages scoped by namespace.", "in": "path", "required": true, "x-displayname": "Namespace", "schema": { "type": "string" }, "x-f5xc-example": "value" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/voltshareAuditLogRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/blindfold/" }, "x-ves-proto-rpc": "ves.io.schema.voltshare.MonitoringAPI.AuditLogQuery", "tags": [ "secret_management" ], "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": [ "Audit-log resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "audit-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": [ "audit-log" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "F5XC VoltShare.", "x-ves-proto-service": "ves.io.schema.voltshare.MonitoringAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/secret_management/namespaces/{namespace}/voltshare/audit_logs/aggregation": { "post": { "summary": "Audit Log Aggregation Query.", "description": "Request to GET summary/analytics data for the audit logs that matches the criteria in request.", "operationId": "ves.io.schema.voltshare.MonitoringAPI.AuditLogAggregationQuery", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/voltshareAuditLogAggregationResponse" } } } }, "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 aggregation data scoped by namespace.", "in": "path", "required": true, "x-displayname": "Namespace", "schema": { "type": "string" }, "x-f5xc-example": "value" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/voltshareAuditLogAggregationRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/blindfold/" }, "x-ves-proto-rpc": "ves.io.schema.voltshare.MonitoringAPI.AuditLogAggregationQuery", "tags": [ "secret_management" ], "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": "F5XC VoltShare.", "x-ves-proto-service": "ves.io.schema.voltshare.MonitoringAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/secret_management/namespaces/{namespace}/voltshare/audit_logs/scroll": { "get": { "summary": "Audit Log Scroll Query.", "description": "The response for audit log query contain no more than 500 messages.\nOne can use scroll request to scroll through more than 500 messages or all messages\nin multiple batches. Empty scroll_id in the response indicates no more messages to fetch (EOF).", "operationId": "ves.io.schema.voltshare.MonitoringAPI.AuditLogScrollQuery_get", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/voltshareAuditLogResponse" } } } }, "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 log messages scoped by namespace.", "in": "path", "required": true, "x-displayname": "Namespace", "schema": { "type": "string" }, "x-f5xc-example": "value" }, { "name": "scroll_id", "description": "Long Base-64 encoded string which can be used to retrieve next batch of log messages.", "in": "query", "required": false, "x-displayname": "Scroll ID", "schema": { "type": "string" }, "x-f5xc-example": "Vm9sdGVycmEgRWRnZSBQbGF0Zm9ybQ==" } ], "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/blindfold/" }, "x-ves-proto-rpc": "ves.io.schema.voltshare.MonitoringAPI.AuditLogScrollQuery", "tags": [ "secret_management" ], "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": "Audit Log Scroll Query.", "description": "The response for audit log query contain no more than 500 messages.\nOne can use scroll request to scroll through more than 500 messages or all messages\nin multiple batches. Empty scroll_id in the response indicates no more messages to fetch (EOF).", "operationId": "ves.io.schema.voltshare.MonitoringAPI.AuditLogScrollQuery_post", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/voltshareAuditLogResponse" } } } }, "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 log messages scoped by namespace.", "in": "path", "required": true, "x-displayname": "Namespace", "schema": { "type": "string" }, "x-f5xc-example": "value" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/voltshareAuditLogScrollRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/blindfold/" }, "x-ves-proto-rpc": "ves.io.schema.voltshare.MonitoringAPI.AuditLogScrollQuery", "tags": [ "secret_management" ], "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": "F5XC VoltShare.", "x-ves-proto-service": "ves.io.schema.voltshare.MonitoringAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/config/namespaces/{metadata.namespace}/secret_management_accesss": { "post": { "summary": "Create Secret Management Access.", "description": "Create secret_management_access creates a new object in storage backend for metadata.namespace.", "operationId": "ves.io.schema.secret_management_access.API.Create", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/secret_management_accessCreateResponse" } } } }, "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/secret_management_accessCreateRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/blindfold/" }, "x-ves-proto-rpc": "ves.io.schema.secret_management_access.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": [ "Secret-management-access resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "secret-management-access" ] }, "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": [ "secret-management-access" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "Secret Management Access.", "x-ves-proto-service": "ves.io.schema.secret_management_access.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{metadata.namespace}/secret_management_accesss/{metadata.name}": { "put": { "summary": "Replace Secret Management Access.", "description": "Replace secret_management_access replaces an existing object in storage backend for metadata.namespace.", "operationId": "ves.io.schema.secret_management_access.API.Replace", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/secret_management_accessReplaceResponse" } } } }, "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/secret_management_accessReplaceRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/blindfold/" }, "x-ves-proto-rpc": "ves.io.schema.secret_management_access.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": [ "secret-management-access" ] }, "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": [ "secret-management-access" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 800, "p95_ms": 2500, "p99_ms": 6000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "Secret Management Access.", "x-ves-proto-service": "ves.io.schema.secret_management_access.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{namespace}/secret_management_accesss": { "get": { "summary": "List Secret Management Access.", "description": "List the set of secret_management_access in a namespace.", "operationId": "ves.io.schema.secret_management_access.API.List", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/secret_management_accessListResponse" } } } }, "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 secret_management_access.", "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/blindfold/" }, "x-ves-proto-rpc": "ves.io.schema.secret_management_access.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": "Secret Management Access.", "x-ves-proto-service": "ves.io.schema.secret_management_access.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{namespace}/secret_management_accesss/{name}": { "get": { "summary": "GET Secret Management Access.", "description": "GET secret_management_access reads a given object from storage backend for metadata.namespace.", "operationId": "ves.io.schema.secret_management_access.API.Get", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/secret_management_accessGetResponse" } } } }, "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/blindfold/" }, "x-ves-proto-rpc": "ves.io.schema.secret_management_access.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 Secret Management Access.", "description": "DELETE the specified secret_management_access.", "operationId": "ves.io.schema.secret_management_access.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/secret_management_accessDeleteRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/blindfold/" }, "x-ves-proto-rpc": "ves.io.schema.secret_management_access.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": [ "secret-management-access", "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": [ "secret-management-access", "contained_resources" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 500, "p95_ms": 1500, "p99_ms": 4000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "Secret Management Access.", "x-ves-proto-service": "ves.io.schema.secret_management_access.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/secret_management/namespaces/{metadata.namespace}/secret_policys": { "post": { "summary": "Create Secret Policy.", "description": "Create secret_policy creates a new object in the storage backend for metadata.namespace.", "operationId": "ves.io.schema.secret_policy.API.Create", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/secret_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/secret_policyCreateRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/blindfold/" }, "x-ves-proto-rpc": "ves.io.schema.secret_policy.API.Create", "tags": [ "secret_management" ], "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": [ "Secret-policy resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "secret-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": [ "secret-policy" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "Secret Policy.", "x-ves-proto-service": "ves.io.schema.secret_policy.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/secret_management/namespaces/{metadata.namespace}/secret_policys/{metadata.name}": { "put": { "summary": "Replace Secret Policy.", "description": "Replace secret_policy replaces an existing object in the storage backend for metadata.namespace.", "operationId": "ves.io.schema.secret_policy.API.Replace", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/secret_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/secret_policyReplaceRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/blindfold/" }, "x-ves-proto-rpc": "ves.io.schema.secret_policy.API.Replace", "tags": [ "secret_management" ], "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": [ "secret-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": [ "secret-policy" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 800, "p95_ms": 2500, "p99_ms": 6000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "Secret Policy.", "x-ves-proto-service": "ves.io.schema.secret_policy.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/secret_management/namespaces/{namespace}/secret_policy/list_policy/{policy_state}": { "get": { "summary": "List secret policy.", "operationId": "ves.io.schema.secret_policy.CustomAPI.ListPolicy", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/secret_policyListPolicyResponse" } } } }, "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 of the secret policy.", "in": "path", "required": true, "x-displayname": "Namespace", "schema": { "type": "string" }, "x-f5xc-example": "system" }, { "name": "policy_state", "description": "Policy_state\n\nx-required\nstate of the policy to filter in results.", "in": "path", "required": true, "x-displayname": "Policy_state.", "schema": { "type": "string" }, "x-f5xc-example": "all" } ], "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/blindfold/" }, "x-ves-proto-rpc": "ves.io.schema.secret_policy.CustomAPI.ListPolicy", "tags": [ "secret_management" ], "description": "ListPolicy list_policy.", "x-f5xc-operation-metadata": { "purpose": "Configuration policy for resource behavior", "required_fields": [ "path.namespace", "path.policy_state" ], "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.namespace", "path.policy_state" ], "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": "Secret Policy.", "x-ves-proto-service": "ves.io.schema.secret_policy.CustomAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/secret_management/namespaces/{namespace}/secret_policy/{name}/recover": { "post": { "summary": "Recover secret policy with given policy name.", "operationId": "ves.io.schema.secret_policy.CustomAPI.RecoverPolicy", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/secret_policyRecoverResponse" } } } }, "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 of the secret policy.", "in": "path", "required": true, "x-displayname": "Namespace", "schema": { "type": "string" }, "x-f5xc-example": "system" }, { "name": "name", "description": "Name\n\nx-required\nName of the secret policy.", "in": "path", "required": true, "x-displayname": "Name", "schema": { "type": "string" }, "x-f5xc-example": "site-secret-policy" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/secret_policyRecoverRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/blindfold/" }, "x-ves-proto-rpc": "ves.io.schema.secret_policy.CustomAPI.RecoverPolicy", "tags": [ "secret_management" ], "description": "RecoverPolicy recover.", "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", "Policy parameters defined" ], "postconditions": [ "Recover resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "recover" ] }, "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": [ "recover" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "Secret Policy.", "x-ves-proto-service": "ves.io.schema.secret_policy.CustomAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/secret_management/namespaces/{namespace}/secret_policy/{name}/softdelete": { "post": { "summary": "DELETE secret policy with given policy name.", "operationId": "ves.io.schema.secret_policy.CustomAPI.DeletePolicy", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/secret_policySoftDeleteResponse" } } } }, "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 of the secret policy.", "in": "path", "required": true, "x-displayname": "Namespace", "schema": { "type": "string" }, "x-f5xc-example": "system" }, { "name": "name", "description": "Name\n\nx-required\nName of the secret policy.", "in": "path", "required": true, "x-displayname": "Name", "schema": { "type": "string" }, "x-f5xc-example": "site-secret-policy" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/secret_policySoftDeleteRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/blindfold/" }, "x-ves-proto-rpc": "ves.io.schema.secret_policy.CustomAPI.DeletePolicy", "tags": [ "secret_management" ], "description": "DeletePolicy softdelete.", "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", "Policy parameters defined" ], "postconditions": [ "Softdelete resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "softdelete" ] }, "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": [ "softdelete" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "Secret Policy.", "x-ves-proto-service": "ves.io.schema.secret_policy.CustomAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/secret_management/namespaces/{namespace}/secret_policys": { "get": { "summary": "List Secret Policy.", "description": "List the set of secret_policy in a namespace.", "operationId": "ves.io.schema.secret_policy.API.List", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/secret_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 secret_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/blindfold/" }, "x-ves-proto-rpc": "ves.io.schema.secret_policy.API.List", "tags": [ "secret_management" ], "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": "Secret Policy.", "x-ves-proto-service": "ves.io.schema.secret_policy.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/secret_management/namespaces/{namespace}/secret_policys/{name}": { "get": { "summary": "GET Secret Policy.", "description": "GET secret_policy reads a given object from storage backend for metadata.namespace.", "operationId": "ves.io.schema.secret_policy.API.Get", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/secret_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/blindfold/" }, "x-ves-proto-rpc": "ves.io.schema.secret_policy.API.Get", "tags": [ "secret_management" ], "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 Secret Policy.", "description": "DELETE the specified secret_policy.", "operationId": "ves.io.schema.secret_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/secret_policyDeleteRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/blindfold/" }, "x-ves-proto-rpc": "ves.io.schema.secret_policy.API.Delete", "tags": [ "secret_management" ], "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": [ "secret-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": [ "secret-policy", "contained_resources" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 500, "p95_ms": 1500, "p99_ms": 4000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "Secret Policy.", "x-ves-proto-service": "ves.io.schema.secret_policy.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/secret_management/namespaces/{metadata.namespace}/secret_policy_rules": { "post": { "summary": "Create Secret Policy Rule.", "description": "Create secret_policy_rule creates a new object in storage backend for metadata.namespace.", "operationId": "ves.io.schema.secret_policy_rule.API.Create", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/secret_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/secret_policy_ruleCreateRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/blindfold/" }, "x-ves-proto-rpc": "ves.io.schema.secret_policy_rule.API.Create", "tags": [ "secret_management" ], "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": [ "Secret-policy-rule resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "secret-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": [ "secret-policy-rule" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "Secret Policy Rule.", "x-ves-proto-service": "ves.io.schema.secret_policy_rule.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/secret_management/namespaces/{metadata.namespace}/secret_policy_rules/{metadata.name}": { "put": { "summary": "Replace Secret Policy Rule.", "description": "Replace secret_policy_rule creates a new object in storage backend for metadata.namespace.", "operationId": "ves.io.schema.secret_policy_rule.API.Replace", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/secret_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/secret_policy_ruleReplaceRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/blindfold/" }, "x-ves-proto-rpc": "ves.io.schema.secret_policy_rule.API.Replace", "tags": [ "secret_management" ], "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": [ "secret-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": [ "secret-policy-rule" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 800, "p95_ms": 2500, "p99_ms": 6000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "Secret Policy Rule.", "x-ves-proto-service": "ves.io.schema.secret_policy_rule.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/secret_management/namespaces/{namespace}/secret_policy_rules": { "get": { "summary": "List Secret Policy Rule.", "description": "List the set of secret_policy_rule in a namespace.", "operationId": "ves.io.schema.secret_policy_rule.API.List", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/secret_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 secret_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/blindfold/" }, "x-ves-proto-rpc": "ves.io.schema.secret_policy_rule.API.List", "tags": [ "secret_management" ], "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": "Secret Policy Rule.", "x-ves-proto-service": "ves.io.schema.secret_policy_rule.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/secret_management/namespaces/{namespace}/secret_policy_rules/{name}": { "get": { "summary": "GET Secret Policy Rule.", "description": "GET secret_policy_rule reads a given object from storage backend for metadata.namespace.", "operationId": "ves.io.schema.secret_policy_rule.API.Get", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/secret_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/blindfold/" }, "x-ves-proto-rpc": "ves.io.schema.secret_policy_rule.API.Get", "tags": [ "secret_management" ], "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 Secret Policy Rule.", "description": "DELETE the specified secret_policy_rule.", "operationId": "ves.io.schema.secret_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/secret_policy_ruleDeleteRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/blindfold/" }, "x-ves-proto-rpc": "ves.io.schema.secret_policy_rule.API.Delete", "tags": [ "secret_management" ], "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": [ "secret-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": [ "secret-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": "Secret Policy Rule.", "x-ves-proto-service": "ves.io.schema.secret_policy_rule.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/secret_management/namespaces/{metadata.namespace}/voltshare_admin_policys": { "post": { "summary": "Create VoltShare Admin Policy.", "description": "Create voltshare_admin_policy creates a new object in the storage backend for metadata.namespace.", "operationId": "ves.io.schema.voltshare_admin_policy.API.Create", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/voltshare_admin_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/voltshare_admin_policyCreateRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/blindfold/" }, "x-ves-proto-rpc": "ves.io.schema.voltshare_admin_policy.API.Create", "tags": [ "secret_management" ], "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": [ "Voltshare-admin-policy resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "voltshare-admin-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": [ "voltshare-admin-policy" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "VoltShare Admin Policy.", "x-ves-proto-service": "ves.io.schema.voltshare_admin_policy.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/secret_management/namespaces/{metadata.namespace}/voltshare_admin_policys/{metadata.name}": { "put": { "summary": "Replace VoltShare Admin Policy.", "description": "Replace voltshare_admin_policy replaces an existing object in the storage backend for metadata.namespace.", "operationId": "ves.io.schema.voltshare_admin_policy.API.Replace", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/voltshare_admin_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/voltshare_admin_policyReplaceRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/blindfold/" }, "x-ves-proto-rpc": "ves.io.schema.voltshare_admin_policy.API.Replace", "tags": [ "secret_management" ], "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": [ "voltshare-admin-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": [ "voltshare-admin-policy" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 800, "p95_ms": 2500, "p99_ms": 6000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "VoltShare Admin Policy.", "x-ves-proto-service": "ves.io.schema.voltshare_admin_policy.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/secret_management/namespaces/{namespace}/voltshare_admin_policys": { "get": { "summary": "List VoltShare Admin Policy.", "description": "List the set of voltshare_admin_policy in a namespace.", "operationId": "ves.io.schema.voltshare_admin_policy.API.List", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/voltshare_admin_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 voltshare_admin_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/blindfold/" }, "x-ves-proto-rpc": "ves.io.schema.voltshare_admin_policy.API.List", "tags": [ "secret_management" ], "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": "VoltShare Admin Policy.", "x-ves-proto-service": "ves.io.schema.voltshare_admin_policy.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/secret_management/namespaces/{namespace}/voltshare_admin_policys/{name}": { "get": { "summary": "GET VoltShare Admin Policy.", "description": "GET voltshare_admin_policy reads a given object from storage backend for metadata.namespace.", "operationId": "ves.io.schema.voltshare_admin_policy.API.Get", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/voltshare_admin_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/blindfold/" }, "x-ves-proto-rpc": "ves.io.schema.voltshare_admin_policy.API.Get", "tags": [ "secret_management" ], "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 VoltShare Admin Policy.", "description": "DELETE the specified voltshare_admin_policy.", "operationId": "ves.io.schema.voltshare_admin_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/voltshare_admin_policyDeleteRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/blindfold/" }, "x-ves-proto-rpc": "ves.io.schema.voltshare_admin_policy.API.Delete", "tags": [ "secret_management" ], "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": [ "voltshare-admin-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": [ "voltshare-admin-policy", "contained_resources" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 500, "p95_ms": 1500, "p99_ms": 4000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "VoltShare Admin Policy.", "x-ves-proto-service": "ves.io.schema.voltshare_admin_policy.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" } }, "components": { "securitySchemes": { "ApiToken": { "type": "apiKey", "name": "Authorization", "in": "header", "description": "API Token authentication. Format: 'APIToken '" }, "apiKeyAuth": { "type": "apiKey", "in": "header", "name": "Authorization", "description": "F5 XC API Token (format: APIToken )" } }, "schemas": { "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for policyMatcherType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "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": "none" } } }, "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_yaml": "# Minimal example for policyRuleAction\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "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": "none" } } }, "policyRuleCombiningAlgorithm": { "type": "string", "description": "The rule combining algorithm for a policy determines how the list of rules in the policy is evaluated.\nIf any of the rules is configured with a App Firewall action, the rule combining algorithm must be configured to be FIRST_MATCH.\n\n- FIRST_MATCH Rules are evaluated sequentially till a matching rule is identified\n- ALLOW_OVERRIDES Rules with an ALLOW action are evaluated prior to rules with a DENY action\n- DENY_OVERRIDES Rules with a DENY action are evaluated prior to rules with an ALLOW action\n\n- FIRST_MATCH: First Match\n\nRules are evaluated sequentially till a matching rule is identified\n- DENY_OVERRIDES: Deny Overrides\n\nRules with a DENY action are evaluated prior to rules with an ALLOW action\n- ALLOW_OVERRIDES: Allow Overrides\n\nRules with an ALLOW action are evaluated prior to rules with a DENY action.", "title": "RuleCombiningAlgorithm", "enum": [ "FIRST_MATCH", "DENY_OVERRIDES", "ALLOW_OVERRIDES" ], "default": "FIRST_MATCH", "x-displayname": "Rule Combining Algorithm.", "x-ves-proto-enum": "ves.io.schema.policy.RuleCombiningAlgorithm", "x-f5xc-description-short": "The rule combining algorithm for a policy determines how the list of rules in the policy is evaluated.", "x-f5xc-description-medium": "The rule combining algorithm for a policy determines how the list of rules in the policy is evaluated. If any of the rules is configured with a App Firewall action, the rule combining algorithm must be configured to be FIRST_MATCH. - FIRST_MATCH Rules are evaluated sequentially till a matching...", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for policyRuleCombiningAlgorithm", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for policyRuleCombiningAlgorithm\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "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": "none" } } }, "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_yaml": "# Minimal example for policyTransformer\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "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": "none" } } }, "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 ::= | \",\" \n ::= [!] KEY [ | ]\n ::= \"\" | \n ::= | \n ::= \"notin\"\n ::= \"in\"\n ::= \"(\" \")\"\n ::= VALUE | VALUE \",\" \n ::= [\"=\"|\"==\"|\"!=\"] 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-08-20T09:12:47+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_yaml": "# Minimal example for schemaLabelSelectorType\nmetadata:\n name: example\n namespace: default\nspec:\n expressions: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"expressions\": \"value\"\n }\n}" }, "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" } } }, "schemasecret_policy_ruleGlobalSpecType": { "type": "object", "description": "A secret_policy_rule object consists of an unordered list of predicates and an action.\nThe predicates are evaluated against a set of input fields that are extracted from client certificate.\nA rule is considered to match if all predicates in the rule evaluate to true for that request.\nAny predicates that are not specified in a rule are implicitly considered to be true.\nIf a rule is matched, the action specified for the rule is enforced for that request.\n\nA secret_policy_rule can be part of exactly one secret_policy and must belong to the same namespace as the secret policy.", "title": "Secret Policy Rule Specifications", "x-displayname": "Global Specifications.", "x-ves-oneof-field-client_choice": "[\"client_name\",\"client_name_matcher\",\"client_selector\"]", "x-ves-proto-message": "ves.io.schema.secret_policy_rule.GlobalSpecType", "properties": { "action": { "allOf": [ { "$ref": "#/components/schemas/policyRuleAction" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "client_name": { "type": "string", "description": "Exclusive with [client_name_matcher client_selector]\nThe name of the client trying to access the secret. Name of the client will be extracted from client TLS certificate.\nThis predicate evaluates to true if client name matches the configured name.", "title": "client name", "maxLength": 256, "x-displayname": "Client Name.", "x-ves-example": "ver.re01.int.ves.I/O.", "x-ves-validation-rules": { "ves.io.schema.rules.string.max_bytes": "256" }, "x-f5xc-example": "ver.re01.int.F5 XC", "x-validation-rules": { "ves.io.schema.rules.string.max_bytes": "256" }, "x-f5xc-description-short": "Exclusive with [client_name_matcher client_selector] The name of the client trying to access the secret.", "x-f5xc-description-medium": "Exclusive with [client_name_matcher client_selector] The name of the client trying to access the secret. Name of the client will be extracted from client TLS certificate. This predicate evaluates to true if client name matches the configured name.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 256, "byteLength": { "max": 256 }, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "client_name_matcher", "client_selector" ] }, "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": [ "client_name", "client_selector" ] }, "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": [ "client_name", "client_name_matcher" ] } }, "x-f5xc-description-short": "Secret_policy_rule object consists of an unordered list of predicates and an action.", "x-f5xc-description-medium": "Secret_policy_rule object consists of an unordered list of predicates and an action. The predicates are evaluated against a set of input fields that are extracted from client certificate. A rule is considered to match if all predicates in the rule evaluate to true for that request.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for schemasecret_policy_ruleGlobalSpecType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemasecret_policy_ruleGlobalSpecType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "blindfold", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "secret_managementGetPolicyDocumentResponse": { "type": "object", "description": "Policy Document contains the information about the secret policy and all the secret policy rules for the policy.\nThis document can be given to F5 Distributed Cloud secret management tool to do secret encryption.", "title": "GetPolicyDocumentResponse", "x-displayname": "Policy Document.", "x-ves-proto-message": "ves.io.schema.secret_management.GetPolicyDocumentResponse", "properties": { "data": { "allOf": [ { "$ref": "#/components/schemas/secret_managementPolicyData" } ], "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Policy Document contains the information about the secret policy and all the secret policy rules for the policy.", "x-f5xc-description-medium": "Policy Document contains the information about the secret policy and all the secret policy rules for the policy. This document can be given to F5 Distributed Cloud secret management tool to do secret encryption.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for secret_managementGetPolicyDocumentResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for secret_managementGetPolicyDocumentResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "blindfold", "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" } } }, "secret_managementGetPublicKeyResponse": { "type": "object", "description": "F5XC Secret Management uses asymmetric cryptography for securing secrets.\nEach tenant will be assigned a keypair for secret management at registration time.\nWhile private part of the key never leaves F5 Distributed Cloud secret management, public part of this asymmetric key is used for secret encryption.\nGet_public_key_response is the response to the get_public_key API and holds the public key for secret encryption.", "title": "GetPublicKeyResponse", "x-displayname": "Public Key.", "x-ves-proto-message": "ves.io.schema.secret_management.GetPublicKeyResponse", "properties": { "data": { "allOf": [ { "$ref": "#/components/schemas/secret_managementKeyData" } ], "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "F5XC Secret Management uses asymmetric cryptography for securing secrets.", "x-f5xc-description-medium": "F5XC Secret Management uses asymmetric cryptography for securing secrets. Each tenant will be assigned a keypair for secret management at registration time. While private part of the key never leaves F5 Distributed Cloud secret management, public part of this asymmetric key is...", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for secret_managementGetPublicKeyResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for secret_managementGetPublicKeyResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "blindfold", "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" } } }, "secret_managementKeyData": { "type": "object", "description": "F5XC Secret Management uses asymmetric cryptography for securing secrets.\nEach tenant will be assigned a keypair for secret management at registration time.\nWhile private part of the key never leaves F5 Distributed Cloud secret management, public part of this asymmetric key is used for secret encryption.\nKey_data holds the public key for secret encryption.", "title": "KeyData", "x-displayname": "Public Key.", "x-ves-proto-message": "ves.io.schema.secret_management.KeyData", "properties": { "key_version": { "type": "integer", "description": "Version number or identifier", "title": "key_version", "format": "int64", "x-displayname": "Version of the key.", "x-ves-example": "1", "x-f5xc-example": "1", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "modulus_base64": { "type": "string", "description": "Modulus as Base64 encoded string.", "title": "modulus_base64", "x-displayname": "Modulus", "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "public_exponent_base64": { "type": "string", "description": "Public Exponent as Base64 encoded string.", "title": "public_exponent_base64", "x-displayname": "Public Exponent.", "x-ves-example": "Value", "x-f5xc-example": "value", "x-f5xc-description-short": "Public Exponent as Base64 encoded string.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "tenant": { "type": "string", "description": "Tenant of the public key.", "title": "tenant", "x-displayname": "Tenant", "x-ves-example": "VES-I/O", "x-f5xc-example": "ves-io", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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-08-20T09:12:47+00:00" } }, "x-f5xc-description-short": "F5XC Secret Management uses asymmetric cryptography for securing secrets.", "x-f5xc-description-medium": "F5XC Secret Management uses asymmetric cryptography for securing secrets. Each tenant will be assigned a keypair for secret management at registration time. While private part of the key never leaves F5 Distributed Cloud secret management, public part of this asymmetric key is...", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for secret_managementKeyData", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for secret_managementKeyData\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "blindfold", "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" } } }, "secret_managementPolicyData": { "type": "object", "description": "Policy_data contains the information about the secret policy and all the secret policy rules for the policy.", "title": "PolicyData", "x-displayname": "Policy Data.", "x-ves-proto-message": "ves.io.schema.secret_management.PolicyData", "properties": { "name": { "type": "string", "description": "Name of the policy.", "title": "name", "x-displayname": "Name", "x-ves-example": "F5 Distributed Cloud-secret-policy.", "x-f5xc-example": "F5 Distributed Cloud-secret-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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" }, "namespace": { "type": "string", "description": "Namespace of the policy.", "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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" }, "policy_id": { "type": "string", "description": "PolicyID for the policy. PolicyID is an integer ID which uniquely identifies the policy in given tenant.", "title": "policy_id", "format": "uint64", "x-displayname": "PolicyID", "x-ves-example": "101", "x-ves-validation-rules": { "ves.io.schema.rules.uint64.gte": "0", "ves.io.schema.rules.uint64.lte": "2147483647" }, "x-f5xc-example": "101", "x-validation-rules": { "ves.io.schema.rules.uint64.gte": "0", "ves.io.schema.rules.uint64.lte": "2147483647" }, "x-f5xc-description-short": "PolicyID for the policy. PolicyID is an integer ID which uniquely identifies the policy in given tenant.", "x-f5xc-description-medium": "PolicyID for the policy. PolicyID is an integer ID which uniquely identifies the policy in given tenant.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "format": "uint64", "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-field-mutability": "read-only" }, "policy_info": { "allOf": [ { "$ref": "#/components/schemas/secret_managementPolicyInfoType" } ], "x-f5xc-description-short": "Configuration parameter for policy info.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "tenant": { "type": "string", "description": "Tenant for the policy.", "title": "tenant", "x-displayname": "Tenant", "x-ves-example": "VES-I/O", "x-f5xc-example": "ves-io", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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-08-20T09:12:47+00:00" } }, "x-f5xc-description-short": "Policy_data contains the information about the secret policy and all the secret policy rules for the policy.", "x-f5xc-description-medium": "Policy_data contains the information about the secret policy and all the secret policy rules for the policy.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for secret_managementPolicyData", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for secret_managementPolicyData\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "blindfold", "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" } } }, "secret_managementPolicyInfoType": { "type": "object", "description": "Policy_information contains the shape and specifications of the secret policy.", "title": "PolicyInfoType", "x-displayname": "Policy Information.", "x-ves-proto-message": "ves.io.schema.secret_management.PolicyInfoType", "properties": { "algo": { "allOf": [ { "$ref": "#/components/schemas/policyRuleCombiningAlgorithm" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "rules": { "type": "array", "description": "A list of references to secret_policy_rule objects.\nThe order of evaluation of the rules depends on the rule combining algorithm.", "title": "Rules", "items": { "$ref": "#/components/schemas/schemasecret_policy_ruleGlobalSpecType" }, "x-displayname": "Secret Policy Rules.", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "List of references to secret_policy_rule objects. The order of evaluation of the rules depends on the rule combining algorithm.", "x-f5xc-description-medium": "List of references to secret_policy_rule objects. The order of evaluation of the rules depends on the rule combining algorithm.", "x-f5xc-constraints": { "constraintType": "array", "category": "policy", "minItems": 0, "maxItems": 100, "uniqueItems": false, "metadata": { "source": "inferred", "confidence": 0.8, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Policy_information contains the shape and specifications of the secret policy.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for secret_managementPolicyInfoType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for secret_managementPolicyInfoType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "blindfold", "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" } } }, "metricsVoltShareAccessCounter": { "type": "object", "description": "VoltShareAccessCounter contains the access count for each unique combination of group_by label in the request.", "title": "VoltShare Access Counter", "x-displayname": "VoltShare Access Counter.", "x-ves-proto-message": "ves.io.schema.voltshare.metrics.VoltShareAccessCounter", "properties": { "id": { "allOf": [ { "$ref": "#/components/schemas/metricsVoltShareAccessId" } ], "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/metricsVoltShareMetricValue" }, "x-displayname": "Metric Values.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "VoltShareAccessCounter contains the access count for each unique combination of group_by label in the request.", "x-f5xc-description-medium": "VoltShareAccessCounter contains the access count for each unique combination of group_by label in the request.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for metricsVoltShareAccessCounter", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for metricsVoltShareAccessCounter\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "blindfold", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "metricsVoltShareAccessId": { "type": "object", "description": "VoltShareAccessId uniquely identifies an entry in the response.\nVoltShare access count 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": "VoltShareAccessId", "x-displayname": "VoltShare Access ID.", "x-ves-proto-message": "ves.io.schema.voltshare.metrics.VoltShareAccessId", "properties": { "country": { "type": "string", "description": "Country from where the API call was made.", "title": "Country", "x-displayname": "Country", "x-ves-example": "US", "x-f5xc-example": "US", "x-f5xc-description-short": "Country from where the API call was made.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "operation": { "type": "string", "description": "Encrypt/Decrypt operation.", "title": "Operation", "x-displayname": "Operation", "x-ves-example": "Encrypt", "x-f5xc-example": "Encrypt", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "result": { "type": "string", "description": "Result of the VoltShare operation.", "title": "Result", "x-displayname": "Result", "x-ves-example": "Success", "x-f5xc-example": "Success", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "user_tenant": { "type": "string", "description": "Tenant that made the VoltShare API call.", "title": "User Tenant", "x-displayname": "User Tenant.", "x-ves-example": "Customer1", "x-f5xc-example": "customer1", "x-f5xc-description-short": "Tenant that made the VoltShare API call.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "VoltShareAccessId uniquely identifies an entry in the response.", "x-f5xc-description-medium": "VoltShareAccessId uniquely identifies an entry in the response. VoltShare access count 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 in the response.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for metricsVoltShareAccessId", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for metricsVoltShareAccessId\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "blindfold", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "metricsVoltShareMetricLabel": { "type": "string", "description": "VoltShare Access metric can be sliced and diced based\non one or more labels listed below.", "title": "MetricLabel", "enum": [ "OPERATION", "RESULT", "USER_TENANT", "COUNTRY" ], "default": "OPERATION", "x-displayname": "VoltShare Access Metric Labels.", "x-ves-proto-enum": "ves.io.schema.voltshare.metrics.VoltShareMetricLabel", "x-f5xc-description-short": "VoltShare Access metric can be sliced and diced based on one or more labels listed below.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for metricsVoltShareMetricLabel", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for metricsVoltShareMetricLabel\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "blindfold", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "metricsVoltShareMetricLabelFilter": { "type": "object", "description": "VoltShare Access metric is tagged with labels mentioned in MetricLabel.\nMetric label filter can be specified to query/aggregate specific timeseries based on label match.", "title": "MetricLabelFilter", "x-displayname": "VoltShare Access Metric Label Filter.", "x-ves-proto-message": "ves.io.schema.voltshare.metrics.VoltShareMetricLabelFilter", "properties": { "label": { "allOf": [ { "$ref": "#/components/schemas/metricsVoltShareMetricLabel" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "op": { "allOf": [ { "$ref": "#/components/schemas/metricsVoltShareMetricLabelOp" } ], "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": "ENCRYPT", "x-f5xc-example": "ENCRYPT", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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-08-20T09:12:47+00:00" } }, "x-f5xc-description-short": "VoltShare Access metric is tagged with labels mentioned in MetricLabel.", "x-f5xc-description-medium": "VoltShare Access metric is tagged with labels mentioned in MetricLabel. Metric label filter can be specified to query/aggregate specific timeseries based on label match.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for metricsVoltShareMetricLabelFilter", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for metricsVoltShareMetricLabelFilter\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "blindfold", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "metricsVoltShareMetricLabelOp": { "type": "string", "description": "The operator to use when querying VoltShare Access metrics with labels.", "title": "MetricLabelOp", "enum": [ "EQ", "NEQ" ], "default": "EQ", "x-displayname": "VoltShare Access Metric Label Operator.", "x-ves-proto-enum": "ves.io.schema.voltshare.metrics.VoltShareMetricLabelOp", "x-f5xc-description-short": "The operator to use when querying VoltShare Access metrics with labels.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for metricsVoltShareMetricLabelOp", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for metricsVoltShareMetricLabelOp\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "blindfold", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "metricsVoltShareMetricValue": { "type": "object", "description": "Value returned for a VoltShare Access Metrics query.", "title": "Metric Value", "x-displayname": "Metric Value.", "x-ves-proto-message": "ves.io.schema.voltshare.metrics.VoltShareMetricValue", "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": "Number of accesses.", "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-08-20T09:12:47+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-08-20T09:12:47+00:00" } }, "x-f5xc-description-short": "Value returned for a VoltShare Access Metrics query.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for metricsVoltShareMetricValue", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for metricsVoltShareMetricValue\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "blindfold", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "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_yaml": "# Minimal example for schemaSortOrder\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "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": "none" } } }, "voltshareAuditLogAggregationRequest": { "type": "object", "description": "Request to GET only aggregation data for audit logs.", "title": "AuditLogAggregationRequest", "x-displayname": "Audit Log Aggregation Request.", "x-ves-proto-message": "ves.io.schema.voltshare.AuditLogAggregationRequest", "properties": { "aggs": { "type": "object", "description": "Aggregations provide summary/analytics data over the log 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 keyed by user-defined aggregation name. The response will be keyed with the same name.\nOptional.", "title": "aggregations", "x-displayname": "Aggregations.", "x-f5xc-description-short": "Aggregations provide summary/analytics data over the log response.", "x-f5xc-description-medium": "Aggregations provide summary/analytics data over the log 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 keyed by user-defined aggregation name.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "end_time": { "type": "string", "description": "Fetch audit 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 ", "title": "end time", "x-displayname": "End Time", "x-ves-example": "2019-09-24T12:30:11.733Z.", "x-ves-validation-rules": { "ves.io.schema.rules.string.query_time": "true" }, "x-f5xc-example": "2019-09-24T12:30:11.733Z", "x-validation-rules": { "ves.io.schema.rules.string.query_time": "true" }, "x-f5xc-description-short": "Fetch audit logs whose timestamp <= end_time format: unix_timestamp|RFC 3339 Optional: If not specified, then the end_time will be evaluated to...", "x-f5xc-description-medium": "Fetch audit 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 .", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "namespace": { "type": "string", "description": "Fetch aggregation data scoped by namespace.", "title": "namespace", "x-displayname": "Namespace", "x-ves-example": "Value", "x-f5xc-example": "value", "x-f5xc-description-short": "Fetch aggregation data 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-08-20T09:12:47+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-08-20T09:12:47+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 := {[]}\n := \"\"\n := string\nOne or more of the following fields in audit log may be specified in the query.\nUser - user name\nsrc_ip - source IP address\nsecret_name - secret name\nauthor_tenant - tenant name of the secret creator\noperation - Encrypt/Decrypt\nresult - Success/Fail\ncountry - Country name\n := string\n := [\"=\"|\"!=\"|\"=~\"|\"!~\"]\n= : equal to\n!= : not equal to\nWhen more than one matcher is specified in the query, then audit logs matching ALL the matchers will be returned in the response.\n\nOptional: If not specified, all the audit logs matching the given tenant will be considered for aggregation.", "title": "query", "x-displayname": "Query", "x-ves-example": "{user=\\\"dana@example.com\\\"}", "x-f5xc-example": "\"{user=\\\"dana@example.com\\\"}\"", "x-f5xc-description-short": "Query is used to specify the list of matchers syntax for query := {[]} := \"\" :=...", "x-f5xc-description-medium": "Query is used to specify the list of matchers syntax for query := {[]} := \"\" := string One or more of the following fields in audit log may be specified in the query. User - user name src_ip - source IP address secret_name - secret...", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "content", "maxLength": 1024, "minLength": 0, "metadata": { "source": "inferred", "confidence": 0.75, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "start_time": { "type": "string", "description": "Fetch audit 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 -10m.", "title": "start time", "x-displayname": "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" }, "x-f5xc-description-short": "Fetch audit logs whose timestamp >= start_time format: unix_timestamp|RFC 3339 Optional: If not specified, then the start_time will be evaluated...", "x-f5xc-description-medium": "Fetch audit 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 -10m.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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 audit logs.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for voltshareAuditLogAggregationRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for voltshareAuditLogAggregationRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "blindfold", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "voltshareAuditLogAggregationResponse": { "type": "object", "description": "Response message for AuditLogAggregationRequest.", "title": "AuditLogAggregationResponse", "x-displayname": "Audit Log Aggregation Response.", "x-ves-proto-message": "ves.io.schema.voltshare.AuditLogAggregationResponse", "properties": { "aggs": { "type": "object", "description": "Aggregations provide summary/analytics data over the log 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 keyed with the aggregation name specified in the request.", "title": "aggregations", "x-displayname": "Aggregations.", "x-f5xc-description-short": "Aggregations provide summary/analytics data over the log response.", "x-f5xc-description-medium": "Aggregations provide summary/analytics data over the log 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 keyed with the aggregation name...", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "total_hits": { "type": "string", "description": "Total number of log messages 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 log messages 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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Response message for AuditLogAggregationRequest.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for voltshareAuditLogAggregationResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for voltshareAuditLogAggregationResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "blindfold", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "voltshareAuditLogRequest": { "type": "object", "description": "Request to fetch voltshare audit logs.", "title": "AuditLogRequest", "x-displayname": "Audit Log Request.", "x-ves-proto-message": "ves.io.schema.voltshare.AuditLogRequest", "properties": { "aggs": { "type": "object", "description": "Aggregations provide summary/analytics data over the log 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 keyed by user-defined aggregation name. The response will be keyed with the same name.\nOptional.", "title": "aggregations", "x-displayname": "Aggregations.", "x-f5xc-description-short": "Aggregations provide summary/analytics data over the log response.", "x-f5xc-description-medium": "Aggregations provide summary/analytics data over the log 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 keyed by user-defined aggregation name.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "end_time": { "type": "string", "description": "Fetch audit 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 ", "title": "end time", "x-displayname": "End Time", "x-ves-example": "2019-09-24T12:30:11.733Z.", "x-ves-validation-rules": { "ves.io.schema.rules.string.query_time": "true" }, "x-f5xc-example": "2019-09-24T12:30:11.733Z", "x-validation-rules": { "ves.io.schema.rules.string.query_time": "true" }, "x-f5xc-description-short": "Fetch audit logs whose timestamp <= end_time format: unix_timestamp|RFC 3339 Optional: If not specified, then the end_time will be evaluated to...", "x-f5xc-description-medium": "Fetch audit 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 .", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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 log messages 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": "0", "x-f5xc-example": "0", "x-f5xc-description-short": "Limits the number of logs returned in the response Optional: If not specified, first or last 500 log messages that matches the query (depending on...", "x-f5xc-description-medium": "Limits the number of logs returned in the response Optional: If not specified, first or last 500 log messages 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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "namespace": { "type": "string", "description": "Fetch the log messages scoped by namespace.", "title": "namespace", "x-displayname": "Namespace", "x-ves-example": "Value", "x-f5xc-example": "value", "x-f5xc-description-short": "Fetch the log messages 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-08-20T09:12:47+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-08-20T09:12:47+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 := {[]}\n := \"\"\n := string\nOne or more of the following fields in audit log may be specified in the query.\nUser - user name\nsrc_ip - source IP address\nsecret_name - secret name\nauthor_tenant - tenant name of the secret creator\noperation - Encrypt/Decrypt\nresult - Success/Fail\ncountry - Country name\n := string\n := [\"=\"|\"!=\"|\"=~\"|\"!~\"]\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 audit logs matching ALL the matchers will be returned in the response.\n\nOptional: If not specified, all the audit logs matching the given tenant will be returned.", "title": "query", "x-displayname": "Query", "x-ves-example": "{user=\\\"dana@example.com\\\"}", "x-f5xc-example": "\"{user=\\\"dana@example.com\\\"}\"", "x-f5xc-description-short": "Query is used to specify the list of matchers syntax for query := {[]} := \"\" :=...", "x-f5xc-description-medium": "Query is used to specify the list of matchers syntax for query := {[]} := \"\" := string One or more of the following fields in audit log may be specified in the query. User - user name src_ip - source IP address secret_name - secret...", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "content", "maxLength": 1024, "minLength": 0, "metadata": { "source": "inferred", "confidence": 0.75, "validatedAt": "2026-08-20T09:12:47+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 log messages (or all log messages) 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 more logs 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 log messages (or all log messages) that matches the query.", "x-f5xc-description-medium": "Scroll is used to retrieve large number of log messages (or all log messages) 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 more logs left to return. The number of messages in each...", "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_values": { "allOf": [ { "$ref": "#/components/schemas/voltshareSearchAfterSortValues" } ], "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "start_time": { "type": "string", "description": "Fetch audit 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 -10m.", "title": "start time", "x-displayname": "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" }, "x-f5xc-description-short": "Fetch audit logs whose timestamp >= start_time format: unix_timestamp|RFC 3339 Optional: If not specified, then the start_time will be evaluated...", "x-f5xc-description-medium": "Fetch audit 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 -10m.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for voltshareAuditLogRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for voltshareAuditLogRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "blindfold", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "voltshareAuditLogResponse": { "type": "object", "description": "Response message for AuditLogRequest/LogScrollRequest.", "title": "AuditLogResponse", "x-displayname": "Audit Log Response.", "x-ves-proto-message": "ves.io.schema.voltshare.AuditLogResponse", "properties": { "aggs": { "type": "object", "description": "Aggregations provide summary/analytics data over the log 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 keyed with the aggregation name specified in the request.", "title": "aggregations", "x-displayname": "Aggregations.", "x-f5xc-description-short": "Aggregations provide summary/analytics data over the log response.", "x-f5xc-description-medium": "Aggregations provide summary/analytics data over the log 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 keyed with the aggregation name...", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "last_sort_values": { "allOf": [ { "$ref": "#/components/schemas/voltshareSearchAfterSortValues" } ], "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. Not all log messages that matched the query are returned in the response.", "title": "logs", "items": { "type": "string" }, "x-displayname": "Logs", "x-ves-example": "Value", "x-f5xc-example": "value", "x-f5xc-description-short": "List of log messages that matched the query. Not all log messages that matched the query are returned in the response.", "x-f5xc-description-medium": "List of log messages that matched the query. Not all log messages that matched the query are returned in the response.", "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 next batch of log messages 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 AuditLogResponse.", "title": "scroll id", "x-displayname": "Scroll ID", "x-ves-example": "Vm9sdGVycmEgRWRnZSBQbGF0Zm9ybQ==.", "x-f5xc-example": "Vm9sdGVycmEgRWRnZSBQbGF0Zm9ybQ==", "x-f5xc-description-short": "Long Base-64 encoded string which can be used to retrieve next batch of log messages using the scroll request.", "x-f5xc-description-medium": "Long Base-64 encoded string which can be used to retrieve next batch of log messages 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-08-20T09:12:47+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 log messages 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 log messages 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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Response message for AuditLogRequest/LogScrollRequest.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for voltshareAuditLogResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for voltshareAuditLogResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "blindfold", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "voltshareAuditLogScrollRequest": { "type": "object", "description": "Scroll request is used to fetch large number of log messages in multiple batches with each LogResponse\ncontaining no more than 500 (max value for limit in the request) log messages. To scroll through more than 500 or\nall log messages, one can use the LogScrollRequest. Use the scroll_id returned in the LogResponse to fetch the next\nbatch of log messages and one can continue this process till the scroll_id returned in the LogResponse is \"\" which\nindicates no more log messages to scroll.", "title": "AuditLogScrollRequest", "x-displayname": "Audit Log Scroll Request.", "x-ves-proto-message": "ves.io.schema.voltshare.AuditLogScrollRequest", "properties": { "namespace": { "type": "string", "description": "Fetch the log messages scoped by namespace.", "title": "namespace", "x-displayname": "Namespace", "x-ves-example": "Value", "x-f5xc-example": "value", "x-f5xc-description-short": "Fetch the log messages 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-08-20T09:12:47+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-08-20T09:12:47+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 log messages.", "title": "scroll id", "x-displayname": "Scroll ID", "x-ves-example": "Vm9sdGVycmEgRWRnZSBQbGF0Zm9ybQ==.", "x-f5xc-example": "Vm9sdGVycmEgRWRnZSBQbGF0Zm9ybQ==", "x-f5xc-description-short": "Long Base-64 encoded string which can be used to retrieve next batch of log messages.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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 log messages in multiple batches with each LogResponse containing no more than 500 (max value for...", "x-f5xc-description-medium": "Scroll request is used to fetch large number of log messages in multiple batches with each LogResponse containing no more than 500 (max value for limit in the request) log messages. To scroll through more than 500 or all log messages, one can use the LogScrollRequest. Use the scroll_id returned...", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for voltshareAuditLogScrollRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for voltshareAuditLogScrollRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "blindfold", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "voltshareDecryptSecretRequest": { "type": "object", "description": "DecryptSecretRequest contains parameters for DecryptSecret API.", "title": "DecryptSecret Request", "x-displayname": "DecryptSecret Request.", "x-ves-proto-message": "ves.io.schema.voltshare.DecryptSecretRequest", "properties": { "blinded_encrypted_key_base64": { "type": "string", "description": "Blinded Encrypted Key in base64 format.", "title": "blinded_encrypted_key", "x-displayname": "Blinded Encrypted Key.", "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": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "policy_document": { "allOf": [ { "$ref": "#/components/schemas/voltsharePolicyInformationType" } ], "x-f5xc-description-short": "Configuration parameter for policy document.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "policy_document_hmac_base64": { "type": "string", "description": "Base64 encoded HMAC of the policy document.", "title": "policy_document_hmac", "x-displayname": "Policy Document HMAC.", "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" }, "x-f5xc-description-short": "Base64 encoded HMAC of the policy document.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } } }, "x-f5xc-description-short": "DecryptSecretRequest contains parameters for DecryptSecret API.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for voltshareDecryptSecretRequest", "required_fields": [ "blinded_encrypted_key_base64", "policy_document_hmac_base64" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for voltshareDecryptSecretRequest\nmetadata:\n name: example\n namespace: default\nspec:\n blinded_encrypted_key_base64: value\n policy_document_hmac_base64: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"blinded_encrypted_key_base64\": \"value\",\n \"policy_document_hmac_base64\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "blindfold", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "voltshareDecryptSecretResponse": { "type": "object", "description": "DecryptSecretResponse contains the response of DecryptSecret API.", "title": "DecryptSecret Response", "x-displayname": "DecryptSecret Response.", "x-ves-proto-message": "ves.io.schema.voltshare.DecryptSecretResponse", "properties": { "blinded_key_base64": { "type": "string", "description": "Blinded Key in base64 format.", "title": "blinded_key", "x-displayname": "Blinded Key.", "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "DecryptSecretResponse contains the response of DecryptSecret API.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for voltshareDecryptSecretResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for voltshareDecryptSecretResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "blindfold", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "voltsharePolicyInformationType": { "type": "object", "description": "PolicyInformation contains user defined policy and metadata added by the backend server.", "title": "Policy Information", "x-displayname": "Policy Information.", "x-ves-proto-message": "ves.io.schema.voltshare.PolicyInformationType", "properties": { "author": { "allOf": [ { "$ref": "#/components/schemas/voltshareUserRecordType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "blindfold_key_version": { "type": "integer", "description": "Version of BlindfoldKey that will be used for encryption.", "title": "blindfold_key_version", "format": "int64", "x-displayname": "Blindfold KeyVersion.", "x-ves-example": "0", "x-f5xc-example": "0", "x-f5xc-description-short": "Version of BlindfoldKey that will be used for encryption.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "creation_time": { "type": "string", "description": "Creation time for this policy document.", "title": "creation_time", "format": "date-time", "x-displayname": "Creation Time.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "format": "date-time", "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "policy": { "allOf": [ { "$ref": "#/components/schemas/voltsharePolicyType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "policy_id": { "type": "string", "description": "A unique 31 bit number assigned to this policy.", "title": "policy_id", "format": "uint64", "x-displayname": "PolicyID", "x-ves-example": "0", "x-f5xc-example": "0", "x-f5xc-description-short": "Unique 31 bit number assigned to this policy.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "format": "uint64", "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-field-mutability": "read-only" }, "secret_name": { "type": "string", "description": "Name of the secret.", "title": "secret_name", "x-displayname": "Secret Name.", "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "PolicyInformation contains user defined policy and metadata added by the backend server.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for voltsharePolicyInformationType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for voltsharePolicyInformationType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "blindfold", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "voltsharePolicyType": { "type": "object", "description": "Policy contains user defined policy. It contains list of allowed users and expiry time.", "title": "Policy", "x-displayname": "Policy", "x-ves-proto-message": "ves.io.schema.voltshare.PolicyType", "properties": { "allowed_users": { "type": "array", "description": "List of Users allowed to decrypt the secret.", "title": "allowed_users", "maxItems": 256, "items": { "$ref": "#/components/schemas/voltshareUserRecordType" }, "x-displayname": "Allowed Users.", "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": "List of Users allowed to decrypt the secret.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 256, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "expiration_timestamp": { "type": "string", "description": "Until when this policy is valid. After expiration only author can decrypt the secret.", "title": "expiration_timestamp", "format": "date-time", "x-displayname": "Expiration Time.", "x-f5xc-description-short": "Until when this policy is valid. After expiration only author can decrypt the secret.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "format": "date-time", "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Policy contains user defined policy. It contains list of allowed users and expiry time.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for voltsharePolicyType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for voltsharePolicyType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "blindfold", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "voltshareProcessPolicyRequest": { "type": "object", "description": "ProcessPolicyRequest contains parameters ProcessPolicyInformation API.", "title": "ProcessPolicyRequest", "x-displayname": "ProcessPolicy Request.", "x-ves-proto-message": "ves.io.schema.voltshare.ProcessPolicyRequest", "properties": { "policy": { "allOf": [ { "$ref": "#/components/schemas/voltsharePolicyType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "secret_name": { "type": "string", "description": "Name of the secret.", "title": "secret_name", "minLength": 1, "maxLength": 256, "x-displayname": "Secret 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_bytes": "256", "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.max_bytes": "256", "ves.io.schema.rules.string.min_bytes": "1" }, "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "minLength": 1, "maxLength": 256, "byteLength": { "max": 256, "min": 1 }, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } } }, "x-f5xc-description-short": "ProcessPolicyRequest contains parameters ProcessPolicyInformation API.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for voltshareProcessPolicyRequest", "required_fields": [ "secret_name" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for voltshareProcessPolicyRequest\nmetadata:\n name: example\n namespace: default\nspec:\n secret_name: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"secret_name\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "blindfold", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "voltshareProcessPolicyResponse": { "type": "object", "description": "Response of the ProcessPolicyInformation API. It contains Processed Policy, HMAC of the policy and PublicKey to be used for encryption.", "title": "ProcessPolicyResponse", "x-displayname": "ProcessPolicy Response.", "x-ves-proto-message": "ves.io.schema.voltshare.ProcessPolicyResponse", "properties": { "policy_document": { "allOf": [ { "$ref": "#/components/schemas/voltsharePolicyInformationType" } ], "x-f5xc-description-short": "Configuration parameter for policy document.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "policy_document_hmac_base64": { "type": "string", "description": "Base64 encoded HMAC of the policy document.", "title": "policy_document_hmac", "x-displayname": "Policy Document HMAC.", "x-ves-example": "Value", "x-f5xc-example": "value", "x-f5xc-description-short": "Base64 encoded HMAC of the policy document.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "public_key": { "type": "string", "description": "PublicKey Document contains information about PublicKey used to encrypt symmetric encryption key. Private part of this key is ONLY with F5XC Secret Management service.\nValue of this field is a base64 string. When decoded, it unmarshal to PublicKeyDocumentType structure.", "title": "Public Key Document", "x-displayname": "Public Key Document.", "x-ves-example": "Value", "x-f5xc-example": "value", "x-f5xc-description-short": "PublicKey Document contains information about PublicKey used to encrypt symmetric encryption key.", "x-f5xc-description-medium": "PublicKey Document contains information about PublicKey used to encrypt symmetric encryption key. Private part of this key is ONLY with F5XC Secret Management service. Value of this field is a base64 string.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "crypto", "maxLength": 1024, "minLength": 100, "pattern": "^-----BEGIN (RSA |EC |)?(PRIVATE |PUBLIC )?KEY-----\\n.*\\n-----END (RSA |EC |)?(PRIVATE |PUBLIC )?KEY-----$", "format": "pem", "byteLength": { "min": 100, "max": 5242880 }, "validation": { "standard": "PEM" }, "metadata": { "source": "inferred", "confidence": 0.9, "validatedAt": "2026-08-20T09:12:47+00:00" }, "deterministic": true }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Response of the ProcessPolicyInformation API. It contains Processed Policy, HMAC of the policy and PublicKey to be used for encryption.", "x-f5xc-description-medium": "Response of the ProcessPolicyInformation API. It contains Processed Policy, HMAC of the policy and PublicKey to be used for encryption.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for voltshareProcessPolicyResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for voltshareProcessPolicyResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "blindfold", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "voltshareSearchAfterSortValues": { "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.voltshare.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-08-20T09:12:47+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 voltshareSearchAfterSortValues", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for voltshareSearchAfterSortValues\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "blindfold", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "voltshareUserRecordType": { "type": "object", "description": "UserRecordType contains information about a user.", "title": "User Record", "x-displayname": "User Record.", "x-ves-proto-message": "ves.io.schema.voltshare.UserRecordType", "properties": { "email": { "type": "string", "description": "Email ID of the user.", "title": "email", "minLength": 1, "maxLength": 256, "x-displayname": "Email", "x-ves-example": "Value", "x-ves-validation-rules": { "ves.io.schema.rules.string.email": "true", "ves.io.schema.rules.string.max_bytes": "256", "ves.io.schema.rules.string.min_bytes": "1" }, "x-f5xc-example": "value", "x-validation-rules": { "ves.io.schema.rules.string.email": "true", "ves.io.schema.rules.string.max_bytes": "256", "ves.io.schema.rules.string.min_bytes": "1" }, "format": "email", "pattern": "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "minLength": 1, "maxLength": 256, "pattern": "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$", "format": "email", "formatDescription": "RFC 5322 email address, max 254 characters", "validation": { "rfc": "RFC 5322" }, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" }, "deterministic": true, "byteLength": { "max": 256, "min": 1 } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "tenant": { "type": "string", "description": "Tenant of the user.", "title": "tenant", "minLength": 1, "maxLength": 256, "x-displayname": "Tenant", "x-ves-example": "Value", "x-ves-validation-rules": { "ves.io.schema.rules.string.max_bytes": "256", "ves.io.schema.rules.string.min_bytes": "1" }, "x-f5xc-example": "value", "x-validation-rules": { "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": 256, "byteLength": { "max": 256, "min": 1 }, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false }, "x-field-mutability": "read-only" } }, "x-f5xc-description-short": "UserRecordType contains information about a user.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for voltshareUserRecordType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for voltshareUserRecordType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "blindfold", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "voltshareVoltShareAccessCountRequest": { "type": "object", "description": "Request to GET number of VoltShare API calls aggregated across multiple dimensions like OPERATION, COUNTRY, RESULT, USER_TENANT.", "title": "VoltShareAccessCountRequest", "x-displayname": "VoltShare Access Count Request.", "x-ves-proto-message": "ves.io.schema.voltshare.VoltShareAccessCountRequest", "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 ", "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 .", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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.\nOPERATION, RESULT, USER_TENANT, COUNTRY.\n\nOptional: If not specified, then the metric is aggregated across all the labels.", "title": "Group by", "items": { "$ref": "#/components/schemas/metricsVoltShareMetricLabel" }, "x-displayname": "Group By", "x-f5xc-description-short": "Aggregate data by one or more labels listed here. OPERATION, RESULT, USER_TENANT, COUNTRY.", "x-f5xc-description-medium": "Aggregate data by one or more labels listed here. OPERATION, RESULT, USER_TENANT, COUNTRY. Optional: If not specified, then the metric is aggregated across all the labels.", "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.\nOPERATION, RESULT, USER_TENANT, COUNTRY.\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/metricsVoltShareMetricLabelFilter" }, "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 security events for the given namespace.", "title": "Namespace", "x-displayname": "Namespace", "x-ves-example": "Blogging-app-namespace-1.", "x-f5xc-example": "blogging-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-08-20T09:12:47+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-08-20T09:12:47+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 -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 -10m.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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 ", "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Request to GET number of VoltShare API calls aggregated across multiple dimensions like OPERATION, COUNTRY, RESULT, USER_TENANT.", "x-f5xc-description-medium": "Request to GET number of VoltShare API calls aggregated across multiple dimensions like OPERATION, COUNTRY, RESULT, USER_TENANT.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for voltshareVoltShareAccessCountRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for voltshareVoltShareAccessCountRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "blindfold", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "voltshareVoltShareAccessCountResponse": { "type": "object", "description": "VoltShare access count for each unique combination of group_by labels in the VoltShareAccessCountRequest.", "title": "VoltShareAccessCountResponse", "x-displayname": "VoltShare Access Count Response.", "x-ves-proto-message": "ves.io.schema.voltshare.VoltShareAccessCountResponse", "properties": { "data": { "type": "array", "description": "List of VoltShare Access count data for each unique combination of group_by labels.", "title": "Security events counter data", "items": { "$ref": "#/components/schemas/metricsVoltShareAccessCounter" }, "x-displayname": "VoltShare Access Count.", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "List of VoltShare Access count data for each unique combination of group_by labels.", "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "VoltShare access count for each unique combination of group_by labels in the VoltShareAccessCountRequest.", "x-f5xc-description-medium": "VoltShare access count for each unique combination of group_by labels in the VoltShareAccessCountRequest.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for voltshareVoltShareAccessCountResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for voltshareVoltShareAccessCountResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "blindfold", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "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_yaml": "# Minimal example for ioschemaEmpty\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "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": "none" } } }, "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\": ,\n\"lastName\": \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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for protobufAny\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "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": "none" } } }, "schemaAppRoleAuthInfoType": { "type": "object", "description": "AppRoleAuthInfoType contains parameters for AppRole authentication in Hashicorp Vault.", "title": "AppRoleAuthInfoType", "x-displayname": "Vault AppRole Authentication Parameters.", "x-ves-proto-message": "ves.io.schema.AppRoleAuthInfoType", "properties": { "role_id": { "type": "string", "description": "Role-ID to be used for authentication.", "title": "role-id", "x-displayname": "Role ID", "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-field-mutability": "read-only" }, "secret_id": { "allOf": [ { "$ref": "#/components/schemas/schemaSecretType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-field-mutability": "read-only" } }, "x-f5xc-description-short": "AppRoleAuthInfoType contains parameters for AppRole authentication in Hashicorp Vault.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for schemaAppRoleAuthInfoType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemaAppRoleAuthInfoType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "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": "security", "multi_tenant_pattern": "none" } } }, "schemaAuthnTypeBasicAuth": { "type": "object", "description": "AuthnTypeBasicAuth is used for using basic_auth mode of HTTP authentication.", "title": "AuthnTypeBasicAuth", "x-displayname": "BasicAuth Authentication Parameters.", "x-ves-proto-message": "ves.io.schema.AuthnTypeBasicAuth", "properties": { "password": { "allOf": [ { "$ref": "#/components/schemas/schemaSecretType" } ], "x-f5xc-example": "MySecureP@ssw0rd123!", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "username": { "type": "string", "description": "The username to encode in Basic Auth scheme.", "title": "username", "x-displayname": "Username", "x-ves-example": "Value", "x-f5xc-example": "value", "x-f5xc-description-short": "The username to encode in Basic Auth scheme.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "identity", "maxLength": 1024, "minLength": 1, "pattern": "^[a-zA-Z0-9_.-]+$", "characterSet": { "allowed": "[a-zA-Z0-9_.-]", "description": "Alphanumeric with underscores, dots, hyphens" }, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "AuthnTypeBasicAuth is used for using basic_auth mode of HTTP authentication.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for schemaAuthnTypeBasicAuth", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemaAuthnTypeBasicAuth\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "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": "none" } } }, "schemaAuthnTypeHeaders": { "type": "object", "description": "AuthnTypeHeaders is used for setting headers for authentication.", "title": "AuthnTypeHeaders", "x-displayname": "Authentication Headers.", "x-ves-proto-message": "ves.io.schema.AuthnTypeHeaders", "properties": { "headers": { "type": "object", "description": "The set of authentication headers to pass in HTTP request.", "title": "headers", "x-displayname": "Headers", "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" }, "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" }, "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "The set of authentication headers to pass in HTTP request.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "AuthnTypeHeaders is used for setting headers for authentication.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for schemaAuthnTypeHeaders", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemaAuthnTypeHeaders\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "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": "none" } } }, "schemaAuthnTypeQueryParams": { "type": "object", "description": "AuthnTypeQueryParams is used for setting query_params for authentication.", "title": "AuthnTypeQueryParams", "x-displayname": "Authentication QueryParams.", "x-ves-proto-message": "ves.io.schema.AuthnTypeQueryParams", "properties": { "query_params": { "type": "object", "description": "The set of authentication parameters to be passed as query parameters.", "title": "query_params", "x-displayname": "Query Parameters.", "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" }, "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" }, "x-f5xc-description-short": "The set of authentication parameters to be passed as query parameters.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "AuthnTypeQueryParams is used for setting query_params for authentication.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for schemaAuthnTypeQueryParams", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemaAuthnTypeQueryParams\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "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": "none" } } }, "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-08-20T09:12:47+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, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaBlindfoldSecretInfoType\nmetadata:\n name: example\n namespace: default\nspec:\n location: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"location\": \"value\"\n }\n}" }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaClearSecretInfoType\nmetadata:\n name: example\n namespace: default\nspec:\n url: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"url\": \"value\"\n }\n}" }, "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": "none" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaConditionType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "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": "none" } } }, "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_yaml": "# Minimal example for schemaErrorCode\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "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": "none" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for schemaErrorType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "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": "none" } } }, "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_yaml": "# Minimal example for schemaHashAlgorithm\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "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": "none" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for schemaHashAlgorithms\nmetadata:\n name: example\n namespace: default\nspec:\n hash_algorithms: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"hash_algorithms\": \"value\"\n }\n}" }, "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": "none" } } }, "schemaHostAccessInfoType": { "type": "object", "description": "HostAccessInfoType contains the information about how to connect to the remote host.", "title": "HostAccessInfoType", "x-displayname": "Host Access Information.", "x-ves-oneof-field-auth_params": "[\"rest_auth_info\",\"vault_auth_info\"]", "x-ves-proto-message": "ves.io.schema.HostAccessInfoType", "properties": { "rest_auth_info": { "allOf": [ { "$ref": "#/components/schemas/schemaRestAuthInfoType" } ], "x-f5xc-description-short": "Configuration parameter for rest auth info.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "vault_auth_info" ] }, "scheme": { "allOf": [ { "$ref": "#/components/schemas/schemaURLSchemeType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "server_endpoint": { "type": "string", "description": "Endpoint to connect to, in host:port format.", "title": "server_endpoint", "minLength": 1, "maxLength": 256, "x-displayname": "Server Endpoint and Port.", "x-ves-example": "Webserver:443.", "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": "webserver:443", "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": "Endpoint to connect to, in host:port format.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "minLength": 1, "maxLength": 256, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "tls_config": { "allOf": [ { "$ref": "#/components/schemas/schemaUpstreamTlsParamsType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "vault_auth_info": { "allOf": [ { "$ref": "#/components/schemas/schemaVaultAuthInfoType" } ], "x-f5xc-description-short": "Configuration parameter for vault auth info.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "rest_auth_info" ] } }, "x-f5xc-description-short": "HostAccessInfoType contains the information about how to connect to the remote host.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for schemaHostAccessInfoType", "required_fields": [ "server_endpoint" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemaHostAccessInfoType\nmetadata:\n name: example\n namespace: default\nspec:\n server_endpoint: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"server_endpoint\": \"value\"\n }\n}" }, "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": "none" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaInitializerType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "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": "none" } } }, "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_yaml": "# Minimal example for schemaInitializersType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "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": "none" } } }, "schemaNetworkRefType__ves_io_schema_advertise_policy": { "type": "object", "description": "This specifies a direct reference to a network configuration object.", "title": "NetworkRefType", "x-displayname": "Network Reference.", "x-ves-proto-message": "ves.io.schema.NetworkRefType", "properties": { "ref": { "type": "array", "description": "A virtual network direct reference.", "title": "ref", "maxItems": 1, "items": { "$ref": "#/components/schemas/schemaObjectRefType" }, "x-displayname": "Reference", "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-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 1, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } } }, "x-f5xc-description-short": "Specifies a direct reference to a network configuration object.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for schemaNetworkRefType", "required_fields": [ "ref" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemaNetworkRefType\nmetadata:\n name: example\n namespace: default\nspec:\n ref: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"ref\": \"value\"\n }\n}" }, "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": "none" } } }, "schemaNetworkSiteRefSelector__ves_io_schema_advertise_policy": { "type": "object", "description": "NetworkSiteRefSelector defines a union of reference to site or reference to virtual_network or reference to virtual_site\nIt is used to determine virtual network using following rules\n* Direct reference to virtual_network object\n* Site local network when referring to site object\n* All site local networks for sites selected by referring to virtual_site object.", "title": "NetworkSiteRefSelector", "x-displayname": "Network or Site Reference.", "x-ves-oneof-field-ref_or_selector": "[\"site\",\"virtual_network\",\"virtual_site\"]", "x-ves-proto-message": "ves.io.schema.NetworkSiteRefSelector", "properties": { "site": { "allOf": [ { "$ref": "#/components/schemas/schemaSiteRefType__ves_io_schema_advertise_policy" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "virtual_network", "virtual_site" ], "x-f5xc-references": [ { "resource_kind": "site", "field_path": "site", "gated_by": { "choice": "ref_or_selector" }, "required": false, "cardinality": "single" } ] }, "virtual_network": { "allOf": [ { "$ref": "#/components/schemas/schemaNetworkRefType__ves_io_schema_advertise_policy" } ], "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": [ "site", "virtual_site" ], "x-f5xc-references": [ { "resource_kind": "virtual_network", "field_path": "virtual_network", "gated_by": { "choice": "ref_or_selector" }, "required": false, "cardinality": "single" } ] }, "virtual_site": { "allOf": [ { "$ref": "#/components/schemas/schemaVSiteRefType__ves_io_schema_advertise_policy" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "site", "virtual_network" ], "x-f5xc-references": [ { "resource_kind": "virtual_site", "field_path": "virtual_site", "gated_by": { "choice": "ref_or_selector" }, "required": false, "cardinality": "single" } ] } }, "x-f5xc-description-short": "NetworkSiteRefSelector defines a union of reference to site or reference to virtual_network or reference to virtual_site It is used to determine...", "x-f5xc-description-medium": "NetworkSiteRefSelector defines a union of reference to site or reference to virtual_network or reference to virtual_site It is used to determine virtual network using following rules * Direct reference to virtual_network object * Site local network when referring to site object * All site local...", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for schemaNetworkSiteRefSelector", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemaNetworkSiteRefSelector\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "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": "none" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaObjectCreateMetaType\nmetadata:\n name: example\n namespace: default\nspec:\n name: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"name\": \"value\"\n }\n}" }, "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": "none" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaObjectGetMetaType\nmetadata:\n name: example\n namespace: default\nspec:\n name: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"name\": \"value\"\n }\n}" }, "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": "none" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaObjectRefType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "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": "none" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemaObjectReplaceMetaType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "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": "none" } } }, "schemaRestAuthInfoType": { "type": "object", "description": "Authentication parameters for REST based hosts.", "title": "RestAuthInfoType", "x-displayname": "REST Authentication Parameters.", "x-ves-oneof-field-auth_params": "[\"basic_auth\",\"headers_auth\",\"query_params_auth\"]", "x-ves-proto-message": "ves.io.schema.RestAuthInfoType", "properties": { "basic_auth": { "allOf": [ { "$ref": "#/components/schemas/schemaAuthnTypeBasicAuth" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "headers_auth", "query_params_auth" ] }, "headers_auth": { "allOf": [ { "$ref": "#/components/schemas/schemaAuthnTypeHeaders" } ], "x-f5xc-description-short": "Configuration parameter for headers auth.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "basic_auth", "query_params_auth" ] }, "query_params_auth": { "allOf": [ { "$ref": "#/components/schemas/schemaAuthnTypeQueryParams" } ], "x-f5xc-description-short": "Configuration parameter for query params auth.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "basic_auth", "headers_auth" ] } }, "x-f5xc-description-short": "Authentication parameters for REST based hosts.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for schemaRestAuthInfoType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemaRestAuthInfoType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "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": "none" } } }, "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_yaml": "# Minimal example for schemaSecretType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "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" } } }, "schemaSiteRefType__ves_io_schema_advertise_policy": { "type": "object", "description": "This specifies a direct reference to a site configuration object.", "title": "SiteRefType", "x-displayname": "Site Reference.", "x-ves-oneof-field-internet_vip_choice": "[\"disable_internet_vip\",\"enable_internet_vip\"]", "x-ves-proto-message": "ves.io.schema.SiteRefType", "properties": { "disable_internet_vip": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "enable_internet_vip" ] }, "enable_internet_vip": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "disable_internet_vip" ] }, "network_type": { "allOf": [ { "$ref": "#/components/schemas/schemaVirtualNetworkType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "ref": { "type": "array", "description": "A site direct reference.", "title": "ref", "maxItems": 1, "items": { "$ref": "#/components/schemas/schemaObjectRefType" }, "x-displayname": "Reference", "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-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 1, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } } }, "x-f5xc-description-short": "Specifies a direct reference to a site configuration object.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for schemaSiteRefType", "required_fields": [ "ref" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemaSiteRefType\nmetadata:\n name: example\n namespace: default\nspec:\n ref: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"ref\": \"value\"\n }\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" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaStatusMetaType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "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": "none" } } }, "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_yaml": "# Minimal example for schemaStatusPublishType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "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": "none" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaStatusType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "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": "none" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaSystemObjectGetMetaType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "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": "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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": "[REDACTED_PRIVATE_KEY]", "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_yaml": "# Minimal example for schemaTlsCertificateType\nmetadata:\n name: example\n namespace: default\nspec:\n certificate_url: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"certificate_url\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "certificates", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for schemaTlsParamsType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "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": "none" } } }, "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_yaml": "# Minimal example for schemaTlsProtocol\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "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": "none" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for schemaTlsValidationParamsType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "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": "none" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for schemaTrustedCAList\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "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" } } }, "schemaURLSchemeType": { "type": "string", "description": "SchemeType is used to indicate URL scheme\n\nHTTP:// scheme\nHTTPS:// scheme.", "title": "URLSchemeType", "enum": [ "HTTP", "HTTPS" ], "default": "HTTP", "x-displayname": "URL Scheme.", "x-ves-proto-enum": "ves.io.schema.URLSchemeType", "x-f5xc-description-short": "SchemeType is used to indicate URL scheme HTTP:// scheme HTTPS:// scheme.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for schemaURLSchemeType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemaURLSchemeType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "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": "none" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for schemaUpstreamCertificateParamsType\nmetadata:\n name: example\n namespace: default\nspec:\n certificates: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"certificates\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "certificates", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaUpstreamTlsParamsType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "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": "none" } } }, "schemaVSiteRefType__ves_io_schema_advertise_policy": { "type": "object", "description": "A reference to virtual_site object.", "title": "VSiteRefType", "x-displayname": "Virtual Site.", "x-ves-oneof-field-internet_vip_choice": "[\"disable_internet_vip\",\"enable_internet_vip\"]", "x-ves-proto-message": "ves.io.schema.VSiteRefType", "properties": { "disable_internet_vip": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "enable_internet_vip" ] }, "enable_internet_vip": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "disable_internet_vip" ] }, "network_type": { "allOf": [ { "$ref": "#/components/schemas/schemaVirtualNetworkType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "ref": { "type": "array", "description": "A virtual_site direct reference.", "title": "ref", "maxItems": 1, "items": { "$ref": "#/components/schemas/schemaObjectRefType" }, "x-displayname": "Reference", "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-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 1, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for schemaVSiteRefType", "required_fields": [ "ref" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemaVSiteRefType\nmetadata:\n name: example\n namespace: default\nspec:\n ref: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"ref\": \"value\"\n }\n}" }, "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": "none" } } }, "schemaVaultAuthInfoType": { "type": "object", "description": "Authentication parameters for Hashicorp Vault hosts.", "title": "VaultAuthTypeInfo", "x-displayname": "Vault Authentication Parameters.", "x-ves-oneof-field-auth_params": "[\"app_role_auth\",\"token\"]", "x-ves-proto-message": "ves.io.schema.VaultAuthInfoType", "properties": { "app_role_auth": { "allOf": [ { "$ref": "#/components/schemas/schemaAppRoleAuthInfoType" } ], "x-f5xc-description-short": "Configuration parameter for app role auth.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "token" ] }, "token": { "allOf": [ { "$ref": "#/components/schemas/schemaSecretType" } ], "x-f5xc-example": "[REDACTED_API_TOKEN]", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "app_role_auth" ] } }, "x-f5xc-description-short": "Authentication parameters for Hashicorp Vault hosts.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for schemaVaultAuthInfoType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemaVaultAuthInfoType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "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": "none" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaViewRefType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "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": "none" } } }, "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_yaml": "# Minimal example for schemaVirtualNetworkType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "secret_management_accessCreateRequest": { "type": "object", "description": "This is the input message of the 'Create' RPC.", "title": "CreateRequest is used to create an instance of secret_management_access", "x-displayname": "Create Request.", "x-ves-proto-message": "ves.io.schema.secret_management_access.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/secret_management_accessCreateSpecType" } ], "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 secret_management_accessCreateRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for secret_management_accessCreateRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "blindfold", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "secret_management_accessCreateResponse": { "type": "object", "x-ves-proto-message": "ves.io.schema.secret_management_access.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/secret_management_accessGetSpecType" } ], "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 secret_management_accessCreateResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for secret_management_accessCreateResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "blindfold", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "secret_management_accessCreateSpecType": { "type": "object", "description": "Create secret_management_access creates a new object in storage backend for metadata.namespace.", "title": "Create Secret Management Access Object", "x-displayname": "Create Secret Management Access.", "x-ves-displayorder": "2,3,1", "x-ves-proto-message": "ves.io.schema.secret_management_access.CreateSpecType", "properties": { "access_info": { "allOf": [ { "$ref": "#/components/schemas/schemaHostAccessInfoType" } ], "x-f5xc-description-short": "Configuration parameter for access info.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "provider_name": { "type": "string", "description": "Name given to this secret management backend. site.provider needs to be unique, and will be referenced for using this object.", "minLength": 1, "maxLength": 256, "x-displayname": "Provider Name.", "x-ves-example": "Vault_backend.", "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": "vault_backend", "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": "Name given to this secret management backend. site.provider needs to be unique, and will be referenced for using this object.", "x-f5xc-description-medium": "Name given to this secret management backend. site.provider needs to be unique, and will be referenced for using this object.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "minLength": 1, "maxLength": 256, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "where": { "allOf": [ { "$ref": "#/components/schemas/schemaNetworkSiteRefSelector__ves_io_schema_advertise_policy" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-references": [ { "resource_kind": "site", "field_path": "where", "gated_by": null, "required": false, "cardinality": "single" } ] } }, "x-f5xc-description-short": "Create secret_management_access creates a new object in storage backend for metadata.namespace.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for secret_management_accessCreateSpecType", "required_fields": [ "provider_name" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for secret_management_accessCreateSpecType\nmetadata:\n name: example\n namespace: default\nspec:\n provider_name: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"provider_name\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "blindfold", "x-f5xc-field-examples": { "spec.provider_name": "value" }, "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "secret_management_accessDeleteRequest": { "type": "object", "description": "This is the input message of the 'DELETE' RPC.", "title": "DeleteRequest is used to delete a secret_management_access", "x-displayname": "DELETE Request.", "x-ves-proto-message": "ves.io.schema.secret_management_access.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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for secret_management_accessDeleteRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for secret_management_accessDeleteRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "blindfold", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "secret_management_accessGetResponse": { "type": "object", "description": "This is the output message of the 'GET' RPC.", "title": "GetResponse is the shape of a read secret_management_access", "x-displayname": "GET Response.", "x-ves-proto-message": "ves.io.schema.secret_management_access.GetResponse", "properties": { "create_form": { "allOf": [ { "$ref": "#/components/schemas/secret_management_accessCreateRequest" } ], "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/secret_management_accessReplaceRequest" } ], "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/secret_management_accessGetSpecType" } ], "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/secret_management_accessStatusObject" }, "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-08-20T09:12:47+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 secret_management_accessGetResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for secret_management_accessGetResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "blindfold", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "secret_management_accessGetSpecType": { "type": "object", "description": "GET secret_management_access reads a given object from storage backend for metadata.namespace.", "title": "Get Secret Management Access Object", "x-displayname": "GET Secret Management Access.", "x-ves-displayorder": "2,3,1", "x-ves-proto-message": "ves.io.schema.secret_management_access.GetSpecType", "properties": { "access_info": { "allOf": [ { "$ref": "#/components/schemas/schemaHostAccessInfoType" } ], "x-f5xc-description-short": "Configuration parameter for access info.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "provider_name": { "type": "string", "description": "Name given to this secret management backend. site.provider needs to be unique, and will be referenced for using this object.", "minLength": 1, "maxLength": 256, "x-displayname": "Provider Name.", "x-ves-example": "Vault_backend.", "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": "vault_backend", "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": "Name given to this secret management backend. site.provider needs to be unique, and will be referenced for using this object.", "x-f5xc-description-medium": "Name given to this secret management backend. site.provider needs to be unique, and will be referenced for using this object.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "minLength": 1, "maxLength": 256, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "where": { "allOf": [ { "$ref": "#/components/schemas/schemaNetworkSiteRefSelector__ves_io_schema_advertise_policy" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-references": [ { "resource_kind": "virtual_site", "field_path": "where", "gated_by": null, "required": false, "cardinality": "single" } ] } }, "x-f5xc-description-short": "GET secret_management_access reads a given object from storage backend for metadata.namespace.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for secret_management_accessGetSpecType", "required_fields": [ "provider_name" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for secret_management_accessGetSpecType\nmetadata:\n name: example\n namespace: default\nspec:\n provider_name: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"provider_name\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "blindfold", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "secret_management_accessListResponse": { "type": "object", "description": "This is the output message of 'List' RPC.", "title": "ListResponse is the collection of secret_management_access", "x-displayname": "List Response.", "x-ves-proto-message": "ves.io.schema.secret_management_access.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/secret_management_accessListResponseItem" }, "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for secret_management_accessListResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for secret_management_accessListResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "blindfold", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "secret_management_accessListResponseItem": { "type": "object", "description": "By default a summary of secret_management_access 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 secret_management_access", "x-displayname": "List Item", "x-ves-proto-message": "ves.io.schema.secret_management_access.ListResponseItem", "properties": { "annotations": { "type": "object", "description": "The set of annotations present on this secret_management_access.", "title": "annotations", "x-displayname": "Annotations.", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "The set of annotations present on this secret_management_access.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "description": { "type": "string", "description": "The description set for this secret_management_access.", "title": "description", "x-displayname": "Description.", "x-f5xc-description-short": "The description set for this secret_management_access.", "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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "disabled": { "type": "boolean", "description": "A value of true indicates secret_management_access is administratively disabled.", "title": "disabled", "format": "boolean", "x-displayname": "Disabled", "x-f5xc-example": "True", "x-f5xc-description-short": "Value of true indicates secret_management_access is administratively disabled.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "get_spec": { "allOf": [ { "$ref": "#/components/schemas/secret_management_accessGetSpecType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "labels": { "type": "object", "description": "The set of labels present on this secret_management_access.", "title": "labels", "x-displayname": "Labels", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "The set of labels present on this secret_management_access.", "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 secret_management_access.", "title": "name", "x-displayname": "Name", "x-ves-example": "Name", "x-f5xc-example": "name", "x-f5xc-description-short": "The name of this secret_management_access.", "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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/secret_management_accessStatusObject" }, "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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "uid": { "type": "string", "description": "The unique uid of this secret_management_access.", "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 secret_management_access.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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-08-20T09:12:47+00:00" } }, "x-f5xc-description-short": "By default a summary of secret_management_access is returned in 'List'.", "x-f5xc-description-medium": "By default a summary of secret_management_access 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 secret_management_accessListResponseItem", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for secret_management_accessListResponseItem\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "blindfold", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "secret_management_accessReplaceRequest": { "type": "object", "description": "This is the input message of the 'Replace' RPC.", "title": "ReplaceRequest is used to replace contents of a secret_management_access", "x-displayname": "Replace Request.", "x-ves-proto-message": "ves.io.schema.secret_management_access.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/secret_management_accessReplaceSpecType" } ], "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 secret_management_accessReplaceRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for secret_management_accessReplaceRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "blindfold", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "secret_management_accessReplaceResponse": { "type": "object", "x-ves-proto-message": "ves.io.schema.secret_management_access.ReplaceResponse", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for secret_management_accessReplaceResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for secret_management_accessReplaceResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "blindfold", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "secret_management_accessReplaceSpecType": { "type": "object", "description": "Replace secret_management_access replaces an existing object in storage backend for metadata.namespace.", "title": "Replace Secret Management Access Object", "x-displayname": "Replace Secret Management Access.", "x-ves-displayorder": "2,3,1", "x-ves-proto-message": "ves.io.schema.secret_management_access.ReplaceSpecType", "properties": { "access_info": { "allOf": [ { "$ref": "#/components/schemas/schemaHostAccessInfoType" } ], "x-f5xc-description-short": "Configuration parameter for access info.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "provider_name": { "type": "string", "description": "Name given to this secret management backend. site.provider needs to be unique, and will be referenced for using this object.", "minLength": 1, "maxLength": 256, "x-displayname": "Provider Name.", "x-ves-example": "Vault_backend.", "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": "vault_backend", "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": "Name given to this secret management backend. site.provider needs to be unique, and will be referenced for using this object.", "x-f5xc-description-medium": "Name given to this secret management backend. site.provider needs to be unique, and will be referenced for using this object.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "minLength": 1, "maxLength": 256, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "where": { "allOf": [ { "$ref": "#/components/schemas/schemaNetworkSiteRefSelector__ves_io_schema_advertise_policy" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-references": [ { "resource_kind": "virtual_site", "field_path": "where", "gated_by": null, "required": false, "cardinality": "single" } ] } }, "x-f5xc-description-short": "Replace secret_management_access replaces an existing object in storage backend for metadata.namespace.", "x-f5xc-description-medium": "Replace secret_management_access replaces an existing object in storage backend for metadata.namespace.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for secret_management_accessReplaceSpecType", "required_fields": [ "provider_name" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for secret_management_accessReplaceSpecType\nmetadata:\n name: example\n namespace: default\nspec:\n provider_name: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"provider_name\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "blindfold", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "secret_management_accessStatusObject": { "type": "object", "description": "Most recently observed status of object.", "title": "Status for secret management access", "x-displayname": "Status", "x-ves-proto-message": "ves.io.schema.secret_management_access.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 secret_management_accessStatusObject", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for secret_management_accessStatusObject\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "blindfold", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for ioschemaObjectRefType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "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": "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaMessageMetaType\nmetadata:\n name: example\n namespace: default\nspec:\n name: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"name\": \"value\"\n }\n}" }, "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": "none" } } }, "schemasecret_policyCreateSpecType": { "type": "object", "description": "Create secret_policy creates a new object in the storage backend for metadata.namespace.", "title": "Create Secret Policy", "x-displayname": "Create Secret Policy.", "x-ves-oneof-field-rule_choice": "[\"rule_list\"]", "x-ves-proto-message": "ves.io.schema.secret_policy.CreateSpecType", "properties": { "allow_f5xc": { "type": "boolean", "description": "If allow_f5xc is set to true, it allows relevant F5XC infrastructure services to decrypt the secret encrypted using this policy.", "format": "boolean", "x-displayname": "Allow F5XC.", "x-ves-example": "True", "x-f5xc-example": "true", "x-f5xc-description-short": "If allow_f5xc is set to true, it allows relevant F5XC infrastructure services to decrypt the secret encrypted using this policy.", "x-f5xc-description-medium": "If allow_f5xc is set to true, it allows relevant F5XC infrastructure services to decrypt the secret encrypted using this policy.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "decrypt_cache_timeout": { "type": "string", "description": "Decrypt_cache_timeout contains the amount of time a decrypted secret is cached in wingman.\nValue for this parameter is a string ending in the suffix \"s\" (indicating seconds), suffix \"m\" (indicating minutes) or suffix \"h\" (indicating hours)", "x-displayname": "Decrypt Cache Timeout.", "x-ves-example": "6h", "x-f5xc-example": "6h", "x-f5xc-description-short": "Decrypt_cache_timeout contains the amount of time a decrypted secret is cached in wingman.", "x-f5xc-description-medium": "Decrypt_cache_timeout contains the amount of time a decrypted secret is cached in wingman. Value for this parameter is a string ending in the suffix \"s\" (indicating seconds), suffix \"m\" (indicating minutes) or suffix \"h\" (indicating hours).", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "rule_list": { "allOf": [ { "$ref": "#/components/schemas/secret_policyRuleList" } ], "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Create secret_policy creates a new object in the storage backend for metadata.namespace.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for schemasecret_policyCreateSpecType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemasecret_policyCreateSpecType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "blindfold", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": true }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Secret access policies should be centrally managed" }, "classification": { "category": "security", "multi_tenant_pattern": "shared-ref" } } }, "schemasecret_policyGetSpecType": { "type": "object", "description": "GET secret_policy reads a given object from storage backend for metadata.namespace.", "title": "Get Secret Policy", "x-displayname": "GET Secret Policy.", "x-ves-proto-message": "ves.io.schema.secret_policy.GetSpecType", "properties": { "allow_f5xc": { "type": "boolean", "description": "If allow_f5xc is set to true, it allows relevant F5XC infrastructure services to decrypt the secret encrypted using this policy.", "format": "boolean", "x-displayname": "Allow F5XC.", "x-ves-example": "True", "x-f5xc-example": "true", "x-f5xc-description-short": "If allow_f5xc is set to true, it allows relevant F5XC infrastructure services to decrypt the secret encrypted using this policy.", "x-f5xc-description-medium": "If allow_f5xc is set to true, it allows relevant F5XC infrastructure services to decrypt the secret encrypted using this policy.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "decrypt_cache_timeout": { "type": "string", "description": "Decrypt_cache_timeout contains the amount of time a decrypted secret is cached in wingman.\nValue for this parameter is a string ending in the suffix \"s\" (indicating seconds), suffix \"m\" (indicating minutes) or suffix \"h\" (indicating hours)", "x-displayname": "Decrypt Cache Timeout.", "x-ves-example": "6h", "x-f5xc-example": "6h", "x-f5xc-description-short": "Decrypt_cache_timeout contains the amount of time a decrypted secret is cached in wingman.", "x-f5xc-description-medium": "Decrypt_cache_timeout contains the amount of time a decrypted secret is cached in wingman. Value for this parameter is a string ending in the suffix \"s\" (indicating seconds), suffix \"m\" (indicating minutes) or suffix \"h\" (indicating hours).", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "deletion_time": { "type": "string", "description": "Deletion_time is set when the secret policy object is marked for DELETE,\nsecret policy marked for DELETE will be automatically deleted after deletion_time.", "title": "Deletion Time", "format": "date-time", "x-displayname": "Deletion Time.", "x-f5xc-description-short": "Deletion_time is set when the secret policy object is marked for DELETE, secret policy marked for DELETE will be automatically deleted after...", "x-f5xc-description-medium": "Deletion_time is set when the secret policy object is marked for DELETE, secret policy marked for DELETE will be automatically deleted after deletion_time.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "format": "date-time", "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "marked_for_delete": { "type": "boolean", "description": "Marked_for_delete is set when the secret policy object is marked for DELETE, based on this value\nsecret policy marked for DELETE will be automatically deleted after deletion_time.", "title": "Marked For Delete", "format": "boolean", "x-displayname": "Marked For DELETE.", "x-f5xc-description-short": "Marked_for_delete is set when the secret policy object is marked for DELETE, based on this value secret policy marked for DELETE will be...", "x-f5xc-description-medium": "Marked_for_delete is set when the secret policy object is marked for DELETE, based on this value secret policy marked for DELETE will be automatically deleted after deletion_time.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "rule_list": { "allOf": [ { "$ref": "#/components/schemas/secret_policyRuleList" } ], "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "Current secret-policy rule list. Use this field instead of the removed compatibility rule list.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "description": "Current secret-policy rule list. Use this field instead of the removed compatibility rule list." } }, "x-f5xc-description-short": "GET secret_policy reads a given object from storage backend for metadata.namespace.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for schemasecret_policyGetSpecType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemasecret_policyGetSpecType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "blindfold", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": true }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Secret access policies should be centrally managed" }, "classification": { "category": "security", "multi_tenant_pattern": "shared-ref" } } }, "schemasecret_policyReplaceSpecType": { "type": "object", "description": "Replace secret_policy replaces an existing object in the storage backend for metadata.namespace.", "title": "Replace Secret Policy", "x-displayname": "Replace Secret Policy.", "x-ves-proto-message": "ves.io.schema.secret_policy.ReplaceSpecType", "properties": { "allow_f5xc": { "type": "boolean", "description": "If allow_f5xc is set to true, it allows relevant F5XC infrastructure services to decrypt the secret encrypted using this policy.", "format": "boolean", "x-displayname": "Allow F5XC.", "x-ves-example": "True", "x-f5xc-example": "true", "x-f5xc-description-short": "If allow_f5xc is set to true, it allows relevant F5XC infrastructure services to decrypt the secret encrypted using this policy.", "x-f5xc-description-medium": "If allow_f5xc is set to true, it allows relevant F5XC infrastructure services to decrypt the secret encrypted using this policy.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "decrypt_cache_timeout": { "type": "string", "description": "Decrypt_cache_timeout contains the amount of time a decrypted secret is cached in wingman.\nValue for this parameter is a string ending in the suffix \"s\" (indicating seconds), suffix \"m\" (indicating minutes) or suffix \"h\" (indicating hours)", "x-displayname": "Decrypt Cache Timeout.", "x-ves-example": "6h", "x-f5xc-example": "6h", "x-f5xc-description-short": "Decrypt_cache_timeout contains the amount of time a decrypted secret is cached in wingman.", "x-f5xc-description-medium": "Decrypt_cache_timeout contains the amount of time a decrypted secret is cached in wingman. Value for this parameter is a string ending in the suffix \"s\" (indicating seconds), suffix \"m\" (indicating minutes) or suffix \"h\" (indicating hours).", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "rule_list": { "allOf": [ { "$ref": "#/components/schemas/secret_policyRuleList" } ], "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "Current secret-policy rule list. Use this field instead of the removed compatibility rule list.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "description": "Current secret-policy rule list. Use this field instead of the removed compatibility rule list." } }, "x-f5xc-description-short": "Replace secret_policy replaces an existing object in the storage backend for metadata.namespace.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for schemasecret_policyReplaceSpecType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemasecret_policyReplaceSpecType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "blindfold", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": true }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Secret access policies should be centrally managed" }, "classification": { "category": "security", "multi_tenant_pattern": "shared-ref" } } }, "secret_policyCreateRequest": { "type": "object", "description": "This is the input message of the 'Create' RPC.", "title": "CreateRequest is used to create an instance of secret_policy", "x-displayname": "Create Request.", "x-ves-proto-message": "ves.io.schema.secret_policy.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/schemasecret_policyCreateSpecType" } ], "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 secret_policyCreateRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for secret_policyCreateRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "blindfold", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": true }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Secret access policies should be centrally managed" }, "classification": { "category": "security", "multi_tenant_pattern": "shared-ref" } } }, "secret_policyCreateResponse": { "type": "object", "x-ves-proto-message": "ves.io.schema.secret_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/schemasecret_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 secret_policyCreateResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for secret_policyCreateResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "blindfold", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": true }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Secret access policies should be centrally managed" }, "classification": { "category": "security", "multi_tenant_pattern": "shared-ref" } } }, "secret_policyDeleteRequest": { "type": "object", "description": "This is the input message of the 'DELETE' RPC.", "title": "DeleteRequest is used to delete a secret_policy", "x-displayname": "DELETE Request.", "x-ves-proto-message": "ves.io.schema.secret_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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for secret_policyDeleteRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for secret_policyDeleteRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "blindfold", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": true }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Secret access policies should be centrally managed" }, "classification": { "category": "security", "multi_tenant_pattern": "shared-ref" } } }, "secret_policyGetResponse": { "type": "object", "description": "This is the output message of the 'GET' RPC.", "title": "GetResponse is the shape of a read secret_policy", "x-displayname": "GET Response.", "x-ves-proto-message": "ves.io.schema.secret_policy.GetResponse", "properties": { "create_form": { "allOf": [ { "$ref": "#/components/schemas/secret_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/secret_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/schemasecret_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/secret_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-08-20T09:12:47+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 secret_policyGetResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for secret_policyGetResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "blindfold", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": true }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Secret access policies should be centrally managed" }, "classification": { "category": "security", "multi_tenant_pattern": "shared-ref" } } }, "secret_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.secret_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-08-20T09:12:47+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 secret_policyLegacyRuleList", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for secret_policyLegacyRuleList\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "blindfold", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": true }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Secret access policies should be centrally managed" }, "classification": { "category": "security", "multi_tenant_pattern": "shared-ref" } } }, "secret_policyListPolicyResponse": { "type": "object", "description": "This is the response message of the 'ListPolicy' RPC.", "title": "ListPolicyResponse is used to list a secret_policy", "x-displayname": "List Policy Response.", "x-ves-proto-message": "ves.io.schema.secret_policy.ListPolicyResponse", "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/secret_policyListPolicyResponseItem" }, "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Response message of the 'ListPolicy' RPC.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for secret_policyListPolicyResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for secret_policyListPolicyResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "blindfold", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": true }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Secret access policies should be centrally managed" }, "classification": { "category": "security", "multi_tenant_pattern": "shared-ref" } } }, "secret_policyListPolicyResponseItem": { "type": "object", "title": "ListPolicyResponseItem is an individual item in a collection of secret_policy", "x-displayname": "List Polic Response Item.", "x-ves-proto-message": "ves.io.schema.secret_policy.ListPolicyResponseItem", "properties": { "annotations": { "type": "object", "description": "The set of annotations present on this secret_policy.", "title": "annotations", "x-displayname": "Annotations.", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "The set of annotations present on this secret_policy.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "description": { "type": "string", "description": "The description set for this secret_policy.", "title": "description", "x-displayname": "Description.", "x-f5xc-description-short": "The description set for this secret_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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "disabled": { "type": "boolean", "description": "A value of true indicates secret_policy is administratively disabled.", "title": "disabled", "format": "boolean", "x-displayname": "Disabled", "x-f5xc-example": "True", "x-f5xc-description-short": "Value of true indicates secret_policy is administratively disabled.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "get_spec": { "allOf": [ { "$ref": "#/components/schemas/schemasecret_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 secret_policy.", "title": "labels", "x-displayname": "Labels", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "The set of labels present on this secret_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 secret_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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" }, "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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "uid": { "type": "string", "description": "The unique uid of this secret_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-08-20T09:12:47+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-08-20T09:12:47+00:00" } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for secret_policyListPolicyResponseItem", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for secret_policyListPolicyResponseItem\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "blindfold", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": true }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Secret access policies should be centrally managed" }, "classification": { "category": "security", "multi_tenant_pattern": "shared-ref" } } }, "secret_policyListResponse": { "type": "object", "description": "This is the output message of 'List' RPC.", "title": "ListResponse is the collection of secret_policy", "x-displayname": "List Response.", "x-ves-proto-message": "ves.io.schema.secret_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/secret_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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for secret_policyListResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for secret_policyListResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "blindfold", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": true }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Secret access policies should be centrally managed" }, "classification": { "category": "security", "multi_tenant_pattern": "shared-ref" } } }, "secret_policyListResponseItem": { "type": "object", "description": "By default a summary of secret_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 secret_policy", "x-displayname": "List Item", "x-ves-proto-message": "ves.io.schema.secret_policy.ListResponseItem", "properties": { "annotations": { "type": "object", "description": "The set of annotations present on this secret_policy.", "title": "annotations", "x-displayname": "Annotations.", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "The set of annotations present on this secret_policy.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "description": { "type": "string", "description": "The description set for this secret_policy.", "title": "description", "x-displayname": "Description.", "x-f5xc-description-short": "The description set for this secret_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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "disabled": { "type": "boolean", "description": "A value of true indicates secret_policy is administratively disabled.", "title": "disabled", "format": "boolean", "x-displayname": "Disabled", "x-f5xc-example": "True", "x-f5xc-description-short": "Value of true indicates secret_policy is administratively disabled.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "get_spec": { "allOf": [ { "$ref": "#/components/schemas/schemasecret_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 secret_policy.", "title": "labels", "x-displayname": "Labels", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "The set of labels present on this secret_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 secret_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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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/secret_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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "uid": { "type": "string", "description": "The unique uid of this secret_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-08-20T09:12:47+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-08-20T09:12:47+00:00" } }, "x-f5xc-description-short": "By default a summary of secret_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 secret_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 secret_policyListResponseItem", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for secret_policyListResponseItem\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "blindfold", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": true }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Secret access policies should be centrally managed" }, "classification": { "category": "security", "multi_tenant_pattern": "shared-ref" } } }, "secret_policyRecoverRequest": { "type": "object", "description": "This is the input message of the 'RecoverPolicy' RPC.", "title": "RecoverRequest is used to recover a secret_policy", "x-displayname": "Recover Request.", "x-ves-proto-message": "ves.io.schema.secret_policy.RecoverRequest", "properties": { "name": { "type": "string", "description": "Name of the secret policy.", "title": "name", "x-displayname": "Name", "x-ves-example": "Site-secret-policy.", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true" }, "x-f5xc-example": "site-secret-policy", "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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" }, "namespace": { "type": "string", "description": "Namespace of the secret policy.", "title": "namespace", "x-displayname": "Namespace", "x-ves-example": "System", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true" }, "x-f5xc-example": "system", "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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" } }, "x-f5xc-description-short": "Input message of the 'RecoverPolicy' RPC.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for secret_policyRecoverRequest", "required_fields": [ "name", "namespace" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for secret_policyRecoverRequest\nmetadata:\n name: example\n namespace: default\nspec:\n name: value\n namespace: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"name\": \"value\",\n \"namespace\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "blindfold", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": true }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Secret access policies should be centrally managed" }, "classification": { "category": "security", "multi_tenant_pattern": "shared-ref" } } }, "secret_policyRecoverResponse": { "type": "object", "description": "This is the response message of the 'RecoverPolicy' RPC.", "title": "RecoverResponse", "x-displayname": "Recover Response.", "x-ves-proto-message": "ves.io.schema.secret_policy.RecoverResponse", "properties": { "status": { "type": "string", "description": "HTTP status as reported by the backend.", "title": "Status", "format": "int64", "x-displayname": "Status", "x-f5xc-example": "\"200", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "format": "int64", "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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-08-20T09:12:47+00:00" } }, "x-f5xc-description-short": "Response message of the 'RecoverPolicy' RPC.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for secret_policyRecoverResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for secret_policyRecoverResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "blindfold", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": true }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Secret access policies should be centrally managed" }, "classification": { "category": "security", "multi_tenant_pattern": "shared-ref" } } }, "secret_policyReplaceRequest": { "type": "object", "description": "This is the input message of the 'Replace' RPC.", "title": "ReplaceRequest is used to replace contents of a secret_policy", "x-displayname": "Replace Request.", "x-ves-proto-message": "ves.io.schema.secret_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/schemasecret_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": "Minimum configuration for secret_policyReplaceRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for secret_policyReplaceRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "blindfold", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": true }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Secret access policies should be centrally managed" }, "classification": { "category": "security", "multi_tenant_pattern": "shared-ref" } } }, "secret_policyReplaceResponse": { "type": "object", "x-ves-proto-message": "ves.io.schema.secret_policy.ReplaceResponse", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for secret_policyReplaceResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for secret_policyReplaceResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "blindfold", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": true }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Secret access policies should be centrally managed" }, "classification": { "category": "security", "multi_tenant_pattern": "shared-ref" } } }, "secret_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.secret_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/schemasecret_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 secret_policyRule", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for secret_policyRule\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "blindfold", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "secret_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.secret_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/secret_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-08-20T09:12:47+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 secret_policyRuleList", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for secret_policyRuleList\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "blindfold", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "secret_policySoftDeleteRequest": { "type": "object", "description": "This is the input message of the 'DeletePolicy' RPC.", "title": "SoftDeleteRequest is used to soft delete a secret_policy", "x-displayname": "Soft DELETE Request.", "x-ves-proto-message": "ves.io.schema.secret_policy.SoftDeleteRequest", "properties": { "name": { "type": "string", "description": "Name of the secret policy.", "title": "name", "x-displayname": "Name", "x-ves-example": "Site-secret-policy.", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true" }, "x-f5xc-example": "site-secret-policy", "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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" }, "namespace": { "type": "string", "description": "Namespace of the secret policy.", "title": "namespace", "x-displayname": "Namespace", "x-ves-example": "System", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true" }, "x-f5xc-example": "system", "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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" } }, "x-f5xc-description-short": "Input message of the 'DeletePolicy' RPC.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for secret_policySoftDeleteRequest", "required_fields": [ "name", "namespace" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for secret_policySoftDeleteRequest\nmetadata:\n name: example\n namespace: default\nspec:\n name: value\n namespace: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"name\": \"value\",\n \"namespace\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "blindfold", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": true }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Secret access policies should be centrally managed" }, "classification": { "category": "security", "multi_tenant_pattern": "shared-ref" } } }, "secret_policySoftDeleteResponse": { "type": "object", "description": "This is the response message of the 'DeletePolicy' RPC.", "title": "DeleteResponse", "x-displayname": "DELETE Response.", "x-ves-proto-message": "ves.io.schema.secret_policy.SoftDeleteResponse", "properties": { "status": { "type": "string", "description": "HTTP status as reported by the backend.", "title": "Status", "format": "int64", "x-displayname": "Status", "x-f5xc-example": "\"200", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "format": "int64", "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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-08-20T09:12:47+00:00" } }, "x-f5xc-description-short": "Response message of the 'DeletePolicy' RPC.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for secret_policySoftDeleteResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for secret_policySoftDeleteResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "blindfold", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": true }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Secret access policies should be centrally managed" }, "classification": { "category": "security", "multi_tenant_pattern": "shared-ref" } } }, "secret_policyStatusObject": { "type": "object", "description": "Most recently observed status of the object.", "title": "Status for secret policy", "x-displayname": "Status", "x-ves-proto-message": "ves.io.schema.secret_policy.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 the object.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for secret_policyStatusObject", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for secret_policyStatusObject\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "blindfold", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": true }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Secret access policies should be centrally managed" }, "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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for policyMatcherTypeBasic\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "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": "none" } } }, "schemasecret_policy_ruleCreateSpecType": { "type": "object", "description": "Create secret_policy_rule creates a new object in storage backend for metadata.namespace.", "title": "Create Secret Policy Rule", "x-displayname": "Create Secret Policy Rule.", "x-ves-oneof-field-client_choice": "[\"client_name\",\"client_name_matcher\",\"client_selector\"]", "x-ves-proto-message": "ves.io.schema.secret_policy_rule.CreateSpecType", "properties": { "action": { "allOf": [ { "$ref": "#/components/schemas/policyRuleAction" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "client_name": { "type": "string", "description": "Exclusive with [client_name_matcher client_selector]\nThe name of the client trying to access the secret. Name of the client will be extracted from client TLS certificate.\nThis predicate evaluates to true if client name matches the configured name.", "maxLength": 256, "x-displayname": "Client Name.", "x-ves-example": "ver.re01.int.ves.I/O.", "x-ves-validation-rules": { "ves.io.schema.rules.string.max_bytes": "256" }, "x-f5xc-example": "ver.re01.int.F5 XC", "x-validation-rules": { "ves.io.schema.rules.string.max_bytes": "256" }, "x-f5xc-description-short": "Exclusive with [client_name_matcher client_selector] The name of the client trying to access the secret.", "x-f5xc-description-medium": "Exclusive with [client_name_matcher client_selector] The name of the client trying to access the secret. Name of the client will be extracted from client TLS certificate. This predicate evaluates to true if client name matches the configured name.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 256, "byteLength": { "max": 256 }, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "client_name_matcher", "client_selector" ] }, "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": [ "client_name", "client_selector" ] }, "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": [ "client_name", "client_name_matcher" ] } }, "x-f5xc-description-short": "Create secret_policy_rule creates a new object in storage backend for metadata.namespace.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for schemasecret_policy_ruleCreateSpecType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemasecret_policy_ruleCreateSpecType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "blindfold", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "schemasecret_policy_ruleGetSpecType": { "type": "object", "description": "GET secret_policy_rule reads a given object from storage backend for metadata.namespace.", "title": "Get Secret Policy Rule", "x-displayname": "GET Secret Policy Rule.", "x-ves-oneof-field-client_choice": "[\"client_name\",\"client_name_matcher\",\"client_selector\"]", "x-ves-proto-message": "ves.io.schema.secret_policy_rule.GetSpecType", "properties": { "action": { "allOf": [ { "$ref": "#/components/schemas/policyRuleAction" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "client_name": { "type": "string", "description": "Exclusive with [client_name_matcher client_selector]\nThe name of the client trying to access the secret. Name of the client will be extracted from client TLS certificate.\nThis predicate evaluates to true if client name matches the configured name.", "maxLength": 256, "x-displayname": "Client Name.", "x-ves-example": "ver.re01.int.ves.I/O.", "x-ves-validation-rules": { "ves.io.schema.rules.string.max_bytes": "256" }, "x-f5xc-example": "ver.re01.int.F5 XC", "x-validation-rules": { "ves.io.schema.rules.string.max_bytes": "256" }, "x-f5xc-description-short": "Exclusive with [client_name_matcher client_selector] The name of the client trying to access the secret.", "x-f5xc-description-medium": "Exclusive with [client_name_matcher client_selector] The name of the client trying to access the secret. Name of the client will be extracted from client TLS certificate. This predicate evaluates to true if client name matches the configured name.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 256, "byteLength": { "max": 256 }, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "client_name_matcher", "client_selector" ] }, "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": [ "client_name", "client_selector" ] }, "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": [ "client_name", "client_name_matcher" ] } }, "x-f5xc-description-short": "GET secret_policy_rule reads a given object from storage backend for metadata.namespace.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for schemasecret_policy_ruleGetSpecType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemasecret_policy_ruleGetSpecType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "blindfold", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "schemasecret_policy_ruleReplaceSpecType": { "type": "object", "description": "Replace secret_policy_rule creates a new object in storage backend for metadata.namespace.", "title": "Replace Secret Policy Rule", "x-displayname": "Replace Secret Policy Rule.", "x-ves-oneof-field-client_choice": "[\"client_name\",\"client_name_matcher\",\"client_selector\"]", "x-ves-proto-message": "ves.io.schema.secret_policy_rule.ReplaceSpecType", "properties": { "action": { "allOf": [ { "$ref": "#/components/schemas/policyRuleAction" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "client_name": { "type": "string", "description": "Exclusive with [client_name_matcher client_selector]\nThe name of the client trying to access the secret. Name of the client will be extracted from client TLS certificate.\nThis predicate evaluates to true if client name matches the configured name.", "maxLength": 256, "x-displayname": "Client Name.", "x-ves-example": "ver.re01.int.ves.I/O.", "x-ves-validation-rules": { "ves.io.schema.rules.string.max_bytes": "256" }, "x-f5xc-example": "ver.re01.int.F5 XC", "x-validation-rules": { "ves.io.schema.rules.string.max_bytes": "256" }, "x-f5xc-description-short": "Exclusive with [client_name_matcher client_selector] The name of the client trying to access the secret.", "x-f5xc-description-medium": "Exclusive with [client_name_matcher client_selector] The name of the client trying to access the secret. Name of the client will be extracted from client TLS certificate. This predicate evaluates to true if client name matches the configured name.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 256, "byteLength": { "max": 256 }, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "client_name_matcher", "client_selector" ] }, "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": [ "client_name", "client_selector" ] }, "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": [ "client_name", "client_name_matcher" ] } }, "x-f5xc-description-short": "Replace secret_policy_rule creates a new object in storage backend for metadata.namespace.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for schemasecret_policy_ruleReplaceSpecType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemasecret_policy_ruleReplaceSpecType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "blindfold", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "secret_policy_ruleCreateRequest": { "type": "object", "description": "This is the input message of the 'Create' RPC.", "title": "CreateRequest is used to create an instance of secret_policy_rule", "x-displayname": "Create Request.", "x-ves-proto-message": "ves.io.schema.secret_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/schemasecret_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 secret_policy_ruleCreateRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for secret_policy_ruleCreateRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "blindfold", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "secret_policy_ruleCreateResponse": { "type": "object", "x-ves-proto-message": "ves.io.schema.secret_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/schemasecret_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 secret_policy_ruleCreateResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for secret_policy_ruleCreateResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "blindfold", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "secret_policy_ruleDeleteRequest": { "type": "object", "description": "This is the input message of the 'DELETE' RPC.", "title": "DeleteRequest is used to delete a secret_policy_rule", "x-displayname": "DELETE Request.", "x-ves-proto-message": "ves.io.schema.secret_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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for secret_policy_ruleDeleteRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for secret_policy_ruleDeleteRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "blindfold", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "secret_policy_ruleGetResponse": { "type": "object", "description": "This is the output message of the 'GET' RPC.", "title": "GetResponse is the shape of a read secret_policy_rule", "x-displayname": "GET Response.", "x-ves-proto-message": "ves.io.schema.secret_policy_rule.GetResponse", "properties": { "create_form": { "allOf": [ { "$ref": "#/components/schemas/secret_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/secret_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/schemasecret_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/secret_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-08-20T09:12:47+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 secret_policy_ruleGetResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for secret_policy_ruleGetResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "blindfold", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "secret_policy_ruleListResponse": { "type": "object", "description": "This is the output message of 'List' RPC.", "title": "ListResponse is the collection of secret_policy_rule", "x-displayname": "List Response.", "x-ves-proto-message": "ves.io.schema.secret_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/secret_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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for secret_policy_ruleListResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for secret_policy_ruleListResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "blindfold", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "secret_policy_ruleListResponseItem": { "type": "object", "description": "By default a summary of secret_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 secret_policy_rule", "x-displayname": "List Item", "x-ves-proto-message": "ves.io.schema.secret_policy_rule.ListResponseItem", "properties": { "annotations": { "type": "object", "description": "The set of annotations present on this secret_policy_rule.", "title": "annotations", "x-displayname": "Annotations.", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "The set of annotations present on this secret_policy_rule.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "description": { "type": "string", "description": "The description set for this secret_policy_rule.", "title": "description", "x-displayname": "Description.", "x-f5xc-description-short": "The description set for this secret_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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "disabled": { "type": "boolean", "description": "A value of true indicates secret_policy_rule is administratively disabled.", "title": "disabled", "format": "boolean", "x-displayname": "Disabled", "x-f5xc-example": "True", "x-f5xc-description-short": "Value of true indicates secret_policy_rule is administratively disabled.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "get_spec": { "allOf": [ { "$ref": "#/components/schemas/schemasecret_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 secret_policy_rule.", "title": "labels", "x-displayname": "Labels", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "The set of labels present on this secret_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 secret_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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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/secret_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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "uid": { "type": "string", "description": "The unique uid of this secret_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 secret_policy_rule.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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-08-20T09:12:47+00:00" } }, "x-f5xc-description-short": "By default a summary of secret_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 secret_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 secret_policy_ruleListResponseItem", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for secret_policy_ruleListResponseItem\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "blindfold", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "secret_policy_ruleReplaceRequest": { "type": "object", "description": "This is the input message of the 'Replace' RPC.", "title": "ReplaceRequest is used to replace contents of a secret_policy_rule", "x-displayname": "Replace Request.", "x-ves-proto-message": "ves.io.schema.secret_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/schemasecret_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 secret_policy_ruleReplaceRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for secret_policy_ruleReplaceRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "blindfold", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "secret_policy_ruleReplaceResponse": { "type": "object", "x-ves-proto-message": "ves.io.schema.secret_policy_rule.ReplaceResponse", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for secret_policy_ruleReplaceResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for secret_policy_ruleReplaceResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "blindfold", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "secret_policy_ruleStatusObject": { "type": "object", "description": "Most recent observed status of the object.", "title": "Status of Secret Policy rule", "x-displayname": "Status", "x-ves-proto-message": "ves.io.schema.secret_policy_rule.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 recent observed status of the object.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for secret_policy_ruleStatusObject", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for secret_policy_ruleStatusObject\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "blindfold", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "schemavoltshare_admin_policyCreateSpecType": { "type": "object", "description": "Create voltshare_admin_policy creates a new object in the storage backend for metadata.namespace.", "title": "Create service policy", "x-displayname": "Create VoltShare Admin Policy.", "x-ves-displayorder": "1,2,3", "x-ves-proto-message": "ves.io.schema.voltshare_admin_policy.CreateSpecType", "properties": { "author_restrictions": { "allOf": [ { "$ref": "#/components/schemas/voltshare_admin_policyUserMatcherType" } ], "x-f5xc-description-short": "Configuration parameter for author restrictions.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "max_validity_duration": { "type": "string", "description": "Max_validity_duration contains the maximum amount of time a secret from any users from this team/tenant is valid.\nValue for this parameter is a string ending in the suffix \"s\" (indicating seconds), suffix \"m\" (indicating minutes) or suffix \"h\" (indicating hours)", "x-displayname": "Maximum Duration for Validity.", "x-ves-example": "72h", "x-f5xc-example": "72h", "x-f5xc-description-short": "Max_validity_duration contains the maximum amount of time a secret from any users from this team/tenant is valid.", "x-f5xc-description-medium": "Max_validity_duration contains the maximum amount of time a secret from any users from this team/tenant is valid. Value for this parameter is a string ending in the suffix \"s\" (indicating seconds), suffix \"m\" (indicating minutes) or suffix \"h\" (indicating hours).", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "user_restrictions": { "type": "array", "description": "User_restrictions contains per tenant/team list of allowed/disallowed users with whom a secret can be shared using F5XC VoltShare.", "maxItems": 16, "items": { "$ref": "#/components/schemas/voltshare_admin_policyUserRestrictionType" }, "x-displayname": "Per Team Decryption Policy.", "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": "User_restrictions contains per tenant/team list of allowed/disallowed users with whom a secret can be shared using F5XC VoltShare.", "x-f5xc-description-medium": "User_restrictions contains per tenant/team list of allowed/disallowed users with whom a secret can be shared using F5XC VoltShare.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 16, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Create voltshare_admin_policy creates a new object in the storage backend for metadata.namespace.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for schemavoltshare_admin_policyCreateSpecType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemavoltshare_admin_policyCreateSpecType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "blindfold", "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" } } }, "schemavoltshare_admin_policyGetSpecType": { "type": "object", "description": "GET voltshare_admin_policy reads a given object from storage backend for metadata.namespace.", "title": "Get service policy", "x-displayname": "GET VoltShare Admin Policy.", "x-ves-displayorder": "1,2,3", "x-ves-proto-message": "ves.io.schema.voltshare_admin_policy.GetSpecType", "properties": { "author_restrictions": { "allOf": [ { "$ref": "#/components/schemas/voltshare_admin_policyUserMatcherType" } ], "x-f5xc-description-short": "Configuration parameter for author restrictions.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "max_validity_duration": { "type": "string", "description": "Max_validity_duration contains the maximum amount of time a secret from any users from this team/tenant is valid.\nValue for this parameter is a string ending in the suffix \"s\" (indicating seconds), suffix \"m\" (indicating minutes) or suffix \"h\" (indicating hours)", "x-displayname": "Maximum Duration for Validity.", "x-ves-example": "72h", "x-f5xc-example": "72h", "x-f5xc-description-short": "Max_validity_duration contains the maximum amount of time a secret from any users from this team/tenant is valid.", "x-f5xc-description-medium": "Max_validity_duration contains the maximum amount of time a secret from any users from this team/tenant is valid. Value for this parameter is a string ending in the suffix \"s\" (indicating seconds), suffix \"m\" (indicating minutes) or suffix \"h\" (indicating hours).", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "user_restrictions": { "type": "array", "description": "User_restrictions contains per tenant/team list of allowed/disallowed users with whom a secret can be shared using F5XC VoltShare.", "maxItems": 16, "items": { "$ref": "#/components/schemas/voltshare_admin_policyUserRestrictionType" }, "x-displayname": "Per Team Decryption Policy.", "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": "User_restrictions contains per tenant/team list of allowed/disallowed users with whom a secret can be shared using F5XC VoltShare.", "x-f5xc-description-medium": "User_restrictions contains per tenant/team list of allowed/disallowed users with whom a secret can be shared using F5XC VoltShare.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 16, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "GET voltshare_admin_policy reads a given object from storage backend for metadata.namespace.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for schemavoltshare_admin_policyGetSpecType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemavoltshare_admin_policyGetSpecType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "blindfold", "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" } } }, "schemavoltshare_admin_policyMatcherType": { "type": "object", "description": "MatcherType contains the choice of value to be compared against the input userid. It could be a regex pattern or exact value.", "title": "MatcherType", "x-displayname": "Matcher", "x-ves-displayorder": "3", "x-ves-oneof-field-choice": "[\"exact_value\",\"regex_pattern\"]", "x-ves-proto-message": "ves.io.schema.voltshare_admin_policy.MatcherType", "properties": { "exact_value": { "type": "string", "description": "Exclusive with [regex_pattern]\nexact_match contains user_id to match against.", "title": "exact_match", "minLength": 1, "maxLength": 256, "x-displayname": "Exact User ID.", "x-ves-validation-rules": { "ves.io.schema.rules.string.email": "true", "ves.io.schema.rules.string.max_bytes": "256", "ves.io.schema.rules.string.min_bytes": "1" }, "x-validation-rules": { "ves.io.schema.rules.string.email": "true", "ves.io.schema.rules.string.max_bytes": "256", "ves.io.schema.rules.string.min_bytes": "1" }, "x-f5xc-description-short": "Exclusive with [regex_pattern] exact_match contains user_id to match against.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "minLength": 1, "maxLength": 256, "byteLength": { "max": 256, "min": 1 }, "format": "email", "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "regex_pattern" ] }, "regex_pattern": { "type": "string", "description": "Exclusive with [exact_value]\nregex_values contains a regex pattern to match against.", "title": "regex_values", "minLength": 1, "maxLength": 256, "x-displayname": "Regex For User ID.", "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 [exact_value] regex_values contains a regex pattern to match against.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "minLength": 1, "maxLength": 256, "byteLength": { "max": 256, "min": 1 }, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "exact_value" ] } }, "x-f5xc-description-short": "MatcherType contains the choice of value to be compared against the input userid.", "x-f5xc-description-medium": "MatcherType contains the choice of value to be compared against the input userid. It could be a regex pattern or exact value.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for schemavoltshare_admin_policyMatcherType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemavoltshare_admin_policyMatcherType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "blindfold", "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" } } }, "schemavoltshare_admin_policyReplaceSpecType": { "type": "object", "description": "Replace voltshare_admin_policy replaces an existing object in the storage backend for metadata.namespace.", "title": "Replace service policy", "x-displayname": "Replace VoltShare Admin Policy.", "x-ves-displayorder": "1,2,3", "x-ves-proto-message": "ves.io.schema.voltshare_admin_policy.ReplaceSpecType", "properties": { "author_restrictions": { "allOf": [ { "$ref": "#/components/schemas/voltshare_admin_policyUserMatcherType" } ], "x-f5xc-description-short": "Configuration parameter for author restrictions.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "max_validity_duration": { "type": "string", "description": "Max_validity_duration contains the maximum amount of time a secret from any users from this team/tenant is valid.\nValue for this parameter is a string ending in the suffix \"s\" (indicating seconds), suffix \"m\" (indicating minutes) or suffix \"h\" (indicating hours)", "x-displayname": "Maximum Duration for Validity.", "x-ves-example": "72h", "x-f5xc-example": "72h", "x-f5xc-description-short": "Max_validity_duration contains the maximum amount of time a secret from any users from this team/tenant is valid.", "x-f5xc-description-medium": "Max_validity_duration contains the maximum amount of time a secret from any users from this team/tenant is valid. Value for this parameter is a string ending in the suffix \"s\" (indicating seconds), suffix \"m\" (indicating minutes) or suffix \"h\" (indicating hours).", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "user_restrictions": { "type": "array", "description": "User_restrictions contains per tenant/team list of allowed/disallowed users with whom a secret can be shared using F5XC VoltShare.", "maxItems": 16, "items": { "$ref": "#/components/schemas/voltshare_admin_policyUserRestrictionType" }, "x-displayname": "Per Team Decryption Policy.", "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": "User_restrictions contains per tenant/team list of allowed/disallowed users with whom a secret can be shared using F5XC VoltShare.", "x-f5xc-description-medium": "User_restrictions contains per tenant/team list of allowed/disallowed users with whom a secret can be shared using F5XC VoltShare.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 16, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Replace voltshare_admin_policy replaces an existing object in the storage backend for metadata.namespace.", "x-f5xc-description-medium": "Replace voltshare_admin_policy replaces an existing object in the storage backend for metadata.namespace.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for schemavoltshare_admin_policyReplaceSpecType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemavoltshare_admin_policyReplaceSpecType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "blindfold", "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" } } }, "voltshare_admin_policyCreateRequest": { "type": "object", "description": "This is the input message of the 'Create' RPC.", "title": "CreateRequest is used to create an instance of voltshare_admin_policy", "x-displayname": "Create Request.", "x-ves-proto-message": "ves.io.schema.voltshare_admin_policy.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/schemavoltshare_admin_policyCreateSpecType" } ], "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 voltshare_admin_policyCreateRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for voltshare_admin_policyCreateRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "blindfold", "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" } } }, "voltshare_admin_policyCreateResponse": { "type": "object", "x-ves-proto-message": "ves.io.schema.voltshare_admin_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/schemavoltshare_admin_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 voltshare_admin_policyCreateResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for voltshare_admin_policyCreateResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "blindfold", "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" } } }, "voltshare_admin_policyCustomListType": { "type": "object", "description": "Custom List contains user customized list of matcher values.", "title": "CustomList", "x-displayname": "Custom List.", "x-ves-proto-message": "ves.io.schema.voltshare_admin_policy.CustomListType", "properties": { "custom_list": { "type": "array", "description": "List of user ID(s)", "title": "List of User Id(s)", "maxItems": 16, "items": { "$ref": "#/components/schemas/schemavoltshare_admin_policyMatcherType" }, "x-displayname": "List of User ID(s)", "x-ves-example": "Dana@example.com.", "x-ves-validation-rules": { "ves.io.schema.rules.repeated.max_items": "16", "ves.io.schema.rules.repeated.unique": "true" }, "x-f5xc-example": "dana@example.com", "x-validation-rules": { "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Custom List contains user customized list of matcher values.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for voltshare_admin_policyCustomListType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for voltshare_admin_policyCustomListType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "blindfold", "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" } } }, "voltshare_admin_policyDeleteRequest": { "type": "object", "description": "This is the input message of the 'DELETE' RPC.", "title": "DeleteRequest is used to delete a voltshare_admin_policy", "x-displayname": "DELETE Request.", "x-ves-proto-message": "ves.io.schema.voltshare_admin_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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for voltshare_admin_policyDeleteRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for voltshare_admin_policyDeleteRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "blindfold", "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" } } }, "voltshare_admin_policyGetResponse": { "type": "object", "description": "This is the output message of the 'GET' RPC.", "title": "GetResponse is the shape of a read voltshare_admin_policy", "x-displayname": "GET Response.", "x-ves-proto-message": "ves.io.schema.voltshare_admin_policy.GetResponse", "properties": { "create_form": { "allOf": [ { "$ref": "#/components/schemas/voltshare_admin_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/voltshare_admin_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/schemavoltshare_admin_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/voltshare_admin_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-08-20T09:12:47+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 voltshare_admin_policyGetResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for voltshare_admin_policyGetResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "blindfold", "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" } } }, "voltshare_admin_policyListResponse": { "type": "object", "description": "This is the output message of 'List' RPC.", "title": "ListResponse is the collection of voltshare_admin_policy", "x-displayname": "List Response.", "x-ves-proto-message": "ves.io.schema.voltshare_admin_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/voltshare_admin_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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for voltshare_admin_policyListResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for voltshare_admin_policyListResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "blindfold", "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" } } }, "voltshare_admin_policyListResponseItem": { "type": "object", "description": "By default a summary of voltshare_admin_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 voltshare_admin_policy", "x-displayname": "List Item", "x-ves-proto-message": "ves.io.schema.voltshare_admin_policy.ListResponseItem", "properties": { "annotations": { "type": "object", "description": "The set of annotations present on this voltshare_admin_policy.", "title": "annotations", "x-displayname": "Annotations.", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "The set of annotations present on this voltshare_admin_policy.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "description": { "type": "string", "description": "The description set for this voltshare_admin_policy.", "title": "description", "x-displayname": "Description.", "x-f5xc-description-short": "The description set for this voltshare_admin_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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "disabled": { "type": "boolean", "description": "A value of true indicates voltshare_admin_policy is administratively disabled.", "title": "disabled", "format": "boolean", "x-displayname": "Disabled", "x-f5xc-example": "True", "x-f5xc-description-short": "Value of true indicates voltshare_admin_policy is administratively disabled.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "get_spec": { "allOf": [ { "$ref": "#/components/schemas/schemavoltshare_admin_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 voltshare_admin_policy.", "title": "labels", "x-displayname": "Labels", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "The set of labels present on this voltshare_admin_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 voltshare_admin_policy.", "title": "name", "x-displayname": "Name", "x-ves-example": "Name", "x-f5xc-example": "name", "x-f5xc-description-short": "The name of this voltshare_admin_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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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/voltshare_admin_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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "uid": { "type": "string", "description": "The unique uid of this voltshare_admin_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 voltshare_admin_policy.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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-08-20T09:12:47+00:00" } }, "x-f5xc-description-short": "By default a summary of voltshare_admin_policy is returned in 'List'.", "x-f5xc-description-medium": "By default a summary of voltshare_admin_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 voltshare_admin_policyListResponseItem", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for voltshare_admin_policyListResponseItem\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "blindfold", "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" } } }, "voltshare_admin_policyReplaceRequest": { "type": "object", "description": "This is the input message of the 'Replace' RPC.", "title": "ReplaceRequest is used to replace contents of a voltshare_admin_policy", "x-displayname": "Replace Request.", "x-ves-proto-message": "ves.io.schema.voltshare_admin_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/schemavoltshare_admin_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": "Minimum configuration for voltshare_admin_policyReplaceRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for voltshare_admin_policyReplaceRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "blindfold", "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" } } }, "voltshare_admin_policyReplaceResponse": { "type": "object", "x-ves-proto-message": "ves.io.schema.voltshare_admin_policy.ReplaceResponse", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for voltshare_admin_policyReplaceResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for voltshare_admin_policyReplaceResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "blindfold", "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" } } }, "voltshare_admin_policyStatusObject": { "type": "object", "description": "Most recently observed status of object.", "title": "Status of Policy", "x-displayname": "Status", "x-ves-proto-message": "ves.io.schema.voltshare_admin_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-description-short": "Most recently observed status of object.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for voltshare_admin_policyStatusObject", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for voltshare_admin_policyStatusObject\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "blindfold", "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" } } }, "voltshare_admin_policyUserMatcherType": { "type": "object", "description": "User_matcher contains contains the allow/deny list of users/authors.", "title": "UserMatcherType", "x-displayname": "User Matcher.", "x-ves-oneof-field-allow_choice": "[\"allow_all\",\"allow_list\"]", "x-ves-oneof-field-deny_choice": "[\"deny_all\",\"deny_list\"]", "x-ves-proto-message": "ves.io.schema.voltshare_admin_policy.UserMatcherType", "properties": { "allow_all": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "allow_list" ] }, "allow_list": { "allOf": [ { "$ref": "#/components/schemas/voltshare_admin_policyCustomListType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "allow_all" ] }, "deny_all": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "deny_list" ] }, "deny_list": { "allOf": [ { "$ref": "#/components/schemas/voltshare_admin_policyCustomListType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "deny_all" ] } }, "x-f5xc-description-short": "User_matcher contains contains the allow/deny list of users/authors.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for voltshare_admin_policyUserMatcherType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for voltshare_admin_policyUserMatcherType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "blindfold", "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" } } }, "voltshare_admin_policyUserRestrictionType": { "type": "object", "description": "User_restrictions contains list of allowed/disallowed users with whom a secret can be shared using F5XC VoltShare for any given team/tenant.", "title": "UserRestrictionType", "x-displayname": "User Restrictions.", "x-ves-displayorder": "4,3", "x-ves-oneof-field-tenant_choice": "[\"all_tenants\",\"individual_users\",\"tenant\"]", "x-ves-proto-message": "ves.io.schema.voltshare_admin_policy.UserRestrictionType", "properties": { "all_tenants": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "individual_users", "tenant" ] }, "individual_users": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-description-short": "Configuration parameter for individual users.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "all_tenants", "tenant" ] }, "tenant": { "type": "string", "description": "Exclusive with [all_tenants individual_users]\nTeam/Tenant for which this rule is valid.", "title": "tenant", "minLength": 1, "maxLength": 256, "x-displayname": "Team/Tenant.", "x-ves-validation-rules": { "ves.io.schema.rules.string.max_bytes": "256", "ves.io.schema.rules.string.min_bytes": "1" }, "x-validation-rules": { "ves.io.schema.rules.string.max_bytes": "256", "ves.io.schema.rules.string.min_bytes": "1" }, "x-f5xc-example": "customer-123", "x-f5xc-description-short": "Exclusive with [all_tenants individual_users] Team/Tenant for which this rule is valid.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "minLength": 1, "maxLength": 256, "byteLength": { "max": 256, "min": 1 }, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-field-mutability": "read-only", "x-f5xc-conflicts-with": [ "all_tenants", "individual_users" ] }, "user_restrictions": { "allOf": [ { "$ref": "#/components/schemas/voltshare_admin_policyUserMatcherType" } ], "x-f5xc-description-short": "Configuration parameter for user restrictions.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "User_restrictions contains list of allowed/disallowed users with whom a secret can be shared using F5XC VoltShare for any given team/tenant.", "x-f5xc-description-medium": "User_restrictions contains list of allowed/disallowed users with whom a secret can be shared using F5XC VoltShare for any given team/tenant.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for voltshare_admin_policyUserRestrictionType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for voltshare_admin_policyUserRestrictionType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "blindfold", "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" } } } }, "responses": {}, "parameters": {}, "requestBodies": {} } }, "bot_and_threat_defense": { "openapi": "3.0.3", "info": { "title": "Bot And Threat Defense", "description": "Behavioral fingerprinting identifies automated clients through request patterns, mouse movements, and JavaScript execution. Threat categories classify attacks by type including credential stuffing, scraping, and denial-of-service. Defense instances apply per-namespace policies with configurable sensitivity thresholds and challenge actions. Provisioning handles integration credentials for third-party threat intelligence feeds.", "version": "4.0.0", "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": "Behavioral fingerprinting identifies automated clients through request patterns, mouse movements, and JavaScript execution. Threat categories classify attacks by type including credential stuffing, scraping, and denial-of-service. Defense instances apply per-namespace policies with configurable sensitivity thresholds and challenge actions. Provisioning handles integration credentials for third-party threat intelligence feeds.", "x-f5xc-summary": "Threat classification with behavioral analysis and signature matching. Automated blocking for malicious traffic patterns.", "x-f5xc-cli-domain": "bot_and_threat_defense", "externalDocs": { "url": "https://docs.cloud.f5.com/docs/how-to/app-security/bot-defense", "description": "F5 XC Documentation - Bot Defense" }, "x-f5xc-api-reference-url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/bot_and_threat_defense/", "x-f5xc-best-practices": { "common_errors": [ { "code": 400, "message": "Invalid request body", "resolution": "Validate JSON structure and required fields before submission", "prevention": "Use schema validation from OpenAPI spec" }, { "code": 401, "message": "Authentication failed", "resolution": "Verify API token is valid and not expired", "prevention": "Use environment variables for token management" }, { "code": 403, "message": "Permission denied", "resolution": "Check user role and namespace permissions", "prevention": "Verify RBAC policies before operations" }, { "code": 404, "message": "Resource not found", "resolution": "Verify resource name and namespace exist", "prevention": "List resources before attempting operations" }, { "code": 409, "message": "Resource already exists", "resolution": "Use unique name or delete existing resource", "prevention": "Check existence before creation" }, { "code": 429, "message": "Rate limit exceeded", "resolution": "Implement exponential backoff and retry logic", "prevention": "Batch operations and add delays between requests" } ], "security_notes": [ "Always use HTTPS for all API communications", "Store API tokens securely, never in source code", "Rotate API tokens regularly following security policies" ], "performance_tips": [ "Use pagination for large result sets", "Batch related operations when possible", "Cache read-only responses appropriately" ] }, "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Bot defense infrastructure should be centralized" }, "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": "config" }, { "name": "tpm" } ], "paths": { "/api/config/namespaces/{metadata.namespace}/bot_defense_app_infrastructures": { "post": { "summary": "Create Bot Defense App Infrastructure.", "description": "Creates Bot Defense App Infrastructure in a given namespace.", "operationId": "ves.io.schema.views.bot_defense_app_infrastructure.API.Create", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/bot_defense_app_infrastructureCreateResponse" } } } }, "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/bot_defense_app_infrastructureCreateRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/bot_and_threat_defense/" }, "x-ves-proto-rpc": "ves.io.schema.views.bot_defense_app_infrastructure.API.Create", "tags": [ "config" ], "x-f5xc-operation-metadata": { "purpose": "Bot detection and defense configuration", "required_fields": [ "metadata.name", "metadata.namespace", "path.metadata.namespace" ], "optional_fields": [], "field_docs": {}, "conditions": { "prerequisites": [ "Active namespace" ], "postconditions": [ "Bot-defense-app-infrastructure resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "bot-defense-app-infrastructure" ] }, "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": [ "bot-defense-app-infrastructure" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "Bot Defense App Infrastructure.", "x-ves-proto-service": "ves.io.schema.views.bot_defense_app_infrastructure.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{metadata.namespace}/bot_defense_app_infrastructures/{metadata.name}": { "put": { "summary": "Replace Bot Defense App Infrastructure.", "description": "Replace a given Bot Defense App Infrastructure in a given namespace.", "operationId": "ves.io.schema.views.bot_defense_app_infrastructure.API.Replace", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/bot_defense_app_infrastructureReplaceResponse" } } } }, "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/bot_defense_app_infrastructureReplaceRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/bot_and_threat_defense/" }, "x-ves-proto-rpc": "ves.io.schema.views.bot_defense_app_infrastructure.API.Replace", "tags": [ "config" ], "x-f5xc-operation-metadata": { "purpose": "Bot detection and defense 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": [ "bot-defense-app-infrastructure" ] }, "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": [ "bot-defense-app-infrastructure" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 800, "p95_ms": 2500, "p99_ms": 6000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "Bot Defense App Infrastructure.", "x-ves-proto-service": "ves.io.schema.views.bot_defense_app_infrastructure.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{namespace}/bot_defense_app_infrastructures": { "get": { "summary": "List Bot Defense App Infrastructure.", "description": "List the set of bot_defense_app_infrastructure in a namespace.", "operationId": "ves.io.schema.views.bot_defense_app_infrastructure.API.List", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/bot_defense_app_infrastructureListResponse" } } } }, "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 bot_defense_app_infrastructure.", "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/bot_and_threat_defense/" }, "x-ves-proto-rpc": "ves.io.schema.views.bot_defense_app_infrastructure.API.List", "tags": [ "config" ], "x-f5xc-operation-metadata": { "purpose": "Bot detection and defense 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": "Bot Defense App Infrastructure.", "x-ves-proto-service": "ves.io.schema.views.bot_defense_app_infrastructure.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{namespace}/bot_defense_app_infrastructures/{name}": { "get": { "summary": "Bot Defense App Infrastructure.", "description": "GET Bot Defense App Infrastructure from a given namespace.", "operationId": "ves.io.schema.views.bot_defense_app_infrastructure.API.Get", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/bot_defense_app_infrastructureGetResponse" } } } }, "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/bot_and_threat_defense/" }, "x-ves-proto-rpc": "ves.io.schema.views.bot_defense_app_infrastructure.API.Get", "tags": [ "config" ], "x-f5xc-operation-metadata": { "purpose": "Bot detection and defense 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 Bot Defense App Infrastructure.", "description": "DELETE the specified bot_defense_app_infrastructure.", "operationId": "ves.io.schema.views.bot_defense_app_infrastructure.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/bot_defense_app_infrastructureDeleteRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/bot_and_threat_defense/" }, "x-ves-proto-rpc": "ves.io.schema.views.bot_defense_app_infrastructure.API.Delete", "tags": [ "config" ], "x-f5xc-operation-metadata": { "purpose": "Bot detection and defense 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": [ "bot-defense-app-infrastructure", "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": [ "bot-defense-app-infrastructure", "contained_resources" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 500, "p95_ms": 1500, "p99_ms": 4000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "Bot Defense App Infrastructure.", "x-ves-proto-service": "ves.io.schema.views.bot_defense_app_infrastructure.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{namespace}/shape_bot_defense_instances": { "get": { "summary": "List Shape Bot Defense Instance.", "description": "List the set of shape_bot_defense_instance in a namespace.", "operationId": "ves.io.schema.shape_bot_defense_instance.API.List", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shape_bot_defense_instanceListResponse" } } } }, "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 shape_bot_defense_instance.", "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/bot_and_threat_defense/" }, "x-ves-proto-rpc": "ves.io.schema.shape_bot_defense_instance.API.List", "tags": [ "config" ], "x-f5xc-operation-metadata": { "purpose": "Bot detection and defense 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": "Shape Bot Defense Instance.", "x-ves-proto-service": "ves.io.schema.shape_bot_defense_instance.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{namespace}/shape_bot_defense_instances/{name}": { "get": { "summary": "GET Virtual Host.", "description": "GET virtual host from a given namespace.", "operationId": "ves.io.schema.shape_bot_defense_instance.API.Get", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shape_bot_defense_instanceGetResponse" } } } }, "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 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_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/bot_and_threat_defense/" }, "x-ves-proto-rpc": "ves.io.schema.shape_bot_defense_instance.API.Get", "tags": [ "config" ], "x-f5xc-operation-metadata": { "purpose": "Bot detection and defense 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" } }, "x-displayname": "Shape Bot Defense Instance.", "x-ves-proto-service": "ves.io.schema.shape_bot_defense_instance.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/tpm/namespaces/{metadata.namespace}/tpm_api_keys": { "post": { "summary": "Create TPM API Key.", "description": "APIKey object when successfully created returns actual APIKey bytes which is used by the users to call in to\nTPM provisioning API.", "operationId": "ves.io.schema.tpm_api_key.API.Create", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/tpm_api_keyCreateResponse" } } } }, "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/tpm_api_keyCreateRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/bot_and_threat_defense/" }, "x-ves-proto-rpc": "ves.io.schema.tpm_api_key.API.Create", "tags": [ "tpm" ], "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": [ "Tpm-api-key resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "tpm-api-key" ] }, "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": [ "tpm-api-key" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "TPM API Key.", "x-ves-proto-service": "ves.io.schema.tpm_api_key.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/tpm/namespaces/{metadata.namespace}/tpm_api_keys/{metadata.name}": { "put": { "summary": "Replace TPM API Key.", "description": "Replace a APIKey object's revocation or enable/disable status. A revoked APIKey is not considered disabled.\nCertificates minted using disabled APIKeys are rejected during system bring-up/verification stage,\nwhereas certificates minted using revoked APIKeys are only rejected if they were minted after revocation date.", "operationId": "ves.io.schema.tpm_api_key.API.Replace", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/tpm_api_keyReplaceResponse" } } } }, "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/tpm_api_keyReplaceRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/bot_and_threat_defense/" }, "x-ves-proto-rpc": "ves.io.schema.tpm_api_key.API.Replace", "tags": [ "tpm" ], "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": [ "tpm-api-key" ] }, "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": [ "tpm-api-key" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 800, "p95_ms": 2500, "p99_ms": 6000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "TPM API Key.", "x-ves-proto-service": "ves.io.schema.tpm_api_key.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/tpm/namespaces/{namespace}/tpm_api_keys": { "get": { "summary": "List TPM API Key.", "description": "List the set of tpm_api_key in a namespace.", "operationId": "ves.io.schema.tpm_api_key.API.List", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/tpm_api_keyListResponse" } } } }, "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 tpm_api_key.", "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/bot_and_threat_defense/" }, "x-ves-proto-rpc": "ves.io.schema.tpm_api_key.API.List", "tags": [ "tpm" ], "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": "TPM API Key.", "x-ves-proto-service": "ves.io.schema.tpm_api_key.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/tpm/namespaces/{namespace}/tpm_api_keys/{name}": { "get": { "summary": "GET TPM API Key.", "description": "Retrieve an APIKey object.", "operationId": "ves.io.schema.tpm_api_key.API.Get", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/tpm_api_keyGetResponse" } } } }, "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/bot_and_threat_defense/" }, "x-ves-proto-rpc": "ves.io.schema.tpm_api_key.API.Get", "tags": [ "tpm" ], "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" } }, "x-displayname": "TPM API Key.", "x-ves-proto-service": "ves.io.schema.tpm_api_key.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/tpm/namespaces/{metadata.namespace}/tpm_categorys": { "post": { "summary": "Create TPM Category.", "description": "Create a Category object, which is a grouping of APIKeys used for TPM provisioning.", "operationId": "ves.io.schema.tpm_category.API.Create", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/tpm_categoryCreateResponse" } } } }, "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/tpm_categoryCreateRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/bot_and_threat_defense/" }, "x-ves-proto-rpc": "ves.io.schema.tpm_category.API.Create", "tags": [ "tpm" ], "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": [ "Tpm-category resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "tpm-category" ] }, "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": [ "tpm-category" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "TPM Category.", "x-ves-proto-service": "ves.io.schema.tpm_category.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/tpm/namespaces/{metadata.namespace}/tpm_categorys/{metadata.name}": { "put": { "summary": "Replace TPM Category.", "description": "Replace a Category object's Allow list of TPM EK Certificates.", "operationId": "ves.io.schema.tpm_category.API.Replace", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/tpm_categoryReplaceResponse" } } } }, "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/tpm_categoryReplaceRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/bot_and_threat_defense/" }, "x-ves-proto-rpc": "ves.io.schema.tpm_category.API.Replace", "tags": [ "tpm" ], "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": [ "tpm-category" ] }, "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": [ "tpm-category" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 800, "p95_ms": 2500, "p99_ms": 6000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "TPM Category.", "x-ves-proto-service": "ves.io.schema.tpm_category.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/tpm/namespaces/{namespace}/tpm_categorys": { "get": { "summary": "List TPM Category.", "description": "List the set of tpm_category in a namespace.", "operationId": "ves.io.schema.tpm_category.API.List", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/tpm_categoryListResponse" } } } }, "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 tpm_category.", "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/bot_and_threat_defense/" }, "x-ves-proto-rpc": "ves.io.schema.tpm_category.API.List", "tags": [ "tpm" ], "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": "TPM Category.", "x-ves-proto-service": "ves.io.schema.tpm_category.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/tpm/namespaces/{namespace}/tpm_categorys/{name}": { "get": { "summary": "GET TPM Category.", "description": "Retrieve an APIKey object.", "operationId": "ves.io.schema.tpm_category.API.Get", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/tpm_categoryGetResponse" } } } }, "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/bot_and_threat_defense/" }, "x-ves-proto-rpc": "ves.io.schema.tpm_category.API.Get", "tags": [ "tpm" ], "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" } }, "x-displayname": "TPM Category.", "x-ves-proto-service": "ves.io.schema.tpm_category.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/tpm/namespaces/{metadata.namespace}/tpm_managers": { "post": { "summary": "Create TPM Manager.", "description": "Create a TPM Manager object.", "operationId": "ves.io.schema.tpm_manager.API.Create", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/tpm_managerCreateResponse" } } } }, "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/tpm_managerCreateRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/bot_and_threat_defense/" }, "x-ves-proto-rpc": "ves.io.schema.tpm_manager.API.Create", "tags": [ "tpm" ], "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": [ "Tpm-manager resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "tpm-manager" ] }, "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": [ "tpm-manager" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "TPM Manager.", "x-ves-proto-service": "ves.io.schema.tpm_manager.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/tpm/namespaces/{namespace}/tpm_managers": { "get": { "summary": "List TPM Manager.", "description": "List the set of tpm_manager in a namespace.", "operationId": "ves.io.schema.tpm_manager.API.List", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/tpm_managerListResponse" } } } }, "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 tpm_manager.", "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/bot_and_threat_defense/" }, "x-ves-proto-rpc": "ves.io.schema.tpm_manager.API.List", "tags": [ "tpm" ], "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": "TPM Manager.", "x-ves-proto-service": "ves.io.schema.tpm_manager.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/tpm/namespaces/{namespace}/tpm_managers/{name}": { "get": { "summary": "GET TPM Manager.", "description": "Retrieve a TPM Manager object.", "operationId": "ves.io.schema.tpm_manager.API.Get", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/tpm_managerGetResponse" } } } }, "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 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_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/bot_and_threat_defense/" }, "x-ves-proto-rpc": "ves.io.schema.tpm_manager.API.Get", "tags": [ "tpm" ], "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" } }, "x-displayname": "TPM Manager.", "x-ves-proto-service": "ves.io.schema.tpm_manager.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/tpm/tpm/preauth": { "post": { "summary": "Preauth", "description": "Pre-flight auth checks before calling the Provision API.", "operationId": "ves.io.schema.tpm_provision.CustomAPI.Preauth", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/tpm_provisionPreauthResponse" } } } }, "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/tpm_provisionPreauthRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/bot_and_threat_defense/" }, "x-ves-proto-rpc": "ves.io.schema.tpm_provision.CustomAPI.Preauth", "tags": [ "tpm" ], "x-f5xc-operation-metadata": { "purpose": "Resource creation operation", "required_fields": [ "metadata.name", "metadata.namespace" ], "optional_fields": [], "field_docs": {}, "conditions": { "prerequisites": [], "postconditions": [ "Preauth resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "preauth" ] }, "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": [ "preauth" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "TPM Provisioning.", "x-ves-proto-service": "ves.io.schema.tpm_provision.CustomAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/tpm/tpm/provision": { "post": { "summary": "Provision", "operationId": "ves.io.schema.tpm_provision.CustomAPI.Provision", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/tpm_provisionProvisionResponse" } } } }, "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/tpm_provisionProvisionRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/bot_and_threat_defense/" }, "x-ves-proto-rpc": "ves.io.schema.tpm_provision.CustomAPI.Provision", "tags": [ "tpm" ], "description": "Provision provision.", "x-f5xc-operation-metadata": { "purpose": "Resource creation operation", "required_fields": [ "metadata.name", "metadata.namespace" ], "optional_fields": [], "field_docs": {}, "conditions": { "prerequisites": [], "postconditions": [ "Provision resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "provision" ] }, "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": [ "provision" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "TPM Provisioning.", "x-ves-proto-service": "ves.io.schema.tpm_provision.CustomAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" } }, "components": { "securitySchemes": { "ApiToken": { "type": "apiKey", "name": "Authorization", "in": "header", "description": "API Token authentication. Format: 'APIToken '" }, "apiKeyAuth": { "type": "apiKey", "in": "header", "name": "Authorization", "description": "F5 XC API Token (format: APIToken )" } }, "schemas": { "bot_defense_app_infrastructureBotDefenseAdvancedRegion": { "type": "string", "description": "Defines a selection for Bot Defense Advanced region\n\n- US: US\n\nUS region\n- EU: EU\n\nEuropean Union region\n- ASIA: ASIA\n\nAsia region.", "title": "BotDefenseAdvancedRegion", "enum": [ "US", "EU", "ASIA" ], "default": "US", "x-displayname": "Bot Defense Advanced Region.", "x-ves-proto-enum": "ves.io.schema.views.bot_defense_app_infrastructure.BotDefenseAdvancedRegion", "x-f5xc-description-short": "Defines a selection for Bot Defense Advanced region - US: US US region - EU: EU European Union region - ASIA: ASIA Asia region.", "x-f5xc-description-medium": "Defines a selection for Bot Defense Advanced region - US: US US region - EU: EU European Union region - ASIA: ASIA Asia region.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for bot_defense_app_infrastructureBotDefenseAdvancedRegion", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for bot_defense_app_infrastructureBotDefenseAdvancedRegion\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bot_and_threat_defense", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Bot defense infrastructure should be centralized" }, "classification": { "category": "security", "multi_tenant_pattern": "shared-ref" } } }, "bot_defense_app_infrastructureCreateRequest": { "type": "object", "description": "This is the input message of the 'Create' RPC.", "title": "CreateRequest is used to create an instance of bot_defense_app_infrastructure", "x-displayname": "Create Request.", "x-ves-proto-message": "ves.io.schema.views.bot_defense_app_infrastructure.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/bot_defense_app_infrastructureCreateSpecType" } ], "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 bot_defense_app_infrastructureCreateRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for bot_defense_app_infrastructureCreateRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bot_and_threat_defense", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Bot defense infrastructure should be centralized" }, "classification": { "category": "security", "multi_tenant_pattern": "shared-ref" } } }, "bot_defense_app_infrastructureCreateResponse": { "type": "object", "x-ves-proto-message": "ves.io.schema.views.bot_defense_app_infrastructure.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/bot_defense_app_infrastructureGetSpecType" } ], "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 bot_defense_app_infrastructureCreateResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for bot_defense_app_infrastructureCreateResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bot_and_threat_defense", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Bot defense infrastructure should be centralized" }, "classification": { "category": "security", "multi_tenant_pattern": "shared-ref" } } }, "bot_defense_app_infrastructureCreateSpecType": { "type": "object", "description": "Creates Bot Defense App Infrastructure in a given namespace.", "title": "Create Bot Defense App Infrastructure", "x-displayname": "Create Bot Defense App Infrastructure.", "x-ves-oneof-field-infra_choice": "[\"cloud_hosted\",\"data_center_hosted\"]", "x-ves-proto-message": "ves.io.schema.views.bot_defense_app_infrastructure.CreateSpecType", "properties": { "cloud_hosted": { "allOf": [ { "$ref": "#/components/schemas/bot_defense_app_infrastructureInfraF5Hosted" } ], "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "data_center_hosted" ] }, "data_center_hosted": { "allOf": [ { "$ref": "#/components/schemas/bot_defense_app_infrastructureInfraF5Hosted" } ], "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "cloud_hosted" ] }, "environment_type": { "allOf": [ { "$ref": "#/components/schemas/bot_defense_app_infrastructureEnvironmentType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "traffic_type": { "allOf": [ { "$ref": "#/components/schemas/bot_defense_app_infrastructureTrafficType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Creates Bot Defense App Infrastructure in a given namespace.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for bot_defense_app_infrastructureCreateSpecType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for bot_defense_app_infrastructureCreateSpecType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bot_and_threat_defense", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Bot defense infrastructure should be centralized" }, "classification": { "category": "security", "multi_tenant_pattern": "shared-ref" } } }, "bot_defense_app_infrastructureDeleteRequest": { "type": "object", "description": "This is the input message of the 'DELETE' RPC.", "title": "DeleteRequest is used to delete a bot_defense_app_infrastructure", "x-displayname": "DELETE Request.", "x-ves-proto-message": "ves.io.schema.views.bot_defense_app_infrastructure.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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for bot_defense_app_infrastructureDeleteRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for bot_defense_app_infrastructureDeleteRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bot_and_threat_defense", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Bot defense infrastructure should be centralized" }, "classification": { "category": "security", "multi_tenant_pattern": "shared-ref" } } }, "bot_defense_app_infrastructureEgress": { "type": "object", "description": "Egress", "title": "Egress", "x-displayname": "Egress", "x-ves-proto-message": "ves.io.schema.views.bot_defense_app_infrastructure.Egress", "properties": { "ip_address": { "type": "string", "description": "Egress IP address.", "title": "IP Address", "x-displayname": "IP Address.", "x-ves-example": "192.0.2.78.", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.string.ip": "true" }, "x-f5xc-example": "192.0.2.78", "x-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.string.ip": "true" }, "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-08-20T09:12:47+00:00" }, "deterministic": true }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "location": { "allOf": [ { "$ref": "#/components/schemas/viewsbot_defense_app_infrastructureLocation" } ], "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-08-20T09:12:47+00:00" } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for bot_defense_app_infrastructureEgress", "required_fields": [ "ip_address" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for bot_defense_app_infrastructureEgress\nmetadata:\n name: example\n namespace: default\nspec:\n ip_address: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"ip_address\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "bot_and_threat_defense", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Bot defense infrastructure should be centralized" }, "classification": { "category": "security", "multi_tenant_pattern": "shared-ref" } } }, "bot_defense_app_infrastructureEnvironmentType": { "type": "string", "description": "Environment Type\n\nProduction environment\nTesting environment.", "title": "EnvironmentType", "enum": [ "PRODUCTION", "TESTING" ], "default": "PRODUCTION", "x-displayname": "Environment Type.", "x-ves-proto-enum": "ves.io.schema.views.bot_defense_app_infrastructure.EnvironmentType", "x-f5xc-description-short": "Environment Type Production environment Testing environment.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for bot_defense_app_infrastructureEnvironmentType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for bot_defense_app_infrastructureEnvironmentType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bot_and_threat_defense", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Bot defense infrastructure should be centralized" }, "classification": { "category": "security", "multi_tenant_pattern": "shared-ref" } } }, "bot_defense_app_infrastructureGetResponse": { "type": "object", "description": "This is the output message of the 'GET' RPC.", "title": "GetResponse is the shape of a read bot_defense_app_infrastructure", "x-displayname": "GET Response.", "x-ves-proto-message": "ves.io.schema.views.bot_defense_app_infrastructure.GetResponse", "properties": { "create_form": { "allOf": [ { "$ref": "#/components/schemas/bot_defense_app_infrastructureCreateRequest" } ], "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/bot_defense_app_infrastructureReplaceRequest" } ], "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/bot_defense_app_infrastructureGetSpecType" } ], "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 bot_defense_app_infrastructureGetResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for bot_defense_app_infrastructureGetResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bot_and_threat_defense", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Bot defense infrastructure should be centralized" }, "classification": { "category": "security", "multi_tenant_pattern": "shared-ref" } } }, "bot_defense_app_infrastructureGetSpecType": { "type": "object", "description": "GET Bot Defense App Infrastructure from a given namespace.", "title": "Get Bot Defense App Infrastructure", "x-displayname": "Bot Defense App Infrastructure.", "x-ves-oneof-field-infra_choice": "[\"cloud_hosted\",\"data_center_hosted\"]", "x-ves-proto-message": "ves.io.schema.views.bot_defense_app_infrastructure.GetSpecType", "properties": { "cloud_hosted": { "allOf": [ { "$ref": "#/components/schemas/bot_defense_app_infrastructureInfraF5Hosted" } ], "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "data_center_hosted" ] }, "data_center_hosted": { "allOf": [ { "$ref": "#/components/schemas/bot_defense_app_infrastructureInfraF5Hosted" } ], "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "cloud_hosted" ] }, "environment_type": { "allOf": [ { "$ref": "#/components/schemas/bot_defense_app_infrastructureEnvironmentType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "traffic_type": { "allOf": [ { "$ref": "#/components/schemas/bot_defense_app_infrastructureTrafficType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "GET Bot Defense App Infrastructure from a given namespace.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for bot_defense_app_infrastructureGetSpecType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for bot_defense_app_infrastructureGetSpecType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bot_and_threat_defense", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Bot defense infrastructure should be centralized" }, "classification": { "category": "security", "multi_tenant_pattern": "shared-ref" } } }, "bot_defense_app_infrastructureInfraF5Hosted": { "type": "object", "description": "Infra F5 Hosted.", "title": "InfraF5Hosted", "x-displayname": "F5 Hosted", "x-ves-proto-message": "ves.io.schema.views.bot_defense_app_infrastructure.InfraF5Hosted", "properties": { "egress": { "type": "array", "description": "Egress", "title": "Egress", "minItems": 1, "items": { "$ref": "#/components/schemas/bot_defense_app_infrastructureEgress" }, "x-displayname": "Egress", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true", "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.min_items": "1", "ves.io.schema.rules.repeated.unique": "true" }, "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "minItems": 1, "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "infra_host_name": { "type": "string", "description": "Infra Host Name.", "title": "Infra Host Name", "x-displayname": "Infra Host Name.", "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.string.hostname": "true" }, "x-f5xc-example": "www.example.com", "x-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.string.hostname": "true" }, "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 1024, "format": "hostname", "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "ingress": { "type": "array", "description": "Ingress", "title": "Ingress", "minItems": 1, "maxItems": 3, "items": { "$ref": "#/components/schemas/bot_defense_app_infrastructureIngress" }, "x-displayname": "Ingress", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.repeated.max_items": "3", "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": "3", "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": 3, "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "region": { "allOf": [ { "$ref": "#/components/schemas/bot_defense_app_infrastructureBotDefenseAdvancedRegion" } ], "x-f5xc-example": "us-west-2", "x-f5xc-description-short": "Geographic region for resource placement.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for bot_defense_app_infrastructureInfraF5Hosted", "required_fields": [ "egress", "infra_host_name", "ingress" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for bot_defense_app_infrastructureInfraF5Hosted\nmetadata:\n name: example\n namespace: default\nspec:\n egress: value\n infra_host_name: value\n ingress: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"egress\": \"value\",\n \"infra_host_name\": \"value\",\n \"ingress\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "bot_and_threat_defense", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Bot defense infrastructure should be centralized" }, "classification": { "category": "security", "multi_tenant_pattern": "shared-ref" } } }, "bot_defense_app_infrastructureIngress": { "type": "object", "description": "Ingress", "title": "Ingress", "x-displayname": "Ingress", "x-ves-oneof-field-type_choice": "[\"host_name\",\"ip_address\"]", "x-ves-proto-message": "ves.io.schema.views.bot_defense_app_infrastructure.Ingress", "properties": { "host_name": { "type": "string", "description": "Exclusive with [ip_address]\nIngress Host Name.", "title": "Host Name", "x-displayname": "Ingress value.", "x-ves-validation-rules": { "ves.io.schema.rules.string.hostname": "true" }, "x-validation-rules": { "ves.io.schema.rules.string.hostname": "true" }, "x-f5xc-example": "example-resource", "x-f5xc-description-short": "Exclusive with [ip_address] Ingress Host Name.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 1024, "format": "hostname", "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "ip_address" ] }, "ip_address": { "type": "string", "description": "Exclusive with [host_name]\nIngress IP Address.", "title": "IP Address", "x-displayname": "Ingress value.", "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": "Exclusive with [host_name] Ingress IP Address.", "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-08-20T09:12:47+00:00" }, "deterministic": true }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "host_name" ] }, "location": { "allOf": [ { "$ref": "#/components/schemas/viewsbot_defense_app_infrastructureLocation" } ], "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-08-20T09:12:47+00:00" } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for bot_defense_app_infrastructureIngress", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for bot_defense_app_infrastructureIngress\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bot_and_threat_defense", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Bot defense infrastructure should be centralized" }, "classification": { "category": "security", "multi_tenant_pattern": "shared-ref" } } }, "bot_defense_app_infrastructureListResponse": { "type": "object", "description": "This is the output message of 'List' RPC.", "title": "ListResponse is the collection of bot_defense_app_infrastructure", "x-displayname": "List Response.", "x-ves-proto-message": "ves.io.schema.views.bot_defense_app_infrastructure.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/bot_defense_app_infrastructureListResponseItem" }, "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for bot_defense_app_infrastructureListResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for bot_defense_app_infrastructureListResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bot_and_threat_defense", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Bot defense infrastructure should be centralized" }, "classification": { "category": "security", "multi_tenant_pattern": "shared-ref" } } }, "bot_defense_app_infrastructureListResponseItem": { "type": "object", "description": "By default a summary of bot_defense_app_infrastructure 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 bot_defense_app_infrastructure", "x-displayname": "List Item", "x-ves-proto-message": "ves.io.schema.views.bot_defense_app_infrastructure.ListResponseItem", "properties": { "annotations": { "type": "object", "description": "The set of annotations present on this bot_defense_app_infrastructure.", "title": "annotations", "x-displayname": "Annotations.", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "The set of annotations present on this bot_defense_app_infrastructure.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "description": { "type": "string", "description": "The description set for this bot_defense_app_infrastructure.", "title": "description", "x-displayname": "Description.", "x-f5xc-description-short": "The description set for this bot_defense_app_infrastructure.", "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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "disabled": { "type": "boolean", "description": "A value of true indicates bot_defense_app_infrastructure is administratively disabled.", "title": "disabled", "format": "boolean", "x-displayname": "Disabled", "x-f5xc-example": "True", "x-f5xc-description-short": "Value of true indicates bot_defense_app_infrastructure is administratively disabled.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "get_spec": { "allOf": [ { "$ref": "#/components/schemas/bot_defense_app_infrastructureGetSpecType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "labels": { "type": "object", "description": "The set of labels present on this bot_defense_app_infrastructure.", "title": "labels", "x-displayname": "Labels", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "The set of labels present on this bot_defense_app_infrastructure.", "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 bot_defense_app_infrastructure.", "title": "name", "x-displayname": "Name", "x-ves-example": "Name", "x-f5xc-example": "name", "x-f5xc-description-short": "The name of this bot_defense_app_infrastructure.", "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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" } ] }, "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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "uid": { "type": "string", "description": "The unique uid of this bot_defense_app_infrastructure.", "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 bot_defense_app_infrastructure.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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-08-20T09:12:47+00:00" } }, "x-f5xc-description-short": "By default a summary of bot_defense_app_infrastructure is returned in 'List'.", "x-f5xc-description-medium": "By default a summary of bot_defense_app_infrastructure 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 bot_defense_app_infrastructureListResponseItem", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for bot_defense_app_infrastructureListResponseItem\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bot_and_threat_defense", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Bot defense infrastructure should be centralized" }, "classification": { "category": "security", "multi_tenant_pattern": "shared-ref" } } }, "bot_defense_app_infrastructureReplaceRequest": { "type": "object", "description": "This is the input message of the 'Replace' RPC.", "title": "ReplaceRequest is used to replace contents of a bot_defense_app_infrastructure", "x-displayname": "Replace Request.", "x-ves-proto-message": "ves.io.schema.views.bot_defense_app_infrastructure.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/bot_defense_app_infrastructureReplaceSpecType" } ], "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 bot_defense_app_infrastructureReplaceRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for bot_defense_app_infrastructureReplaceRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bot_and_threat_defense", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Bot defense infrastructure should be centralized" }, "classification": { "category": "security", "multi_tenant_pattern": "shared-ref" } } }, "bot_defense_app_infrastructureReplaceResponse": { "type": "object", "x-ves-proto-message": "ves.io.schema.views.bot_defense_app_infrastructure.ReplaceResponse", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for bot_defense_app_infrastructureReplaceResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for bot_defense_app_infrastructureReplaceResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bot_and_threat_defense", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Bot defense infrastructure should be centralized" }, "classification": { "category": "security", "multi_tenant_pattern": "shared-ref" } } }, "bot_defense_app_infrastructureReplaceSpecType": { "type": "object", "description": "Replace a given Bot Defense App Infrastructure in a given namespace.", "title": "Replace Bot Defense App Infrastructure", "x-displayname": "Replace Bot Defense App Infrastructure.", "x-ves-oneof-field-infra_choice": "[\"cloud_hosted\",\"data_center_hosted\"]", "x-ves-proto-message": "ves.io.schema.views.bot_defense_app_infrastructure.ReplaceSpecType", "properties": { "cloud_hosted": { "allOf": [ { "$ref": "#/components/schemas/bot_defense_app_infrastructureInfraF5Hosted" } ], "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "data_center_hosted" ] }, "data_center_hosted": { "allOf": [ { "$ref": "#/components/schemas/bot_defense_app_infrastructureInfraF5Hosted" } ], "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "cloud_hosted" ] }, "environment_type": { "allOf": [ { "$ref": "#/components/schemas/bot_defense_app_infrastructureEnvironmentType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "traffic_type": { "allOf": [ { "$ref": "#/components/schemas/bot_defense_app_infrastructureTrafficType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Replace a given Bot Defense App Infrastructure in a given namespace.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for bot_defense_app_infrastructureReplaceSpecType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for bot_defense_app_infrastructureReplaceSpecType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bot_and_threat_defense", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Bot defense infrastructure should be centralized" }, "classification": { "category": "security", "multi_tenant_pattern": "shared-ref" } } }, "bot_defense_app_infrastructureTrafficType": { "type": "string", "description": "Traffic Type\n\nWeb traffic\nMobile traffic.", "title": "TrafficType", "enum": [ "WEB", "MOBILE" ], "default": "WEB", "x-displayname": "Traffic Type.", "x-ves-proto-enum": "ves.io.schema.views.bot_defense_app_infrastructure.TrafficType", "x-f5xc-description-short": "Traffic Type Web traffic Mobile traffic.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for bot_defense_app_infrastructureTrafficType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for bot_defense_app_infrastructureTrafficType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bot_and_threat_defense", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Bot defense infrastructure should be centralized" }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for ioschemaObjectRefType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Bot defense infrastructure should be centralized" }, "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\": ,\n\"lastName\": \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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for protobufAny\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Bot defense infrastructure should be centralized" }, "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_yaml": "# Minimal example for schemaErrorCode\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Bot defense infrastructure should be centralized" }, "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-08-20T09:12:47+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_yaml": "# Minimal example for schemaErrorType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Bot defense infrastructure should be centralized" }, "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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaInitializerType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Bot defense infrastructure should be centralized" }, "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_yaml": "# Minimal example for schemaInitializersType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Bot defense infrastructure should be centralized" }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaObjectCreateMetaType\nmetadata:\n name: example\n namespace: default\nspec:\n name: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"name\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Bot defense infrastructure should be centralized" }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaObjectGetMetaType\nmetadata:\n name: example\n namespace: default\nspec:\n name: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"name\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Bot defense infrastructure should be centralized" }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemaObjectReplaceMetaType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Bot defense infrastructure should be centralized" }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaStatusType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Bot defense infrastructure should be centralized" }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaSystemObjectGetMetaType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Bot defense infrastructure should be centralized" }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaViewRefType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Bot defense infrastructure should be centralized" }, "classification": { "category": "security", "multi_tenant_pattern": "shared-ref" } } }, "viewsbot_defense_app_infrastructureLocation": { "type": "string", "description": "Region location\n\nAWS_AP_NORTHEAST_1\nAWS_AP_NORTHEAST_3\nAWS_AP_SOUTH_1\nAWS_AP_SOUTH_2\nAWS_AP_SOUTHEAST_1\nAWS_AP_SOUTHEAST_2\nAWS_AP_SOUTHEAST_3\nAWS_EU_CENTRAL_1\nAWS_EU_NORTH_1\nAWS_EU_WEST_1\nAWS_ME_SOUTH_1\nAWS_SA_EAST_1\nAWS_US_EAST_1\nAWS_US_EAST_2\nAWS_US_WEST_1\nAWS_US_WEST_2\nGCP_ASIA_EAST_1\nGCP_ASIA_EAST_2\nGCP_ASIA_NORTHEAST_1\nGCP_ASIA_NORTHEAST_2\nGCP_ASIA_NORTHEAST_3\nGCP_ASIA_SOUTH_1\nGCP_ASIA_SOUTHEAST_1\nGCP_ASIA_SOUTHEAST_2\nGCP_AUSTRALIA_SOUTHEAST_1\nGCP_EUROPE_WEST_1\nGCP_EUROPE_WEST_2\nGCP_EUROPE_WEST_3\nGCP_NORTHAMERICA_NORTHEAST_1\nGCP_NORTHAMERICA_NORTHEAST_2\nGCP_SOUTHAMERICA_EAST_1\nGCP_SOUTHAMERICA_WEST_1\nGCP_US_CENTRAL_1\nGCP_US_EAST_1\nGCP_US_EAST_4\nGCP_US_WEST_1\nGCP_US_WEST_2.", "title": "Location", "enum": [ "AWS_AP_NORTHEAST_1", "AWS_AP_NORTHEAST_3", "AWS_AP_SOUTH_1", "AWS_AP_SOUTH_2", "AWS_AP_SOUTHEAST_1", "AWS_AP_SOUTHEAST_2", "AWS_AP_SOUTHEAST_3", "AWS_EU_CENTRAL_1", "AWS_EU_NORTH_1", "AWS_EU_WEST_1", "AWS_ME_SOUTH_1", "AWS_SA_EAST_1", "AWS_US_EAST_1", "AWS_US_EAST_2", "AWS_US_WEST_1", "AWS_US_WEST_2", "GCP_ASIA_EAST_1", "GCP_ASIA_EAST_2", "GCP_ASIA_NORTHEAST_1", "GCP_ASIA_NORTHEAST_2", "GCP_ASIA_NORTHEAST_3", "GCP_ASIA_SOUTH_1", "GCP_ASIA_SOUTHEAST_1", "GCP_ASIA_SOUTHEAST_2", "GCP_AUSTRALIA_SOUTHEAST_1", "GCP_EUROPE_WEST_1", "GCP_EUROPE_WEST_2", "GCP_EUROPE_WEST_3", "GCP_NORTHAMERICA_NORTHEAST_1", "GCP_NORTHAMERICA_NORTHEAST_2", "GCP_SOUTHAMERICA_EAST_1", "GCP_SOUTHAMERICA_WEST_1", "GCP_US_CENTRAL_1", "GCP_US_EAST_1", "GCP_US_EAST_4", "GCP_US_WEST_1", "GCP_US_WEST_2" ], "default": "AWS_AP_NORTHEAST_1", "x-displayname": "Location", "x-ves-proto-enum": "ves.io.schema.views.bot_defense_app_infrastructure.Location", "x-f5xc-description-short": "Region location AWS_AP_NORTHEAST_1 AWS_AP_NORTHEAST_3 AWS_AP_SOUTH_1 AWS_AP_SOUTH_2 AWS_AP_SOUTHEAST_1 AWS_AP_SOUTHEAST_2 AWS_AP_SOUTHEAST_3...", "x-f5xc-description-medium": "Region location AWS_AP_NORTHEAST_1 AWS_AP_NORTHEAST_3 AWS_AP_SOUTH_1 AWS_AP_SOUTH_2 AWS_AP_SOUTHEAST_1 AWS_AP_SOUTHEAST_2 AWS_AP_SOUTHEAST_3 AWS_EU_CENTRAL_1 AWS_EU_NORTH_1 AWS_EU_WEST_1 AWS_ME_SOUTH_1 AWS_SA_EAST_1 AWS_US_EAST_1 AWS_US_EAST_2 AWS_US_WEST_1 AWS_US_WEST_2 GCP_ASIA_EAST_1...", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for viewsbot_defense_app_infrastructureLocation", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for viewsbot_defense_app_infrastructureLocation\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bot_and_threat_defense", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Bot defense infrastructure should be centralized" }, "classification": { "category": "security", "multi_tenant_pattern": "shared-ref" } } }, "schemashape_bot_defense_instanceGetSpecType": { "type": "object", "description": "GET virtual host from a given namespace.", "title": "Get virtual host", "x-displayname": "GET Virtual Host.", "x-ves-proto-message": "ves.io.schema.shape_bot_defense_instance.GetSpecType", "x-f5xc-description-short": "GET virtual host from a given namespace.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for schemashape_bot_defense_instanceGetSpecType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemashape_bot_defense_instanceGetSpecType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bot_and_threat_defense", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "shape_bot_defense_instanceGetResponse": { "type": "object", "description": "This is the output message of the 'GET' RPC.", "title": "GetResponse is the shape of a read shape_bot_defense_instance", "x-displayname": "GET Response.", "x-ves-proto-message": "ves.io.schema.shape_bot_defense_instance.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/schemashape_bot_defense_instanceGetSpecType" } ], "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 shape_bot_defense_instanceGetResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for shape_bot_defense_instanceGetResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bot_and_threat_defense", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "shape_bot_defense_instanceListResponse": { "type": "object", "description": "This is the output message of 'List' RPC.", "title": "ListResponse is the collection of shape_bot_defense_instance", "x-displayname": "List Response.", "x-ves-proto-message": "ves.io.schema.shape_bot_defense_instance.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/shape_bot_defense_instanceListResponseItem" }, "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for shape_bot_defense_instanceListResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for shape_bot_defense_instanceListResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bot_and_threat_defense", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "shape_bot_defense_instanceListResponseItem": { "type": "object", "description": "By default a summary of shape_bot_defense_instance 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 shape_bot_defense_instance", "x-displayname": "List Item", "x-ves-proto-message": "ves.io.schema.shape_bot_defense_instance.ListResponseItem", "properties": { "annotations": { "type": "object", "description": "The set of annotations present on this shape_bot_defense_instance.", "title": "annotations", "x-displayname": "Annotations.", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "The set of annotations present on this shape_bot_defense_instance.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "description": { "type": "string", "description": "The description set for this shape_bot_defense_instance.", "title": "description", "x-displayname": "Description.", "x-f5xc-description-short": "The description set for this shape_bot_defense_instance.", "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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "disabled": { "type": "boolean", "description": "A value of true indicates shape_bot_defense_instance is administratively disabled.", "title": "disabled", "format": "boolean", "x-displayname": "Disabled", "x-f5xc-example": "True", "x-f5xc-description-short": "Value of true indicates shape_bot_defense_instance is administratively disabled.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "get_spec": { "allOf": [ { "$ref": "#/components/schemas/schemashape_bot_defense_instanceGetSpecType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "labels": { "type": "object", "description": "The set of labels present on this shape_bot_defense_instance.", "title": "labels", "x-displayname": "Labels", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "The set of labels present on this shape_bot_defense_instance.", "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 shape_bot_defense_instance.", "title": "name", "x-displayname": "Name", "x-ves-example": "Name", "x-f5xc-example": "name", "x-f5xc-description-short": "The name of this shape_bot_defense_instance.", "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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" } ] }, "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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "uid": { "type": "string", "description": "The unique uid of this shape_bot_defense_instance.", "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 shape_bot_defense_instance.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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-08-20T09:12:47+00:00" } }, "x-f5xc-description-short": "By default a summary of shape_bot_defense_instance is returned in 'List'.", "x-f5xc-description-medium": "By default a summary of shape_bot_defense_instance 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 shape_bot_defense_instanceListResponseItem", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for shape_bot_defense_instanceListResponseItem\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bot_and_threat_defense", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "security", "multi_tenant_pattern": "none" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaConditionType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Bot defense infrastructure should be centralized" }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaObjectRefType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Bot defense infrastructure should be centralized" }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaStatusMetaType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Bot defense infrastructure should be centralized" }, "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_yaml": "# Minimal example for schemaStatusPublishType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Bot defense infrastructure should be centralized" }, "classification": { "category": "security", "multi_tenant_pattern": "shared-ref" } } }, "tpm_api_keyCreateRequest": { "type": "object", "description": "This is the input message of the 'Create' RPC.", "title": "CreateRequest is used to create an instance of tpm_api_key", "x-displayname": "Create Request.", "x-ves-proto-message": "ves.io.schema.tpm_api_key.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/tpm_api_keyCreateSpecType" } ], "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 tpm_api_keyCreateRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for tpm_api_keyCreateRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bot_and_threat_defense", "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" } } }, "tpm_api_keyCreateResponse": { "type": "object", "x-ves-proto-message": "ves.io.schema.tpm_api_key.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/tpm_api_keyGetSpecType" } ], "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 tpm_api_keyCreateResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for tpm_api_keyCreateResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bot_and_threat_defense", "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" } } }, "tpm_api_keyCreateSpecType": { "type": "object", "description": "APIKey object when successfully created returns actual APIKey bytes which is used by the users to call in to\nTPM provisioning API.", "title": "Create APIKey", "x-displayname": "Create TPM API Key.", "x-ves-proto-message": "ves.io.schema.tpm_api_key.CreateSpecType", "properties": { "category_ref": { "type": "array", "description": "APIKey needs a reference to an existing TPM category object\nTPM category is used for grouping customer owned APIKeys and manage them as one entity.", "title": "reference to category", "minItems": 1, "maxItems": 1, "items": { "$ref": "#/components/schemas/schemaObjectRefType" }, "x-displayname": "TPM Category.", "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-description-short": "APIKey needs a reference to an existing TPM category object TPM category is used for grouping customer owned APIKeys and manage them as one entity.", "x-f5xc-description-medium": "APIKey needs a reference to an existing TPM category object TPM category is used for grouping customer owned APIKeys and manage them as one entity.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "minItems": 1, "maxItems": 1, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "need_mtls": { "type": "boolean", "description": "Is mTLS required when using this APIKey?", "title": "need mTLS", "format": "boolean", "x-displayname": "Need mTLS", "x-ves-example": "True", "x-f5xc-example": "true", "x-f5xc-description-short": "Is mTLS required when using this APIKey?", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "APIKey object when successfully created returns actual APIKey bytes which is used by the users to call in to TPM provisioning API.", "x-f5xc-description-medium": "APIKey object when successfully created returns actual APIKey bytes which is used by the users to call in to TPM provisioning API.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for tpm_api_keyCreateSpecType", "required_fields": [ "category_ref" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for tpm_api_keyCreateSpecType\nmetadata:\n name: example\n namespace: default\nspec:\n category_ref: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"category_ref\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "bot_and_threat_defense", "x-f5xc-field-examples": { "spec.category_ref": "value" }, "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" } } }, "tpm_api_keyGetResponse": { "type": "object", "description": "This is the output message of the 'GET' RPC.", "title": "GetResponse is the shape of a read tpm_api_key", "x-displayname": "GET Response.", "x-ves-proto-message": "ves.io.schema.tpm_api_key.GetResponse", "properties": { "create_form": { "allOf": [ { "$ref": "#/components/schemas/tpm_api_keyCreateRequest" } ], "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/tpm_api_keyReplaceRequest" } ], "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/tpm_api_keyGetSpecType" } ], "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/tpm_api_keyStatusObject" }, "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-08-20T09:12:47+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 tpm_api_keyGetResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for tpm_api_keyGetResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bot_and_threat_defense", "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" } } }, "tpm_api_keyGetSpecType": { "type": "object", "description": "Retrieve an APIKey object.", "title": "Get APIKey", "x-displayname": "GET TPM API Key.", "x-ves-proto-message": "ves.io.schema.tpm_api_key.GetSpecType", "properties": { "category_ref": { "type": "array", "description": "APIKey needs a reference to an existing TPM category object\nTPM category is used for grouping customer owned APIKeys and manage them as one entity.", "title": "reference to category", "minItems": 1, "maxItems": 1, "items": { "$ref": "#/components/schemas/schemaObjectRefType" }, "x-displayname": "TPM Category.", "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-description-short": "APIKey needs a reference to an existing TPM category object TPM category is used for grouping customer owned APIKeys and manage them as one entity.", "x-f5xc-description-medium": "APIKey needs a reference to an existing TPM category object TPM category is used for grouping customer owned APIKeys and manage them as one entity.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "minItems": 1, "maxItems": 1, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "is_disabled": { "type": "boolean", "description": "If true that indicates that this APIKey is disabled.", "title": "is disabled", "format": "boolean", "x-displayname": "Is_disabled.", "x-ves-example": "True", "x-f5xc-example": "true", "x-f5xc-description-short": "If true that indicates that this APIKey is disabled.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "need_mtls": { "type": "boolean", "description": "Is mTLS required when using this APIKey?", "title": "is mTLS required?", "format": "boolean", "x-displayname": "Need mTLS", "x-ves-example": "True", "x-f5xc-example": "true", "x-f5xc-description-short": "Is mTLS required when using this APIKey?", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "revoke_reason": { "type": "string", "description": "If the APIKey is revoked then this value stores date and time after which the revocation is enforced.", "title": "revocation reason", "x-displayname": "Revoke_reason.", "x-ves-example": "Value", "x-f5xc-example": "value", "x-f5xc-description-short": "If the APIKey is revoked then this value stores date and time after which the revocation is enforced.", "x-f5xc-description-medium": "If the APIKey is revoked then this value stores date and time after which the revocation is enforced.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "revoked_timestamp": { "type": "string", "description": "If the APIKey is revoked then this value stores date and time after which the revocation is enforced.", "title": "revocation timestamp", "format": "date-time", "x-displayname": "Revoked_timestamp.", "x-f5xc-description-short": "If the APIKey is revoked then this value stores date and time after which the revocation is enforced.", "x-f5xc-description-medium": "If the APIKey is revoked then this value stores date and time after which the revocation is enforced.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "format": "date-time", "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for tpm_api_keyGetSpecType", "required_fields": [ "category_ref" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for tpm_api_keyGetSpecType\nmetadata:\n name: example\n namespace: default\nspec:\n category_ref: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"category_ref\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "bot_and_threat_defense", "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" } } }, "tpm_api_keyListResponse": { "type": "object", "description": "This is the output message of 'List' RPC.", "title": "ListResponse is the collection of tpm_api_key", "x-displayname": "List Response.", "x-ves-proto-message": "ves.io.schema.tpm_api_key.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/tpm_api_keyListResponseItem" }, "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for tpm_api_keyListResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for tpm_api_keyListResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bot_and_threat_defense", "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" } } }, "tpm_api_keyListResponseItem": { "type": "object", "description": "By default a summary of tpm_api_key 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 tpm_api_key", "x-displayname": "List Item", "x-ves-proto-message": "ves.io.schema.tpm_api_key.ListResponseItem", "properties": { "annotations": { "type": "object", "description": "The set of annotations present on this tpm_api_key.", "title": "annotations", "x-displayname": "Annotations.", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "The set of annotations present on this tpm_api_key.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "description": { "type": "string", "description": "The description set for this tpm_api_key.", "title": "description", "x-displayname": "Description.", "x-f5xc-description-short": "The description set for this tpm_api_key.", "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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "disabled": { "type": "boolean", "description": "A value of true indicates tpm_api_key is administratively disabled.", "title": "disabled", "format": "boolean", "x-displayname": "Disabled", "x-f5xc-example": "True", "x-f5xc-description-short": "Value of true indicates tpm_api_key is administratively disabled.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "get_spec": { "allOf": [ { "$ref": "#/components/schemas/tpm_api_keyGetSpecType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "labels": { "type": "object", "description": "The set of labels present on this tpm_api_key.", "title": "labels", "x-displayname": "Labels", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "The set of labels present on this tpm_api_key.", "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 tpm_api_key.", "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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/tpm_api_keyStatusObject" }, "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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "uid": { "type": "string", "description": "The unique uid of this tpm_api_key.", "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-08-20T09:12:47+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-08-20T09:12:47+00:00" } }, "x-f5xc-description-short": "By default a summary of tpm_api_key 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 tpm_api_key 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 tpm_api_keyListResponseItem", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for tpm_api_keyListResponseItem\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bot_and_threat_defense", "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" } } }, "tpm_api_keyReplaceRequest": { "type": "object", "description": "This is the input message of the 'Replace' RPC.", "title": "ReplaceRequest is used to replace contents of a tpm_api_key", "x-displayname": "Replace Request.", "x-ves-proto-message": "ves.io.schema.tpm_api_key.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/tpm_api_keyReplaceSpecType" } ], "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 tpm_api_keyReplaceRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for tpm_api_keyReplaceRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bot_and_threat_defense", "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" } } }, "tpm_api_keyReplaceResponse": { "type": "object", "x-ves-proto-message": "ves.io.schema.tpm_api_key.ReplaceResponse", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for tpm_api_keyReplaceResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for tpm_api_keyReplaceResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bot_and_threat_defense", "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" } } }, "tpm_api_keyReplaceSpecType": { "type": "object", "description": "Replace a APIKey object's revocation or enable/disable status. A revoked APIKey is not considered disabled.\nCertificates minted using disabled APIKeys are rejected during system bring-up/verification stage,\nwhereas certificates minted using revoked APIKeys are only rejected if they were minted after revocation date.", "title": "Replace APIKey", "x-displayname": "Replace TPM API Key.", "x-ves-proto-message": "ves.io.schema.tpm_api_key.ReplaceSpecType", "properties": { "is_disabled": { "type": "boolean", "description": "If true that indicates that this APIKey is disabled.", "title": "is disabled", "format": "boolean", "x-displayname": "Is_disabled.", "x-ves-example": "True", "x-f5xc-example": "true", "x-f5xc-description-short": "If true that indicates that this APIKey is disabled.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "revoke_reason": { "type": "string", "description": "If the APIKey is revoked then this value stores date and time after which the revocation is enforced.", "title": "revocation reason", "x-displayname": "Revoke_reason.", "x-ves-example": "Value", "x-f5xc-example": "value", "x-f5xc-description-short": "If the APIKey is revoked then this value stores date and time after which the revocation is enforced.", "x-f5xc-description-medium": "If the APIKey is revoked then this value stores date and time after which the revocation is enforced.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "revoked_timestamp": { "type": "string", "description": "If the APIKey is revoked then this value stores date and time after which the revocation is enforced.", "title": "timestamp when this apikey was revoked", "format": "date-time", "x-displayname": "Revoked_timestamp.", "x-f5xc-description-short": "If the APIKey is revoked then this value stores date and time after which the revocation is enforced.", "x-f5xc-description-medium": "If the APIKey is revoked then this value stores date and time after which the revocation is enforced.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "format": "date-time", "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Replace a APIKey object's revocation or enable/disable status. A revoked APIKey is not considered disabled.", "x-f5xc-description-medium": "Replace a APIKey object's revocation or enable/disable status. A revoked APIKey is not considered disabled. Certificates minted using disabled APIKeys are rejected during system bring-up/verification stage, whereas certificates minted using revoked APIKeys are only rejected if they were minted...", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for tpm_api_keyReplaceSpecType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for tpm_api_keyReplaceSpecType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bot_and_threat_defense", "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" } } }, "tpm_api_keyStatusObject": { "type": "object", "description": "Most recently observed status of object.", "title": "StatusObject", "x-displayname": "Status Object.", "x-ves-displayorder": "1,2,3", "x-ves-proto-message": "ves.io.schema.tpm_api_key.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/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 tpm_api_keyStatusObject", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for tpm_api_keyStatusObject\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bot_and_threat_defense", "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" } } }, "tpm_categoryCreateRequest": { "type": "object", "description": "This is the input message of the 'Create' RPC.", "title": "CreateRequest is used to create an instance of tpm_category", "x-displayname": "Create Request.", "x-ves-proto-message": "ves.io.schema.tpm_category.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/tpm_categoryCreateSpecType" } ], "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 tpm_categoryCreateRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for tpm_categoryCreateRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bot_and_threat_defense", "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" } } }, "tpm_categoryCreateResponse": { "type": "object", "x-ves-proto-message": "ves.io.schema.tpm_category.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/tpm_categoryGetSpecType" } ], "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 tpm_categoryCreateResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for tpm_categoryCreateResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bot_and_threat_defense", "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" } } }, "tpm_categoryCreateSpecType": { "type": "object", "description": "Create a Category object, which is a grouping of APIKeys used for TPM provisioning.", "title": "Create APIKey", "x-displayname": "Create TPM Category.", "x-ves-proto-message": "ves.io.schema.tpm_category.CreateSpecType", "properties": { "tpm_allow_list": { "type": "array", "description": "A TPM manufacturer is typically identified by its EK certificate.\nTPMAdmin can configure a allow-list of EK certificates for a given category\nWhen a TPM provision request is called, TPMAuthority verifies that EK certificate provided in provision\nmatches one the EK certificate on this allow-list\n\nAllow list of TPM EK Certificates.", "title": "Allow list of TPM EK Certificates", "items": { "type": "string" }, "x-displayname": "List of allowed TPM EK Certificates.", "x-ves-example": "Value", "x-f5xc-example": "value", "x-f5xc-description-short": "TPM manufacturer is typically identified by its EK certificate.", "x-f5xc-description-medium": "TPM manufacturer is typically identified by its EK certificate. TPMAdmin can configure a allow-list of EK certificates for a given category When a TPM provision request is called, TPMAuthority verifies that EK certificate provided in provision matches one the EK certificate on this allow-list...", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "tpm_manager_ref": { "type": "array", "description": "Reference to TPM Manager.", "title": "TPM Manager CRUD Object", "minItems": 1, "maxItems": 1, "items": { "$ref": "#/components/schemas/schemaObjectRefType" }, "x-displayname": "TPM Manager reference.", "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } } }, "x-f5xc-description-short": "Create a Category object, which is a grouping of APIKeys used for TPM provisioning.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for tpm_categoryCreateSpecType", "required_fields": [ "tpm_manager_ref" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for tpm_categoryCreateSpecType\nmetadata:\n name: example\n namespace: default\nspec:\n tpm_manager_ref: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"tpm_manager_ref\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "bot_and_threat_defense", "x-f5xc-field-examples": { "spec.tpm_manager_ref": "value" }, "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" } } }, "tpm_categoryGetResponse": { "type": "object", "description": "This is the output message of the 'GET' RPC.", "title": "GetResponse is the shape of a read tpm_category", "x-displayname": "GET Response.", "x-ves-proto-message": "ves.io.schema.tpm_category.GetResponse", "properties": { "create_form": { "allOf": [ { "$ref": "#/components/schemas/tpm_categoryCreateRequest" } ], "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/tpm_categoryReplaceRequest" } ], "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/tpm_categoryGetSpecType" } ], "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/tpm_categoryStatusObject" }, "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-08-20T09:12:47+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 tpm_categoryGetResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for tpm_categoryGetResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bot_and_threat_defense", "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" } } }, "tpm_categoryGetSpecType": { "type": "object", "description": "Retrieve an APIKey object.", "title": "Get APIKey", "x-displayname": "GET TPM Category.", "x-ves-proto-message": "ves.io.schema.tpm_category.GetSpecType", "properties": { "ak_sub_ca_certificate": { "type": "string", "description": "PEM formatted Sub CA certificate which will sign the TPM AK Certificate for this category.", "title": "AK Sub CA Certificate", "x-displayname": "AK Sub CA Certificate.", "x-ves-example": "Value", "x-f5xc-example": "value", "x-f5xc-description-short": "PEM formatted Sub CA certificate which will sign the TPM AK Certificate for this category.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "ak_sub_ca_name": { "type": "string", "description": "Name of the Sub CA which will sign the TPM AK Certificate for this category.", "title": "AK Sub CA Name", "x-displayname": "AK_SUB_CA_NAME.", "x-ves-example": "Value", "x-f5xc-example": "value", "x-f5xc-description-short": "Name of the Sub CA which will sign the TPM AK Certificate for this category.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "client_cert": { "type": "string", "description": "PEM formatted Client certificate for mTLS.", "title": "Client cert", "x-displayname": "Client certificate.", "x-ves-example": "Value", "x-f5xc-example": "value", "x-f5xc-description-short": "PEM formatted Client certificate for mTLS.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "client_key": { "type": "string", "description": "Client Key for mTLS to be used with ClientCert.", "title": "Client key", "x-displayname": "ClientKey", "x-ves-example": "Value", "x-f5xc-example": "value", "x-f5xc-description-short": "Client Key for mTLS to be used with ClientCert.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "tpm_allow_list": { "type": "array", "description": "A TPM manufacturer is typically identified by its EK certificate.\nTPMAdmin can configure a allow-list of EK certificates for a given category\nWhen a TPM provision request is called, TPMAuthority verifies that EK certificate provided in provision\nmatches one the EK certificate on this allow-list\n\nAllow list of TPM EK Certificates.", "title": "Allowed list of TPM EK Certificates", "items": { "type": "string" }, "x-displayname": "List of allowed TPM EK Certificates.", "x-ves-example": "Value", "x-f5xc-example": "value", "x-f5xc-description-short": "TPM manufacturer is typically identified by its EK certificate.", "x-f5xc-description-medium": "TPM manufacturer is typically identified by its EK certificate. TPMAdmin can configure a allow-list of EK certificates for a given category When a TPM provision request is called, TPMAuthority verifies that EK certificate provided in provision matches one the EK certificate on this allow-list...", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "tpm_manager_ref": { "type": "array", "description": "Reference to TPM Manager.", "title": "TPM Manager CRUD Object", "minItems": 1, "maxItems": 1, "items": { "$ref": "#/components/schemas/schemaObjectRefType" }, "x-displayname": "TPM Manager reference.", "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for tpm_categoryGetSpecType", "required_fields": [ "tpm_manager_ref" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for tpm_categoryGetSpecType\nmetadata:\n name: example\n namespace: default\nspec:\n tpm_manager_ref: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"tpm_manager_ref\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "bot_and_threat_defense", "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" } } }, "tpm_categoryListResponse": { "type": "object", "description": "This is the output message of 'List' RPC.", "title": "ListResponse is the collection of tpm_category", "x-displayname": "List Response.", "x-ves-proto-message": "ves.io.schema.tpm_category.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/tpm_categoryListResponseItem" }, "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for tpm_categoryListResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for tpm_categoryListResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bot_and_threat_defense", "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" } } }, "tpm_categoryListResponseItem": { "type": "object", "description": "By default a summary of tpm_category 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 tpm_category", "x-displayname": "List Item", "x-ves-proto-message": "ves.io.schema.tpm_category.ListResponseItem", "properties": { "annotations": { "type": "object", "description": "The set of annotations present on this tpm_category.", "title": "annotations", "x-displayname": "Annotations.", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "The set of annotations present on this tpm_category.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "description": { "type": "string", "description": "The description set for this tpm_category.", "title": "description", "x-displayname": "Description.", "x-f5xc-description-short": "The description set for this tpm_category.", "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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "disabled": { "type": "boolean", "description": "A value of true indicates tpm_category is administratively disabled.", "title": "disabled", "format": "boolean", "x-displayname": "Disabled", "x-f5xc-example": "True", "x-f5xc-description-short": "Value of true indicates tpm_category is administratively disabled.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "get_spec": { "allOf": [ { "$ref": "#/components/schemas/tpm_categoryGetSpecType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "labels": { "type": "object", "description": "The set of labels present on this tpm_category.", "title": "labels", "x-displayname": "Labels", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "The set of labels present on this tpm_category.", "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 tpm_category.", "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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/tpm_categoryStatusObject" }, "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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "uid": { "type": "string", "description": "The unique uid of this tpm_category.", "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-08-20T09:12:47+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-08-20T09:12:47+00:00" } }, "x-f5xc-description-short": "By default a summary of tpm_category 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 tpm_category 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 tpm_categoryListResponseItem", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for tpm_categoryListResponseItem\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bot_and_threat_defense", "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" } } }, "tpm_categoryReplaceRequest": { "type": "object", "description": "This is the input message of the 'Replace' RPC.", "title": "ReplaceRequest is used to replace contents of a tpm_category", "x-displayname": "Replace Request.", "x-ves-proto-message": "ves.io.schema.tpm_category.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/tpm_categoryReplaceSpecType" } ], "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 tpm_categoryReplaceRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for tpm_categoryReplaceRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bot_and_threat_defense", "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" } } }, "tpm_categoryReplaceResponse": { "type": "object", "x-ves-proto-message": "ves.io.schema.tpm_category.ReplaceResponse", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for tpm_categoryReplaceResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for tpm_categoryReplaceResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bot_and_threat_defense", "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" } } }, "tpm_categoryReplaceSpecType": { "type": "object", "description": "Replace a Category object's Allow list of TPM EK Certificates.", "title": "Replace Category", "x-displayname": "Replace TPM Category.", "x-ves-proto-message": "ves.io.schema.tpm_category.ReplaceSpecType", "properties": { "tpm_allow_list": { "type": "array", "description": "A TPM manufacturer is typically identified by its EK certificate.\nTPMAdmin can configure a allow-list of EK certificates for a given category\nWhen a TPM provision request is called, TPMAuthority verifies that EK certificate provided in provision\nmatches one the EK certificate on this allow-list\n\nAllow list of TPM EK Certificates.", "title": "Allowed list of TPM EK Certificates", "items": { "type": "string" }, "x-displayname": "List of allowed TPM EK Certificates.", "x-ves-example": "Value", "x-f5xc-example": "value", "x-f5xc-description-short": "TPM manufacturer is typically identified by its EK certificate.", "x-f5xc-description-medium": "TPM manufacturer is typically identified by its EK certificate. TPMAdmin can configure a allow-list of EK certificates for a given category When a TPM provision request is called, TPMAuthority verifies that EK certificate provided in provision matches one the EK certificate on this allow-list...", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Replace a Category object's Allow list of TPM EK Certificates.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for tpm_categoryReplaceSpecType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for tpm_categoryReplaceSpecType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bot_and_threat_defense", "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" } } }, "tpm_categoryStatusObject": { "type": "object", "description": "Most recently observed status of object.", "title": "StatusObject", "x-displayname": "Status Object.", "x-ves-displayorder": "1,2,3", "x-ves-proto-message": "ves.io.schema.tpm_category.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/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 tpm_categoryStatusObject", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for tpm_categoryStatusObject\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bot_and_threat_defense", "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" } } }, "tpm_managerCreateRequest": { "type": "object", "description": "This is the input message of the 'Create' RPC.", "title": "CreateRequest is used to create an instance of tpm_manager", "x-displayname": "Create Request.", "x-ves-proto-message": "ves.io.schema.tpm_manager.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/tpm_managerCreateSpecType" } ], "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 tpm_managerCreateRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for tpm_managerCreateRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bot_and_threat_defense", "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" } } }, "tpm_managerCreateResponse": { "type": "object", "x-ves-proto-message": "ves.io.schema.tpm_manager.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/tpm_managerGetSpecType" } ], "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 tpm_managerCreateResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for tpm_managerCreateResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bot_and_threat_defense", "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" } } }, "tpm_managerCreateSpecType": { "type": "object", "description": "Create a TPM Manager object.", "title": "Create TPM Manager", "x-displayname": "Create TPM Manager.", "x-ves-proto-message": "ves.io.schema.tpm_manager.CreateSpecType", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for tpm_managerCreateSpecType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for tpm_managerCreateSpecType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bot_and_threat_defense", "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" } } }, "tpm_managerGetResponse": { "type": "object", "description": "This is the output message of the 'GET' RPC.", "title": "GetResponse is the shape of a read tpm_manager", "x-displayname": "GET Response.", "x-ves-proto-message": "ves.io.schema.tpm_manager.GetResponse", "properties": { "create_form": { "allOf": [ { "$ref": "#/components/schemas/tpm_managerCreateRequest" } ], "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 } }, "spec": { "allOf": [ { "$ref": "#/components/schemas/tpm_managerGetSpecType" } ], "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/tpm_managerStatusObject" }, "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-08-20T09:12:47+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 tpm_managerGetResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for tpm_managerGetResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bot_and_threat_defense", "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" } } }, "tpm_managerGetSpecType": { "type": "object", "description": "Retrieve a TPM Manager object.", "title": "Get TPM Manager", "x-displayname": "GET TPM Manager.", "x-ves-proto-message": "ves.io.schema.tpm_manager.GetSpecType", "properties": { "ak_root_ca_certificate": { "type": "string", "description": "PEM formatted AK Root CA Certificate.", "title": "AK Root CA Certificate", "x-displayname": "AK Root CA Certificate.", "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "ak_root_ca_name": { "type": "string", "description": "Name of the Root CA under which there will a SubCA per category, the SubCA then will\nbe used to mint the TPM AK Certificate\nAK ROOT CA\n|\nAK SUB CA (this is per tpm category)\n|\nTPM AK Certificate.", "title": "AK(Attestation Key) Root CA Name", "x-displayname": "AK(Attestation Key) Root CA Name.", "x-ves-example": "Value", "x-f5xc-example": "value", "x-f5xc-description-short": "Name of the Root CA under which there will a SubCA per category, the SubCA then will be used to mint the TPM AK Certificate AK ROOT CA | AK SUB CA...", "x-f5xc-description-medium": "Name of the Root CA under which there will a SubCA per category, the SubCA then will be used to mint the TPM AK Certificate AK ROOT CA | AK SUB CA (this is per tpm category) | TPM AK Certificate.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for tpm_managerGetSpecType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for tpm_managerGetSpecType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bot_and_threat_defense", "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" } } }, "tpm_managerListResponse": { "type": "object", "description": "This is the output message of 'List' RPC.", "title": "ListResponse is the collection of tpm_manager", "x-displayname": "List Response.", "x-ves-proto-message": "ves.io.schema.tpm_manager.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/tpm_managerListResponseItem" }, "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for tpm_managerListResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for tpm_managerListResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bot_and_threat_defense", "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" } } }, "tpm_managerListResponseItem": { "type": "object", "description": "By default a summary of tpm_manager 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 tpm_manager", "x-displayname": "List Item", "x-ves-proto-message": "ves.io.schema.tpm_manager.ListResponseItem", "properties": { "annotations": { "type": "object", "description": "The set of annotations present on this tpm_manager.", "title": "annotations", "x-displayname": "Annotations.", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "The set of annotations present on this tpm_manager.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "description": { "type": "string", "description": "The description set for this tpm_manager.", "title": "description", "x-displayname": "Description.", "x-f5xc-description-short": "The description set for this tpm_manager.", "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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "disabled": { "type": "boolean", "description": "A value of true indicates tpm_manager is administratively disabled.", "title": "disabled", "format": "boolean", "x-displayname": "Disabled", "x-f5xc-example": "True", "x-f5xc-description-short": "Value of true indicates tpm_manager is administratively disabled.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "get_spec": { "allOf": [ { "$ref": "#/components/schemas/tpm_managerGetSpecType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "labels": { "type": "object", "description": "The set of labels present on this tpm_manager.", "title": "labels", "x-displayname": "Labels", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "The set of labels present on this tpm_manager.", "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 tpm_manager.", "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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/tpm_managerStatusObject" }, "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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "uid": { "type": "string", "description": "The unique uid of this tpm_manager.", "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-08-20T09:12:47+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-08-20T09:12:47+00:00" } }, "x-f5xc-description-short": "By default a summary of tpm_manager 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 tpm_manager 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 tpm_managerListResponseItem", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for tpm_managerListResponseItem\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bot_and_threat_defense", "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" } } }, "tpm_managerStatusObject": { "type": "object", "description": "Most recently observed status of object.", "title": "StatusObject", "x-displayname": "Status Object.", "x-ves-displayorder": "1,2,3", "x-ves-proto-message": "ves.io.schema.tpm_manager.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/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 tpm_managerStatusObject", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for tpm_managerStatusObject\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bot_and_threat_defense", "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" } } }, "tpm_provisionDeviceInfo": { "type": "object", "description": "DeviceInfo defines device parameters like Serial-Number to include\nin the TPM provisioning data.", "title": "TPM Device Info", "x-displayname": "Device Info.", "x-ves-proto-message": "ves.io.schema.tpm_provision.DeviceInfo", "properties": { "name": { "type": "string", "description": "Device Name.", "title": "Device Name", "x-displayname": "Device 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": 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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" }, "serial": { "type": "string", "description": "Serial Number.", "title": "Serial Number of the device", "x-displayname": "Serial Number.", "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": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "vendor": { "type": "string", "description": "Device Vendor.", "title": "Device Vendor", "x-displayname": "Device Vendor.", "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": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "version": { "type": "string", "description": "Device Version.", "title": "Device Version", "x-displayname": "Device Version.", "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": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false }, "minLength": 1, "x-reconciled-from-discovery": true, "x-reconciled-at": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-description-short": "DeviceInfo defines device parameters like Serial-Number to include in the TPM provisioning data.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for tpm_provisionDeviceInfo", "required_fields": [ "name", "serial", "vendor", "version" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for tpm_provisionDeviceInfo\nmetadata:\n name: example\n namespace: default\nspec:\n name: value\n serial: value\n vendor: value\n version: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"name\": \"value\",\n \"serial\": \"value\",\n \"vendor\": \"value\",\n \"version\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "bot_and_threat_defense", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Bot defense infrastructure should be centralized" }, "classification": { "category": "security", "multi_tenant_pattern": "shared-ref" } } }, "tpm_provisionPreauthRequest": { "type": "object", "description": "PreauthRequest defines parameters required for pre-flight auth checks\nbefore using the TPM Provisioning API key.", "title": "Preauth TPM Provisioning Request", "x-displayname": "Preauthorization Request for TPM Provisioning.", "x-ves-proto-message": "ves.io.schema.tpm_provision.PreauthRequest", "properties": { "api_key": { "type": "string", "description": "API Key allocated to TPM Provisioning (manufacturing) user.", "title": "TPM Provisioning Client API Key", "x-displayname": "TPM Provisioning Client API Key.", "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" }, "x-f5xc-description-short": "API Key allocated to TPM Provisioning (manufacturing) user.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "security", "maxLength": 1024, "minLength": 20, "characterSet": { "allowed": "[a-zA-Z0-9_-]", "description": "Alphanumeric with underscores and hyphens" }, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "device": { "allOf": [ { "$ref": "#/components/schemas/tpm_provisionDeviceInfo" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "PreauthRequest defines parameters required for pre-flight auth checks before using the TPM Provisioning API key.", "x-f5xc-description-medium": "PreauthRequest defines parameters required for pre-flight auth checks before using the TPM Provisioning API key.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for tpm_provisionPreauthRequest", "required_fields": [ "api_key" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for tpm_provisionPreauthRequest\nmetadata:\n name: example\n namespace: default\nspec:\n api_key: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"api_key\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "bot_and_threat_defense", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Bot defense infrastructure should be centralized" }, "classification": { "category": "security", "multi_tenant_pattern": "shared-ref" } } }, "tpm_provisionPreauthResponse": { "type": "object", "description": "PreauthResponse defines the preauthorization response.", "title": "Preauth TPM Provisioning Response", "x-displayname": "Preauthorization Response for TPM Provisioning.", "x-ves-proto-message": "ves.io.schema.tpm_provision.PreauthResponse", "properties": { "status": { "allOf": [ { "$ref": "#/components/schemas/tpm_provisionPreauthResponseStatus" } ], "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-08-20T09:12:47+00:00" } }, "x-f5xc-description-short": "PreauthResponse defines the preauthorization response.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for tpm_provisionPreauthResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for tpm_provisionPreauthResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bot_and_threat_defense", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Bot defense infrastructure should be centralized" }, "classification": { "category": "security", "multi_tenant_pattern": "shared-ref" } } }, "tpm_provisionPreauthResponseStatus": { "type": "string", "description": "This is the status code OPTIONS for Preauthorization Response\n\n- PREAUTH_RSP_SUCCESS: Preauth status - success, both api_key and device_info are valid\n- PREAUTH_RSP_INVALID_API_KEY: Preauth status - api_key is invalid\n- PREAUTH_RSP_INVALID_DEVICE_INFO: Preauth status - device info is invalid.", "title": "PreauthReponseStatus is the code used in PreauthResponse status", "enum": [ "PREAUTH_RSP_SUCCESS", "PREAUTH_RSP_INVALID_API_KEY", "PREAUTH_RSP_INVALID_DEVICE_INFO" ], "default": "PREAUTH_RSP_SUCCESS", "x-displayname": "Preauth Response Status.", "x-ves-proto-enum": "ves.io.schema.tpm_provision.PreauthResponseStatus", "x-f5xc-description-short": "Status code OPTIONS for Preauthorization Response - PREAUTH_RSP_SUCCESS: Preauth status - success, both api_key and device_info are valid ...", "x-f5xc-description-medium": "Status code OPTIONS for Preauthorization Response - PREAUTH_RSP_SUCCESS: Preauth status - success, both api_key and device_info are valid - PREAUTH_RSP_INVALID_API_KEY: Preauth status - api_key is invalid - PREAUTH_RSP_INVALID_DEVICE_INFO: Preauth status - device info is invalid.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for tpm_provisionPreauthResponseStatus", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for tpm_provisionPreauthResponseStatus\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bot_and_threat_defense", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Bot defense infrastructure should be centralized" }, "classification": { "category": "security", "multi_tenant_pattern": "shared-ref" } } }, "tpm_provisionProvisionRequest": { "type": "object", "description": "ProvisionReq defines parameters required for TPM Provisioning Request API.", "title": "TPM Provisioning Request", "x-displayname": "Provisioning Request.", "x-ves-proto-message": "ves.io.schema.tpm_provision.ProvisionRequest", "properties": { "ak_pub_key": { "type": "string", "description": "TPM AK Public Key in DER format.", "title": "TPM Provisioning AK Public Key", "x-displayname": "TPM Attestation Key (AK) Public Key.", "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": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "api_key": { "type": "string", "description": "API Key allocated to TPM Provisioning (manufacturing) user.", "title": "TPM Provisioning Client API Key", "x-displayname": "TPM Provisioning Client API Key.", "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" }, "x-f5xc-description-short": "API Key allocated to TPM Provisioning (manufacturing) user.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "security", "maxLength": 1024, "minLength": 20, "characterSet": { "allowed": "[a-zA-Z0-9_-]", "description": "Alphanumeric with underscores and hyphens" }, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "csr": { "type": "string", "description": "Signing request from the manufacturing plant for device TPM provisioning.", "title": "TPM Provisioning Certificate Signing Request", "x-displayname": "TPM Provisioning Certificate Signing Request.", "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" }, "x-f5xc-description-short": "Signing request from the manufacturing plant for device TPM provisioning.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "device": { "allOf": [ { "$ref": "#/components/schemas/tpm_provisionDeviceInfo" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "ek_cert": { "type": "string", "description": "TPM EK Certificate in DER format.", "title": "TPM Provisioning Endorsement Key (EK) Certificate", "x-displayname": "TPM Endorsement Key (EK) Certificate.", "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": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "ek_pub_key": { "type": "string", "description": "TPM EK Public Key in DER format.", "title": "TPM Provisioning Endorsement Key (EK) Public Key", "x-displayname": "TPM Endorsement Key (EK) Public Key.", "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": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } } }, "x-f5xc-description-short": "ProvisionReq defines parameters required for TPM Provisioning Request API.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for tpm_provisionProvisionRequest", "required_fields": [ "ak_pub_key", "api_key", "csr", "ek_cert", "ek_pub_key" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for tpm_provisionProvisionRequest\nmetadata:\n name: example\n namespace: default\nspec:\n ak_pub_key: value\n api_key: value\n csr: value\n ek_cert: value\n ek_pub_key: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"ak_pub_key\": \"value\",\n \"api_key\": \"value\",\n \"csr\": \"value\",\n \"ek_cert\": \"value\",\n \"ek_pub_key\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "bot_and_threat_defense", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Bot defense infrastructure should be centralized" }, "classification": { "category": "security", "multi_tenant_pattern": "shared-ref" } } }, "tpm_provisionProvisionResponse": { "type": "object", "title": "TPM Provisioning Response", "x-displayname": "Provisioning Response.", "x-ves-proto-message": "ves.io.schema.tpm_provision.ProvisionResponse", "properties": { "credential_bundle": { "type": "string", "description": "TPM Credential bundle used to decrypt the encrypted AK certificate.", "title": "TPM Credential Bundle", "x-displayname": "TPM Credential Bundle.", "x-ves-example": "Value", "x-f5xc-example": "value", "x-f5xc-description-short": "TPM Credential bundle used to decrypt the encrypted AK certificate.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "encrypted_ak_cert": { "type": "string", "description": "AK Certificate signed by the TPM CA and encrypted according to TPM 2.0 spec.", "title": "Encrypted TPM AK Certificate", "x-displayname": "TPM AK Certificate.", "x-ves-example": "Value", "x-f5xc-example": "value", "x-f5xc-description-short": "AK Certificate signed by the TPM CA and encrypted according to TPM 2.0 spec.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "nonce": { "type": "string", "description": "Nonce used to encrypt the AK certificate.", "title": "TPM Encryption Nonce", "x-displayname": "TPM Encryption Nonce.", "x-ves-example": "Value", "x-f5xc-example": "value", "x-f5xc-description-short": "Nonce used to encrypt the AK certificate.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for tpm_provisionProvisionResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for tpm_provisionProvisionResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "bot_and_threat_defense", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Bot defense infrastructure should be centralized" }, "classification": { "category": "security", "multi_tenant_pattern": "shared-ref" } } } }, "responses": {}, "parameters": {}, "requestBodies": {} } }, "cdn": { "openapi": "3.0.3", "info": { "title": "Cdn", "description": "Content delivery networks with edge caching, geographic distribution, and cache management. Supports custom rules, asset purge operations, and performance analytics. Enables worldwide asset distribution, optimization, and delivery monitoring across regions and protocols.", "version": "4.0.0", "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": "Content delivery networks with edge caching, geographic distribution, and cache management. Supports custom rules, asset purge operations, and performance analytics. Enables worldwide asset distribution, optimization, and delivery monitoring across regions and protocols.", "x-f5xc-summary": "Global distribution with cache rules and purge operations. Performance monitoring and analytics.", "x-f5xc-cli-domain": "cdn", "externalDocs": { "url": "https://docs.cloud.f5.com/docs/how-to/app-networking/cdn", "description": "F5 XC Documentation - Content Delivery Network" }, "x-f5xc-api-reference-url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/cdn/", "x-f5xc-best-practices": { "common_errors": [ { "code": 400, "message": "Invalid cache key configuration", "resolution": "Review cache key parameters and syntax", "prevention": "Use cache key templates for consistency" }, { "code": 409, "message": "CDN distribution already exists for origin", "resolution": "Update existing distribution or delete first", "prevention": "Check existing distributions before creation" }, { "code": 504, "message": "Origin server timeout", "resolution": "Increase timeout values or fix origin performance", "prevention": "Configure realistic timeout thresholds" } ], "security_notes": [ "Use signed URLs/cookies for private content", "Configure origin access identity for S3 origins", "Enable field-level encryption for sensitive data", "Set appropriate CORS policies for cross-origin requests" ], "performance_tips": [ "Configure optimal cache TTLs for content types", "Enable compression for text-based content", "Use edge computing for dynamic content personalization", "Configure cache warming for popular content" ] }, "x-f5xc-guided-workflows": [ { "id": "enable_cdn_distribution", "name": "Enable CDN Distribution", "description": "Configure CDN for content delivery", "complexity": "medium", "estimated_steps": 5, "prerequisites": [ "Existing origin server or load balancer", "Content cacheable via HTTP headers" ], "steps": [ { "order": 1, "action": "create_origin", "name": "Define Origin", "description": "Configure origin server for CDN", "resource": "cdn_origin", "required_fields": [ "name", "origin_address" ] }, { "order": 2, "action": "configure_cache_rules", "name": "Configure Cache Rules", "description": "Define caching behavior per content type", "tips": [ "Set longer TTL for static assets", "Use vary headers appropriately" ] }, { "order": 3, "action": "create_distribution", "name": "Create Distribution", "description": "Configure CDN distribution", "resource": "cdn_distribution", "depends_on": [ 1 ] }, { "order": 4, "action": "configure_ssl", "name": "Configure SSL", "description": "Set up HTTPS for CDN endpoints", "optional": true }, { "order": 5, "action": "verify_caching", "name": "Verify Caching", "description": "Test CDN cache behavior", "verification": [ "Check X-Cache headers", "Verify content delivery from edge" ] } ] } ], "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" } } }, "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/config/namespaces/{namespace}/cdn_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.GetSuggestedBlockClientRuleForCDN", "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 }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/cdn/" }, "x-ves-proto-rpc": "ves.io.schema.app_security.AppSecurityClientRuleAPI.GetSuggestedBlockClientRuleForCDN", "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}/cdn_loadbalancers/{name}/ddos_mitigation/suggestion": { "post": { "summary": "Suggest CDN DDoS Mitigation rule.", "description": "Suggest DDoSMitigatonRule to mitigate a given IP/ASN/Region/TLS.", "operationId": "ves.io.schema.app_security.AppSecurityClientRuleAPI.GetSuggestedDDoSMitigationRuleForCDN", "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/cdn/" }, "x-ves-proto-rpc": "ves.io.schema.app_security.AppSecurityClientRuleAPI.GetSuggestedDDoSMitigationRuleForCDN", "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}/cdn_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.GetSuggestedTrustClientRuleForCDN", "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 }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/cdn/" }, "x-ves-proto-rpc": "ves.io.schema.app_security.AppSecurityClientRuleAPI.GetSuggestedTrustClientRuleForCDN", "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}/cdn_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.GetSuggestedWAFExclusionRuleForCDN", "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/cdn/" }, "x-ves-proto-rpc": "ves.io.schema.app_security.AppSecurityWafExclusionAPI.GetSuggestedWAFExclusionRuleForCDN", "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/cdn/namespaces/system/lilac-cdn/addon/subscribe": { "post": { "summary": "Subscribe to CDN Loadbalancer.", "description": "Subscribe to CDN Loadbalancer.", "operationId": "ves.io.schema.views.cdn_loadbalancer.CustomAPI.Subscribe", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/cdn_loadbalancerSubscribeResponse" } } } }, "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/cdn_loadbalancerSubscribeRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/cdn/" }, "x-ves-proto-rpc": "ves.io.schema.views.cdn_loadbalancer.CustomAPI.Subscribe", "tags": [ "cdn" ], "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": "CDN Loadbalancer.", "x-ves-proto-service": "ves.io.schema.views.cdn_loadbalancer.CustomAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/cdn/namespaces/system/lilac-cdn/addon/unsubscribe": { "post": { "summary": "Unsubscribe to CDN Loadbalancer.", "description": "Unsubscribe to CDN Loadbalancer.", "operationId": "ves.io.schema.views.cdn_loadbalancer.CustomAPI.Unsubscribe", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/cdn_loadbalancerUnsubscribeResponse" } } } }, "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/cdn_loadbalancerUnsubscribeRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/cdn/" }, "x-ves-proto-rpc": "ves.io.schema.views.cdn_loadbalancer.CustomAPI.Unsubscribe", "tags": [ "cdn" ], "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": "CDN Loadbalancer.", "x-ves-proto-service": "ves.io.schema.views.cdn_loadbalancer.CustomAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/config/namespaces/{metadata.namespace}/cdn_loadbalancers": { "post": { "summary": "Create CDN Loadbalancer.", "description": "Shape of the CDN loadbalancer specification.", "operationId": "ves.io.schema.views.cdn_loadbalancer.API.Create", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/cdn_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/cdn_loadbalancerCreateRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/cdn/" }, "x-ves-proto-rpc": "ves.io.schema.views.cdn_loadbalancer.API.Create", "tags": [ "config" ], "x-f5xc-operation-metadata": { "purpose": "Load balancing configuration for traffic distribution", "required_fields": [ "metadata.name", "metadata.namespace", "path.metadata.namespace" ], "optional_fields": [], "field_docs": {}, "conditions": { "prerequisites": [ "Active namespace" ], "postconditions": [ "Cdn-loadbalancer resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "cdn-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": [ "cdn-loadbalancer" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "CDN Loadbalancer.", "x-ves-proto-service": "ves.io.schema.views.cdn_loadbalancer.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{metadata.namespace}/cdn_loadbalancers/{metadata.name}": { "put": { "summary": "Replace CDN Loadbalancer.", "description": "Shape of the CDN loadbalancer specification.", "operationId": "ves.io.schema.views.cdn_loadbalancer.API.Replace", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/cdn_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/cdn_loadbalancerReplaceRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/cdn/" }, "x-ves-proto-rpc": "ves.io.schema.views.cdn_loadbalancer.API.Replace", "tags": [ "config" ], "x-f5xc-operation-metadata": { "purpose": "Load balancing configuration for traffic distribution", "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": [ "cdn-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": [ "cdn-loadbalancer" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 800, "p95_ms": 2500, "p99_ms": 6000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "CDN Loadbalancer.", "x-ves-proto-service": "ves.io.schema.views.cdn_loadbalancer.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/cdn/namespaces/{namespace}/cdn_loadbalancer/access_logs": { "post": { "summary": "GET CDN Access Logs.", "description": "Retrieve CDN Load-Balancer Access logs.", "operationId": "ves.io.schema.views.cdn_loadbalancer.CustomAPI.CDNAccessLogs", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/cdn_loadbalancerCDNLogResponse" } } } }, "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 access logs for a given namespace.", "in": "path", "required": true, "x-displayname": "Namespace", "schema": { "type": "string" }, "x-f5xc-example": "value" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/cdn_loadbalancerCDNAccessLogRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/cdn/" }, "x-ves-proto-rpc": "ves.io.schema.views.cdn_loadbalancer.CustomAPI.CDNAccessLogs", "tags": [ "cdn" ], "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": [ "Access-log resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "access-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": [ "access-log" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "CDN Loadbalancer.", "x-ves-proto-service": "ves.io.schema.views.cdn_loadbalancer.CustomAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/cdn/namespaces/{namespace}/cdn_loadbalancer/access_logs/aggregation": { "post": { "summary": "CDN Access Log Aggregation Query.", "description": "Request to GET summary/analytics data for the CDN access logs that matches the query in request for a given namespace.", "operationId": "ves.io.schema.views.cdn_loadbalancer.CustomAPI.CDNAccessLogAggregationQuery", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/cdn_loadbalancerCDNLogAggregationResponse" } } } }, "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\nGET aggregation data for a given namespace.", "in": "path", "required": true, "x-displayname": "Namespace", "schema": { "type": "string" }, "x-f5xc-example": "value" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/cdn_loadbalancerCDNAccessLogAggregationRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/cdn/" }, "x-ves-proto-rpc": "ves.io.schema.views.cdn_loadbalancer.CustomAPI.CDNAccessLogAggregationQuery", "tags": [ "cdn" ], "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": "CDN Loadbalancer.", "x-ves-proto-service": "ves.io.schema.views.cdn_loadbalancer.CustomAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/cdn/namespaces/{namespace}/cdn_loadbalancer/get-service-operation-status": { "post": { "summary": "GET Service Operation Status.", "description": "GET status of an operation command for a given CDN Loadbalancer.", "operationId": "ves.io.schema.views.cdn_loadbalancer.CustomAPI.GetServiceOperation", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/common_cdnGetServiceOperationRsp" } } } }, "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 operation request.", "in": "path", "required": true, "x-displayname": "Namespace", "schema": { "type": "string" }, "x-f5xc-example": "default" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/common_cdnGetServiceOperationReq" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/cdn/" }, "x-ves-proto-rpc": "ves.io.schema.views.cdn_loadbalancer.CustomAPI.GetServiceOperation", "tags": [ "cdn" ], "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": [ "Get-service-operation-statu resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "get-service-operation-statu" ] }, "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-service-operation-statu" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "CDN Loadbalancer.", "x-ves-proto-service": "ves.io.schema.views.cdn_loadbalancer.CustomAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/cdn/namespaces/{namespace}/cdn_loadbalancer/list-service-operations-status": { "post": { "summary": "List of CDN Operation Commands.", "description": "List of service operations for a given CDN LB.", "operationId": "ves.io.schema.views.cdn_loadbalancer.CustomAPI.ListServiceOperations", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/common_cdnListServiceOperationsRsp" } } } }, "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\nThe namespace this item belongs to.", "in": "path", "required": true, "x-displayname": "Namespace", "schema": { "type": "string" }, "x-f5xc-example": "ns1" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/common_cdnListServiceOperationsReq" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/cdn/" }, "x-ves-proto-rpc": "ves.io.schema.views.cdn_loadbalancer.CustomAPI.ListServiceOperations", "tags": [ "cdn" ], "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": [ "List-service-operations-statu resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "list-service-operations-statu" ] }, "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": [ "list-service-operations-statu" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "CDN Loadbalancer.", "x-ves-proto-service": "ves.io.schema.views.cdn_loadbalancer.CustomAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/cdn/namespaces/{namespace}/cdn_loadbalancer/metrics": { "post": { "summary": "GET CDN Metrics.", "description": "Initial metrics request for CDN loadbalancers.", "operationId": "ves.io.schema.views.cdn_loadbalancer.CustomAPI.CDNMetrics", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/cdn_loadbalancerLilacCDNMetricsResponse" } } } }, "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 metric request.", "in": "path", "required": true, "x-displayname": "Namespace", "schema": { "type": "string" }, "x-f5xc-example": "default" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/cdn_loadbalancerLilacCDNMetricsRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/cdn/" }, "x-ves-proto-rpc": "ves.io.schema.views.cdn_loadbalancer.CustomAPI.CDNMetrics", "tags": [ "cdn" ], "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": "CDN Loadbalancer.", "x-ves-proto-service": "ves.io.schema.views.cdn_loadbalancer.CustomAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/cdn/namespaces/{namespace}/cdn_loadbalancer/{name}/cache-purge": { "post": { "summary": "Purge CDN Cache.", "description": "Initiate Purge for Edge CDN Cache\nDEPRECATED. Use CDN Purge Command.", "operationId": "ves.io.schema.views.cdn_loadbalancer.CustomAPI.CDNCachePurge", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/common_cdnLilacCDNCachePurgeResponse" } } } }, "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 metric request.", "in": "path", "required": true, "x-displayname": "Namespace", "schema": { "type": "string" }, "x-f5xc-example": "default" }, { "name": "name", "description": "CDN Distribution Name\nx-required\nFormat: string.", "in": "path", "required": true, "x-displayname": "Name of the CDN distrubition.", "schema": { "type": "string" }, "x-f5xc-example": "cdn-1" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/common_cdnLilacCDNCachePurgeRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/cdn/" }, "x-ves-deprecated": "Use CDN Purge Command", "x-ves-proto-rpc": "ves.io.schema.views.cdn_loadbalancer.CustomAPI.CDNCachePurge", "tags": [ "cdn" ], "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": [ "Cache-purge resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "cache-purge" ] }, "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": [ "cache-purge" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "CDN Loadbalancer.", "x-ves-proto-service": "ves.io.schema.views.cdn_loadbalancer.CustomAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/config/namespaces/{namespace}/cdn_loadbalancers": { "get": { "summary": "List CDN Loadbalancer.", "description": "List the set of cdn_loadbalancer in a namespace.", "operationId": "ves.io.schema.views.cdn_loadbalancer.API.List", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/cdn_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 cdn_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/cdn/" }, "x-ves-proto-rpc": "ves.io.schema.views.cdn_loadbalancer.API.List", "tags": [ "config" ], "x-f5xc-operation-metadata": { "purpose": "Load balancing configuration for traffic distribution", "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-discovered-response-time-ms": 155.34, "x-discovered-sample-size": 1, "x-f5xc-discovered-response-time": { "p50_ms": 155.34, "p95_ms": 310.68, "p99_ms": 466.02, "sample_count": 1, "source": "discovery", "last_measured": "2025-12-20T19:39:20.211392+00:00" } }, "x-displayname": "CDN Loadbalancer.", "x-ves-proto-service": "ves.io.schema.views.cdn_loadbalancer.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{namespace}/cdn_loadbalancers/get_security_config": { "post": { "summary": "GET Security Config for CDN Load Balancer.", "description": "Fetch the corresponding Security Config for the given CDN load balancers.", "operationId": "ves.io.schema.views.cdn_loadbalancer.CustomCDNWAAPAPI.GetCDNSecurityConfig", "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 CDN 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/cdn_loadbalancerGetCDNSecurityConfigReq" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/cdn/" }, "x-ves-proto-rpc": "ves.io.schema.views.cdn_loadbalancer.CustomCDNWAAPAPI.GetCDNSecurityConfig", "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": "CDN Loadbalancer.", "x-ves-proto-service": "ves.io.schema.views.cdn_loadbalancer.CustomCDNWAAPAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/config/namespaces/{namespace}/cdn_loadbalancers/{name}": { "get": { "summary": "GET CDN Loadbalancer.", "description": "Shape of the CDN loadbalancer specification.", "operationId": "ves.io.schema.views.cdn_loadbalancer.API.Get", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/cdn_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/cdn/" }, "x-ves-proto-rpc": "ves.io.schema.views.cdn_loadbalancer.API.Get", "tags": [ "config" ], "x-f5xc-operation-metadata": { "purpose": "Load balancing configuration for traffic distribution", "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 CDN Loadbalancer.", "description": "DELETE the specified cdn_loadbalancer.", "operationId": "ves.io.schema.views.cdn_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/cdn_loadbalancerDeleteRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/cdn/" }, "x-ves-proto-rpc": "ves.io.schema.views.cdn_loadbalancer.API.Delete", "tags": [ "config" ], "x-f5xc-operation-metadata": { "purpose": "Load balancing configuration for traffic distribution", "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": [ "cdn-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": [ "cdn-loadbalancer", "contained_resources" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 500, "p95_ms": 1500, "p99_ms": 4000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "CDN Loadbalancer.", "x-ves-proto-service": "ves.io.schema.views.cdn_loadbalancer.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{namespace}/cdn_loadbalancers/{name}/dos_automitigation_rules": { "get": { "summary": "GET DoS Auto-Mitigation Rules for CDN Load Balancer.", "description": "GET the corresponding DoS Auto-Mitigation Rules for the given CDN load balancer.", "operationId": "ves.io.schema.views.cdn_loadbalancer.CustomCDNWAAPAPI.GetCDNDoSAutoMitigationRules", "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/cdn/" }, "x-ves-proto-rpc": "ves.io.schema.views.cdn_loadbalancer.CustomCDNWAAPAPI.GetCDNDoSAutoMitigationRules", "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-discovered-response-time-ms": 164.48, "x-discovered-sample-size": 1, "x-f5xc-discovered-response-time": { "p50_ms": 164.48, "p95_ms": 328.96, "p99_ms": 493.44, "sample_count": 1, "source": "discovery", "last_measured": "2025-12-20T19:39:20.211392+00:00" } }, "x-displayname": "CDN Loadbalancer.", "x-ves-proto-service": "ves.io.schema.views.cdn_loadbalancer.CustomCDNWAAPAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/config/namespaces/{namespace}/cdn_loadbalancers/{name}/dos_automitigation_rules/{dos_automitigation_rule_name}": { "delete": { "summary": "DELETE DoS Auto-Mitigation Rule for CDN Load Balancer.", "description": "DELETE the corresponding DoS Auto-Mitigation Rule for the given CDN load balancer.", "operationId": "ves.io.schema.views.cdn_loadbalancer.CustomCDNWAAPAPI.DeleteCDNDoSAutoMitigationRule", "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/cdn/" }, "x-ves-proto-rpc": "ves.io.schema.views.cdn_loadbalancer.CustomCDNWAAPAPI.DeleteCDNDoSAutoMitigationRule", "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": "CDN Loadbalancer.", "x-ves-proto-service": "ves.io.schema.views.cdn_loadbalancer.CustomCDNWAAPAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/config/namespaces/{metadata.namespace}/cdn_purge_commands": { "post": { "summary": "Create CDN Cache Purge Command.", "description": "Shape of the CDN Purge Command specification.", "operationId": "ves.io.schema.cdn_purge_command.API.Create", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/cdn_purge_commandCreateResponse" } } } }, "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/cdn_purge_commandCreateRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/cdn/" }, "x-ves-proto-rpc": "ves.io.schema.cdn_purge_command.API.Create", "tags": [ "config" ], "x-f5xc-operation-metadata": { "purpose": "CDN configuration for content delivery", "required_fields": [ "metadata.name", "metadata.namespace", "path.metadata.namespace" ], "optional_fields": [], "field_docs": {}, "conditions": { "prerequisites": [ "Active namespace" ], "postconditions": [ "Cdn-purge-command resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "cdn-purge-command" ] }, "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": [ "cdn-purge-command" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "CDN cache purge command.", "x-ves-proto-service": "ves.io.schema.cdn_purge_command.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{namespace}/cdn_purge_commands": { "get": { "summary": "List CDN cache purge command.", "description": "List the set of cdn_purge_command in a namespace.", "operationId": "ves.io.schema.cdn_purge_command.API.List", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/cdn_purge_commandListResponse" } } } }, "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 cdn_purge_command.", "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/cdn/" }, "x-ves-proto-rpc": "ves.io.schema.cdn_purge_command.API.List", "tags": [ "config" ], "x-f5xc-operation-metadata": { "purpose": "CDN configuration for content delivery", "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": "CDN cache purge command.", "x-ves-proto-service": "ves.io.schema.cdn_purge_command.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{namespace}/cdn_purge_commands/{name}": { "get": { "summary": "GET CDN Cache Purge Command.", "description": "Shape of the CDN Purge Command specification.", "operationId": "ves.io.schema.cdn_purge_command.API.Get", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/cdn_purge_commandGetResponse" } } } }, "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 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_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/cdn/" }, "x-ves-proto-rpc": "ves.io.schema.cdn_purge_command.API.Get", "tags": [ "config" ], "x-f5xc-operation-metadata": { "purpose": "CDN configuration for content delivery", "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 CDN cache purge command.", "description": "DELETE the specified cdn_purge_command.", "operationId": "ves.io.schema.cdn_purge_command.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/cdn_purge_commandDeleteRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/cdn/" }, "x-ves-proto-rpc": "ves.io.schema.cdn_purge_command.API.Delete", "tags": [ "config" ], "x-f5xc-operation-metadata": { "purpose": "CDN configuration for content delivery", "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": [ "cdn-purge-command", "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": [ "cdn-purge-command", "contained_resources" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 500, "p95_ms": 1500, "p99_ms": 4000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "CDN cache purge command.", "x-ves-proto-service": "ves.io.schema.cdn_purge_command.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{metadata.namespace}/cdn_cache_rules": { "post": { "summary": "Create CDN cache rule.", "description": "Shape of the CDN loadbalancer specification.", "operationId": "ves.io.schema.cdn_cache_rule.API.Create", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/cdn_cache_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/cdn_cache_ruleCreateRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/cdn/" }, "x-ves-proto-rpc": "ves.io.schema.cdn_cache_rule.API.Create", "tags": [ "config" ], "x-f5xc-operation-metadata": { "purpose": "CDN configuration for content delivery", "required_fields": [ "metadata.name", "metadata.namespace", "path.metadata.namespace" ], "optional_fields": [], "field_docs": {}, "conditions": { "prerequisites": [ "Active namespace", "Policy parameters defined" ], "postconditions": [ "Cdn-cache-rule resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "cdn-cache-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": [ "cdn-cache-rule" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "CDN cache rule.", "x-ves-proto-service": "ves.io.schema.cdn_cache_rule.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{metadata.namespace}/cdn_cache_rules/{metadata.name}": { "put": { "summary": "Replace CDN cache rule.", "description": "Shape of the CDN loadbalancer specification.", "operationId": "ves.io.schema.cdn_cache_rule.API.Replace", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/cdn_cache_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/cdn_cache_ruleReplaceRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/cdn/" }, "x-ves-proto-rpc": "ves.io.schema.cdn_cache_rule.API.Replace", "tags": [ "config" ], "x-f5xc-operation-metadata": { "purpose": "CDN configuration for content delivery", "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": [ "cdn-cache-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": [ "cdn-cache-rule" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 800, "p95_ms": 2500, "p99_ms": 6000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "CDN cache rule.", "x-ves-proto-service": "ves.io.schema.cdn_cache_rule.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{namespace}/cdn_cache_rules": { "get": { "summary": "List CDN cache rule.", "description": "List the set of cdn_cache_rule in a namespace.", "operationId": "ves.io.schema.cdn_cache_rule.API.List", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/cdn_cache_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 cdn_cache_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/cdn/" }, "x-ves-proto-rpc": "ves.io.schema.cdn_cache_rule.API.List", "tags": [ "config" ], "x-f5xc-operation-metadata": { "purpose": "CDN configuration for content delivery", "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-discovered-response-time-ms": 148.74, "x-discovered-sample-size": 1, "x-f5xc-discovered-response-time": { "p50_ms": 148.74, "p95_ms": 297.48, "p99_ms": 446.22, "sample_count": 1, "source": "discovery", "last_measured": "2025-12-20T19:39:20.211392+00:00" } }, "x-displayname": "CDN cache rule.", "x-ves-proto-service": "ves.io.schema.cdn_cache_rule.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{namespace}/cdn_cache_rules/{name}": { "get": { "summary": "GET CDN cache rule.", "description": "Shape of the CDN loadbalancer specification.", "operationId": "ves.io.schema.cdn_cache_rule.API.Get", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/cdn_cache_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 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/cdn/" }, "x-ves-proto-rpc": "ves.io.schema.cdn_cache_rule.API.Get", "tags": [ "config" ], "x-f5xc-operation-metadata": { "purpose": "CDN configuration for content delivery", "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 CDN cache rule.", "description": "DELETE the specified cdn_cache_rule.", "operationId": "ves.io.schema.cdn_cache_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/cdn_cache_ruleDeleteRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/cdn/" }, "x-ves-proto-rpc": "ves.io.schema.cdn_cache_rule.API.Delete", "tags": [ "config" ], "x-f5xc-operation-metadata": { "purpose": "CDN configuration for content delivery", "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": [ "cdn-cache-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": [ "cdn-cache-rule", "contained_resources" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 500, "p95_ms": 1500, "p99_ms": 4000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "CDN cache rule.", "x-ves-proto-service": "ves.io.schema.cdn_cache_rule.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/cdn/namespaces/{namespace}/http_loadbalancer/get-service-operation-status": { "post": { "summary": "GET Service Operation Status for HTTPLB when Caching Enabled.", "description": "GET status of an operation command for a given HTTP LB when caching enabled.", "operationId": "ves.io.schema.views.http_loadbalancer.CDNCustomAPI.GetServiceOperationHTTPLBCacheEnabled", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/common_cdnGetServiceOperationRsp" } } } }, "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 operation request.", "in": "path", "required": true, "x-displayname": "Namespace", "schema": { "type": "string" }, "x-f5xc-example": "default" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/common_cdnGetServiceOperationReq" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/cdn/" }, "x-ves-proto-rpc": "ves.io.schema.views.http_loadbalancer.CDNCustomAPI.GetServiceOperationHTTPLBCacheEnabled", "tags": [ "cdn" ], "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": [ "Get-service-operation-statu resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "get-service-operation-statu" ] }, "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-service-operation-statu" ] }, "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.CDNCustomAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/cdn/namespaces/{namespace}/http_loadbalancer/list-service-operations-status": { "post": { "summary": "List of HTTPLB Operation Commands when Caching Enabled.", "description": "List of service operations for a given HTTP LB when Caching Enabled.", "operationId": "ves.io.schema.views.http_loadbalancer.CDNCustomAPI.ListServiceOperationsHTTPLBCacheEnabled", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/common_cdnListServiceOperationsRsp" } } } }, "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\nThe namespace this item belongs to.", "in": "path", "required": true, "x-displayname": "Namespace", "schema": { "type": "string" }, "x-f5xc-example": "ns1" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/common_cdnListServiceOperationsReq" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/cdn/" }, "x-ves-proto-rpc": "ves.io.schema.views.http_loadbalancer.CDNCustomAPI.ListServiceOperationsHTTPLBCacheEnabled", "tags": [ "cdn" ], "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": [ "List-service-operations-statu resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "list-service-operations-statu" ] }, "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": [ "list-service-operations-statu" ] }, "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.CDNCustomAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/cdn/namespaces/{namespace}/http_loadbalancer/{name}/cache-purge": { "post": { "summary": "Purge the LB Cache.", "description": "Initiate Purge on the LB Cache\nDEPRECATED. Use CDN Purge Command.", "operationId": "ves.io.schema.views.http_loadbalancer.CDNCustomAPI.CDNCachePurgeHTTPLBCacheEnabled", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/common_cdnLilacCDNCachePurgeResponse" } } } }, "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 metric request.", "in": "path", "required": true, "x-displayname": "Namespace", "schema": { "type": "string" }, "x-f5xc-example": "default" }, { "name": "name", "description": "CDN Distribution Name\nx-required\nFormat: string.", "in": "path", "required": true, "x-displayname": "Name of the CDN distrubition.", "schema": { "type": "string" }, "x-f5xc-example": "cdn-1" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/common_cdnLilacCDNCachePurgeRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/cdn/" }, "x-ves-deprecated": "Use CDN Purge Command", "x-ves-proto-rpc": "ves.io.schema.views.http_loadbalancer.CDNCustomAPI.CDNCachePurgeHTTPLBCacheEnabled", "tags": [ "cdn" ], "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": [ "Cache-purge resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "cache-purge" ] }, "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": [ "cache-purge" ] }, "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.CDNCustomAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" } }, "components": { "securitySchemes": { "ApiToken": { "type": "apiKey", "name": "Authorization", "in": "header", "description": "API Token authentication. Format: 'APIToken '" }, "apiKeyAuth": { "type": "apiKey", "in": "header", "name": "Authorization", "description": "F5 XC API Token (format: APIToken )" } }, "schemas": { "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_yaml": "# Minimal example for app_firewallAppFirewallViolationType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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_yaml": "# Minimal example for app_firewallAttackType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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_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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for app_securityApiEndpoint\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for app_securityGetSuggestedAPIEndpointProtectionRuleReq\nmetadata:\n name: example\n namespace: default\nspec:\n path: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"path\": \"value\"\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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_yaml": "# Minimal example for app_securityGetSuggestedAPIEndpointProtectionRuleRsp\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for app_securityGetSuggestedBlockClientRuleReq\nmetadata:\n name: example\n namespace: default\nspec:\n as_number: value\n ip_prefix: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"as_number\": \"value\",\n \"ip_prefix\": \"value\"\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for app_securityGetSuggestedBlockClientRuleRsp\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for app_securityGetSuggestedDDoSMitigtionRuleReq\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for app_securityGetSuggestedDDoSMitigtionRuleRsp\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for app_securityGetSuggestedOasValidationRuleReq\nmetadata:\n name: example\n namespace: default\nspec:\n path: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"path\": \"value\"\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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_yaml": "# Minimal example for app_securityGetSuggestedOasValidationRuleRsp\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for app_securityGetSuggestedRateLimitRuleReq\nmetadata:\n name: example\n namespace: default\nspec:\n path: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"path\": \"value\"\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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_yaml": "# Minimal example for app_securityGetSuggestedRateLimitRuleRsp\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for app_securityGetSuggestedSensitiveDataRuleReq\nmetadata:\n name: example\n namespace: default\nspec:\n path: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"path\": \"value\"\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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_yaml": "# Minimal example for app_securityGetSuggestedSensitiveDataRuleRsp\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for app_securityGetSuggestedTrustClientRuleReq\nmetadata:\n name: example\n namespace: default\nspec:\n as_number: value\n ip_prefix: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"as_number\": \"value\",\n \"ip_prefix\": \"value\"\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for app_securityGetSuggestedTrustClientRuleRsp\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for app_securityGetSuggestedWAFExclusionRuleReq\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for app_securityGetSuggestedWAFExclusionRuleRsp\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for app_securityLoadbalancerData\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for app_securityRequestData\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for app_securitySearchAfterSortValues\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for app_securitySearchFilter\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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_yaml": "# Minimal example for app_securitySearchLabel\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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_yaml": "# Minimal example for app_securitySearchLabelOperator\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for app_securitySearchLoadBalancersRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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_yaml": "# Minimal example for app_securitySearchLoadBalancersResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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_yaml": "# Minimal example for app_securitySecEventType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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 ", "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 .", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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 := {[]}\n := \"\"\n := 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 := string\n := [\"=\"|\"!=\"|\"=~\"|\"!~\"]\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 := {[]} := \"\" :=...", "x-f5xc-description-medium": "Query is used to specify the list of matchers syntax for query := {[]} := \"\" := 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-08-20T09:12:47+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 -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 -10m.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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_yaml": "# Minimal example for app_securitySecurityEventsAggregationRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for app_securitySecurityEventsAggregationResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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 ", "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 .", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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 -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 -10m.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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 ", "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-08-20T09:12:47+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_yaml": "# Minimal example for app_securitySecurityEventsCountRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for app_securitySecurityEventsCountResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for app_securitySecurityEventsData\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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 ", "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 .", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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 := {[]}\n := \"\"\n := 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 := string\n := [\"=\"|\"!=\"|\"=~\"|\"!~\"]\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 := {[]} := \"\" :=...", "x-f5xc-description-medium": "Query is used to specify the list of matchers syntax for query := {[]} := \"\" := 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-08-20T09:12:47+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-08-20T09:12:47+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 -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 -10m.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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_yaml": "# Minimal example for app_securitySecurityEventsRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for app_securitySecurityEventsResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for app_securitySecurityEventsScrollRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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 ", "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 .", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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 := {[]}\n := \"\"\n := 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 := string\n := [\"=\"|\"!=\"|\"=~\"|\"!~\"]\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 := {[]} := \"\" :=...", "x-f5xc-description-medium": "Query is used to specify the list of matchers syntax for query := {[]} := \"\" := 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-08-20T09:12:47+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 -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 -10m.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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_yaml": "# Minimal example for app_securitySecurityIncidentsAggregationRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for app_securitySecurityIncidentsAggregationResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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 ", "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 .", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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 := {[]}\n := \"\"\n := 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 := string\n := [\"=\"|\"!=\"|\"=~\"|\"!~\"]\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 := {[]} := \"\" :=...", "x-f5xc-description-medium": "Query is used to specify the list of matchers syntax for query := {[]} := \"\" := 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-08-20T09:12:47+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-08-20T09:12:47+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 -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 -10m.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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_yaml": "# Minimal example for app_securitySecurityIncidentsRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for app_securitySecurityIncidentsResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for app_securitySecurityIncidentsScrollRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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 ", "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 .", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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 := {[]}\n := \"\"\n := 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 := string\n := [\"=\"|\"!=\"|\"=~\"|\"!~\"]\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 := {[]} := \"\" :=...", "x-f5xc-description-medium": "Query is used to specify the list of matchers syntax for query := {[]} := \"\" := 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-08-20T09:12:47+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 -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 -10m.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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_yaml": "# Minimal example for app_securitySuspiciousUserLogsAggregationRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for app_securitySuspiciousUserLogsAggregationResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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 ", "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 .", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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 := {[]}\n := \"\"\n := 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 := string\n := [\"=\"|\"!=\"|\"=~\"|\"!~\"]\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 := {[]} := \"\" :=...", "x-f5xc-description-medium": "Query is used to specify the list of matchers syntax for query := {[]} := \"\" := 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-08-20T09:12:47+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-08-20T09:12:47+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 -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 -10m.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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_yaml": "# Minimal example for app_securitySuspiciousUserLogsRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for app_securitySuspiciousUserLogsResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for app_securitySuspiciousUserLogsScrollRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for app_securityThreatCampaign\nmetadata:\n name: example\n namespace: default\nspec:\n id: value\n last_update: value\n malwares: value\n name: value\n risk: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"id\": \"value\",\n \"last_update\": \"value\",\n \"malwares\": \"value\",\n \"name\": \"value\",\n \"risk\": \"value\"\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for common_securityDDoSClientSource\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for common_securityDDoSMitigationRule\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for common_wafAPIEndpointProtectionRule\nmetadata:\n name: example\n namespace: default\nspec:\n api_endpoint_path: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"api_endpoint_path\": \"value\"\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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_yaml": "# Minimal example for common_wafAPIProtectionRuleAction\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for common_wafApiEndpointDetails\nmetadata:\n name: example\n namespace: default\nspec:\n path: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"path\": \"value\"\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for common_wafApiEndpointRule\nmetadata:\n name: example\n namespace: default\nspec:\n api_endpoint_path: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"api_endpoint_path\": \"value\"\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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_yaml": "# Minimal example for common_wafClientSrcRuleAction\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for common_wafCustomFallThroughMode\nmetadata:\n name: example\n namespace: default\nspec:\n open_api_validation_rules: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"open_api_validation_rules\": \"value\"\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for common_wafFallThroughRule\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for common_wafHttpHeaderMatcherList\nmetadata:\n name: example\n namespace: default\nspec:\n headers: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"headers\": \"value\"\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for common_wafInlineRateLimiter\nmetadata:\n name: example\n namespace: default\nspec:\n threshold: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"threshold\": \"value\"\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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_yaml": "# Minimal example for common_wafOpenApiFallThroughMode\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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_yaml": "# Minimal example for common_wafOpenApiValidationAllSpecEndpointsSettings\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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_yaml": "# Minimal example for common_wafOpenApiValidationCommonSettings\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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_yaml": "# Minimal example for common_wafOpenApiValidationMode\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for common_wafOpenApiValidationModeActive\nmetadata:\n name: example\n namespace: default\nspec:\n request_validation_properties: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"request_validation_properties\": \"value\"\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for common_wafOpenApiValidationModeActiveResponse\nmetadata:\n name: example\n namespace: default\nspec:\n response_validation_properties: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"response_validation_properties\": \"value\"\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for common_wafOpenApiValidationRule\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for common_wafSimpleClientSrcRule\nmetadata:\n name: example\n namespace: default\nspec:\n actions: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"actions\": \"value\"\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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_yaml": "# Minimal example for common_wafValidationPropertySetting\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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_yaml": "# Minimal example for common_wafValidationSettingForQueryParameters\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for http_loadbalancerBodySectionMaskingOptions\nmetadata:\n name: example\n namespace: default\nspec:\n fields: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"fields\": \"value\"\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_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_yaml": "# Minimal example for http_loadbalancerSensitiveDataTypes\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for ioschemaHeaderMatcherType\nmetadata:\n name: example\n namespace: default\nspec:\n name: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"name\": \"value\"\n }\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" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for ioschemaObjectRefType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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_yaml": "# Minimal example for metricsSecurityEventsCounter\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for metricsSecurityEventsId\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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_yaml": "# Minimal example for metricsSecurityMetricLabel\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "label", "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" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for metricsSecurityMetricLabelFilter\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "label", "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" } } }, "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_yaml": "# Minimal example for metricsSecurityMetricLabelOp\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "label", "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" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for metricsSecurityMetricValue\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for policyAppFirewallAttackTypeContext\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for policyAppFirewallDetectionControl\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for policyAppFirewallSignatureContext\nmetadata:\n name: example\n namespace: default\nspec:\n signature_id: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"signature_id\": \"value\"\n }\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" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for policyAppFirewallViolationContext\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for policyAsnMatchList\nmetadata:\n name: example\n namespace: default\nspec:\n as_numbers: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"as_numbers\": \"value\"\n }\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" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for policyAsnMatcherType\nmetadata:\n name: example\n namespace: default\nspec:\n asn_sets: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"asn_sets\": \"value\"\n }\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" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for policyBotNameContext\nmetadata:\n name: example\n namespace: default\nspec:\n bot_name: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"bot_name\": \"value\"\n }\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" } } }, "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_yaml": "# Minimal example for policyClientMatcher\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for policyCookieMatcherType\nmetadata:\n name: example\n namespace: default\nspec:\n name: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"name\": \"value\"\n }\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" } } }, "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_yaml": "# Minimal example for policyCountryCode\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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_yaml": "# Minimal example for policyDetectionContext\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for policyHttpMethodMatcherType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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_yaml": "# Minimal example for policyIPThreatCategory\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for policyIpMatcherType\nmetadata:\n name: example\n namespace: default\nspec:\n prefix_sets: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"prefix_sets\": \"value\"\n }\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" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for policyJA4TlsFingerprintMatcherType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for policyJWTClaimMatcherType\nmetadata:\n name: example\n namespace: default\nspec:\n name: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"name\": \"value\"\n }\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" } } }, "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_yaml": "# Minimal example for policyKnownTlsFingerprintClass\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for policyMatcherType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for policyPrefixMatchList\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for policyRequestMatcher\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for policySimpleWafExclusionRule\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for policyTlsFingerprintMatcherType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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_yaml": "# Minimal example for policyTransformer\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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_yaml": "# Minimal example for rate_limiterRateLimitPeriodUnit\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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_yaml": "# Minimal example for schemaEmpty\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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_yaml": "# Minimal example for schemaHttpMethod\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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 ::= | \",\" \n ::= [!] KEY [ | ]\n ::= \"\" | \n ::= | \n ::= \"notin\"\n ::= \"in\"\n ::= \"(\" \")\"\n ::= VALUE | VALUE \",\" \n ::= [\"=\"|\"==\"|\"!=\"] 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-08-20T09:12:47+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_yaml": "# Minimal example for schemaLabelSelectorType\nmetadata:\n name: example\n namespace: default\nspec:\n expressions: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"expressions\": \"value\"\n }\n}" }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaMessageMetaType\nmetadata:\n name: example\n namespace: default\nspec:\n name: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"name\": \"value\"\n }\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" } } }, "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_yaml": "# Minimal example for schemaOpenApiValidationProperties\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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_yaml": "# Minimal example for schemaSortOrder\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemapolicyHeaderMatcherType\nmetadata:\n name: example\n namespace: default\nspec:\n name: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"name\": \"value\"\n }\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" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for schemapolicyIPThreatCategoryListType\nmetadata:\n name: example\n namespace: default\nspec:\n ip_threat_categories: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"ip_threat_categories\": \"value\"\n }\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" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemapolicyQueryParameterMatcherType\nmetadata:\n name: example\n namespace: default\nspec:\n key: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"key\": \"value\"\n }\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" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaviewsObjectRefType\nmetadata:\n name: example\n namespace: default\nspec:\n name: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"name\": \"value\"\n }\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" } } }, "access_logCDNAccessLogTag": { "type": "string", "description": "Tags on which CDN access logs can be filtered or grouped by.", "title": "Metrics Tag options", "enum": [ "CDN_NAME", "SITE_NAME", "METHOD", "REQ_PATH", "RSP_CODE", "USER_AGENT", "SCHEME", "COUNTRY", "CACHE_STATUS", "RSP_CONTENT_TYPE", "HOST_HEADER", "REFERER", "SNI", "UPSTREAM_STATUS", "RSP_CODE_CLASS", "SRC_IP", "TLS_VERSION", "REQ_SIZE", "HTTP_VERSION", "CITY_NAME", "UPSTREAM_ADDR" ], "default": "CDN_NAME", "x-displayname": "Tags", "x-ves-proto-enum": "ves.io.schema.views.cdn_loadbalancer.access_log.CDNAccessLogTag", "x-f5xc-description-short": "Tags on which CDN access logs can be filtered or grouped by.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for access_logCDNAccessLogTag", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for access_logCDNAccessLogTag\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "statistics", "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" } } }, "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-08-20T09:12:47+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": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for app_typeDiscoveredAPISettings\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "cdn_loadbalancerCDNAccessLogAggregationRequest": { "type": "object", "description": "Request to GET only aggregation data for access logs.", "title": "CDNAccessLogAggregationRequest", "x-displayname": "CDN Access Log Aggregation Request.", "x-ves-proto-message": "ves.io.schema.views.cdn_loadbalancer.CDNAccessLogAggregationRequest", "properties": { "aggs": { "type": "object", "description": "Aggregations provide summary/analytics data over the log 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-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.max_pairs": "16" }, "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.max_pairs": "16" }, "x-f5xc-description-short": "Aggregations provide summary/analytics data over the log response.", "x-f5xc-description-medium": "Aggregations provide summary/analytics data over the log 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 aggregation name.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "end_time": { "type": "string", "description": "Fetch access 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 ", "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": "Fetch access logs whose timestamp <= end_time format: unix_timestamp|RFC 3339 Optional: If not specified, then the end_time will be evaluated to...", "x-f5xc-description-medium": "Fetch access 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 .", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "namespace": { "type": "string", "description": "GET aggregation data for a given namespace.", "title": "namespace", "x-displayname": "Namespace", "x-ves-example": "Value", "x-f5xc-example": "value", "x-f5xc-description-short": "GET aggregation data 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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" }, "query": { "type": "array", "description": "CDN Access Logs filter OPTIONS.", "title": "Access Logs Filter options", "items": { "$ref": "#/components/schemas/cdn_loadbalancerCDNAccessLogFilter" }, "x-displayname": "Access Logs Filter.", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "start_time": { "type": "string", "description": "Fetch access 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 -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": "Fetch access logs whose timestamp >= start_time format: unix_timestamp|RFC 3339 Optional: If not specified, then the start_time will be evaluated...", "x-f5xc-description-medium": "Fetch access 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 -10m.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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 access logs.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cdn_loadbalancerCDNAccessLogAggregationRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cdn_loadbalancerCDNAccessLogAggregationRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cdn", "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" } } }, "cdn_loadbalancerCDNAccessLogFilter": { "type": "object", "description": "CDN Access log filter OPTIONS.", "title": "Access Log filter fields", "x-displayname": "CDN Access log Filter.", "x-ves-proto-message": "ves.io.schema.views.cdn_loadbalancer.CDNAccessLogFilter", "properties": { "operator": { "allOf": [ { "$ref": "#/components/schemas/cdn_loadbalancerCDNAccessLogOperatorType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "tag": { "allOf": [ { "$ref": "#/components/schemas/access_logCDNAccessLogTag" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "values": { "type": "array", "description": "Filter values.", "title": "Filter values", "maxItems": 32, "items": { "type": "string", "maxLength": 256 }, "x-displayname": "Filter values.", "x-ves-example": "[IN, US]", "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.max_items": "32", "ves.io.schema.rules.repeated.unique": "true" }, "x-f5xc-example": "[IN, US]", "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.max_items": "32", "ves.io.schema.rules.repeated.unique": "true" }, "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 32, "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cdn_loadbalancerCDNAccessLogFilter", "required_fields": [ "values" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cdn_loadbalancerCDNAccessLogFilter\nmetadata:\n name: example\n namespace: default\nspec:\n values: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"values\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "cdn", "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" } } }, "cdn_loadbalancerCDNAccessLogOperatorType": { "type": "string", "description": "Operators possible in filtering.", "title": "Metrics Operator Types", "enum": [ "CDN_ACCESS_LOG_OPERATOR_TYPE_IN", "CDN_ACCESS_LOG_OPERATOR_TYPE_NOT_IN" ], "default": "CDN_ACCESS_LOG_OPERATOR_TYPE_IN", "x-displayname": "Metrics Operator Types.", "x-ves-proto-enum": "ves.io.schema.views.cdn_loadbalancer.CDNAccessLogOperatorType", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cdn_loadbalancerCDNAccessLogOperatorType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cdn_loadbalancerCDNAccessLogOperatorType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cdn", "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" } } }, "cdn_loadbalancerCDNAccessLogRequest": { "type": "object", "description": "Request to fetch access logs.", "title": "CDNAccessLogRequest", "x-displayname": "CDN Access Log Request.", "x-ves-proto-message": "ves.io.schema.views.cdn_loadbalancer.CDNAccessLogRequest", "properties": { "aggs": { "type": "object", "description": "Aggregations provide summary/analytics data over the log 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-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.max_pairs": "16" }, "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.max_pairs": "16" }, "x-f5xc-description-short": "Aggregations provide summary/analytics data over the log response.", "x-f5xc-description-medium": "Aggregations provide summary/analytics data over the log 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 aggregation name.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "end_time": { "type": "string", "description": "Fetch access 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 ", "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": "Fetch access logs whose timestamp <= end_time format: unix_timestamp|RFC 3339 Optional: If not specified, then the end_time will be evaluated to...", "x-f5xc-description-medium": "Fetch access 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 .", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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 log messages 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": "int64", "x-displayname": "Limit", "x-ves-example": "0", "x-ves-validation-rules": { "ves.io.schema.rules.uint32.gte": "0", "ves.io.schema.rules.uint32.lte": "500" }, "x-f5xc-example": "0", "x-validation-rules": { "ves.io.schema.rules.uint32.gte": "0", "ves.io.schema.rules.uint32.lte": "500" }, "x-f5xc-description-short": "Limits the number of logs returned in the response Optional: If not specified, first or last 500 log messages that matches the query (depending on...", "x-f5xc-description-medium": "Limits the number of logs returned in the response Optional: If not specified, first or last 500 log messages 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": "discovery", "minimum": 0, "maximum": 500, "multipleOf": 1, "metadata": { "source": "api-probed", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" }, "deterministic": true }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "namespace": { "type": "string", "description": "Fetch access logs for a given namespace.", "title": "namespace", "x-displayname": "Namespace", "x-ves-example": "Value", "x-f5xc-example": "value", "x-f5xc-description-short": "Fetch access 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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" }, "query": { "type": "array", "description": "CDN Access Logs filter OPTIONS.", "title": "Access Logs Filter options", "maxItems": 32, "items": { "$ref": "#/components/schemas/cdn_loadbalancerCDNAccessLogFilter" }, "x-displayname": "Access Logs Filter.", "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-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 32, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "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 } }, "start_time": { "type": "string", "description": "Fetch access 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 -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": "Fetch access logs whose timestamp >= start_time format: unix_timestamp|RFC 3339 Optional: If not specified, then the start_time will be evaluated...", "x-f5xc-description-medium": "Fetch access 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 -10m.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cdn_loadbalancerCDNAccessLogRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cdn_loadbalancerCDNAccessLogRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cdn", "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" } } }, "cdn_loadbalancerCDNHTTPSAutoCertsType": { "type": "object", "description": "Choice for selecting HTTPS CDN distribution with bring your own certificates.", "title": "HTTPS with Automatic Certificate", "x-displayname": "HTTPS with Automatic Certificate.", "x-ves-displayorder": "1,2,3", "x-ves-proto-message": "ves.io.schema.views.cdn_loadbalancer.CDNHTTPSAutoCertsType", "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 } }, "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 } }, "tls_config": { "allOf": [ { "$ref": "#/components/schemas/cdn_loadbalancerCDNTLSConfig" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Choice for selecting HTTPS CDN distribution with bring your own certificates.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cdn_loadbalancerCDNHTTPSAutoCertsType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cdn_loadbalancerCDNHTTPSAutoCertsType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cdn", "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" } } }, "cdn_loadbalancerCDNHTTPSCustomCertsType": { "type": "object", "description": "Choice for selecting CDN Distribution with bring your own certificates.", "title": "BYOC for the CDN distribution", "x-displayname": "BYOC HTTPS Choice.", "x-ves-displayorder": "1,2,7", "x-ves-proto-message": "ves.io.schema.views.cdn_loadbalancer.CDNHTTPSCustomCertsType", "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 } }, "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 } }, "tls_cert_options": { "allOf": [ { "$ref": "#/components/schemas/cdn_loadbalancerTlsCertOptions" } ], "x-f5xc-description-short": "Configuration parameter for tls cert options.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Choice for selecting CDN Distribution with bring your own certificates.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cdn_loadbalancerCDNHTTPSCustomCertsType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cdn_loadbalancerCDNHTTPSCustomCertsType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cdn", "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" } } }, "cdn_loadbalancerCDNLoadBalancerList": { "type": "object", "title": "List of cdn load balancers", "x-displayname": "List of CDN Load Balancers.", "x-ves-proto-message": "ves.io.schema.views.cdn_loadbalancer.CDNLoadBalancerList", "properties": { "cdn_loadbalancer": { "type": "array", "description": "Configuration parameter for cdn loadbalancer", "title": "CDN LoadBalancer", "minItems": 1, "maxItems": 5, "items": { "type": "string", "minLength": 1, "maxLength": 256 }, "x-displayname": "CDN 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 cdn loadbalancer.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "minItems": 1, "maxItems": 5, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cdn_loadbalancerCDNLoadBalancerList", "required_fields": [ "cdn_loadbalancer" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cdn_loadbalancerCDNLoadBalancerList\nmetadata:\n name: example\n namespace: default\nspec:\n cdn_loadbalancer: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"cdn_loadbalancer\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "cdn", "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" } } }, "cdn_loadbalancerCDNLogAggregationResponse": { "type": "object", "description": "Response message for CDNAccessLogAggregationRequest.", "title": "CDNLogAggregationResponse", "x-displayname": "CDN Log Aggregation Response.", "x-ves-proto-message": "ves.io.schema.views.cdn_loadbalancer.CDNLogAggregationResponse", "properties": { "aggs": { "type": "object", "description": "Aggregations provide summary/analytics data over the log 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 log response.", "x-f5xc-description-medium": "Aggregations provide summary/analytics data over the log 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 aggregation name...", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "total_hits": { "type": "string", "description": "Total number of log messages 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 log messages 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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Response message for CDNAccessLogAggregationRequest.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cdn_loadbalancerCDNLogAggregationResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cdn_loadbalancerCDNLogAggregationResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cdn", "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" } } }, "cdn_loadbalancerCDNLogResponse": { "type": "object", "description": "Response message for AccessLogRequest.", "title": "CDNLogResponse", "x-displayname": "CDN Log Response.", "x-ves-proto-message": "ves.io.schema.views.cdn_loadbalancer.CDNLogResponse", "properties": { "aggs": { "type": "object", "description": "Aggregations provide summary/analytics data over the log 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 log response.", "x-f5xc-description-medium": "Aggregations provide summary/analytics data over the log 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 aggregation name...", "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. Not all log messages that matched the query are returned in the response.", "title": "logs", "items": { "$ref": "#/components/schemas/cdn_loadbalancerLilacCDNAccessLogsResponseData" }, "x-displayname": "Logs", "x-ves-example": "Value", "x-f5xc-example": "value", "x-f5xc-description-short": "List of log messages that matched the query. Not all log messages that matched the query are returned in the response.", "x-f5xc-description-medium": "List of log messages that matched the query. Not all log messages that matched the query are returned in the response.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "total_hits": { "type": "string", "description": "Total number of log messages 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 log messages 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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cdn_loadbalancerCDNLogResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cdn_loadbalancerCDNLogResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cdn", "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" } } }, "cdn_loadbalancerCDNTLSConfig": { "type": "object", "description": "This defines various OPTIONS to configure TLS configuration parameters.", "title": "CDNTLSConfig", "x-displayname": "TLS Config.", "x-ves-displayorder": "5", "x-ves-oneof-field-choice": "[\"tls_11_plus\",\"tls_12_plus\"]", "x-ves-proto-message": "ves.io.schema.views.cdn_loadbalancer.CDNTLSConfig", "properties": { "tls_11_plus": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-description-short": "Configuration parameter for tls 11 plus.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "tls_12_plus" ] }, "tls_12_plus": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-description-short": "Configuration parameter for tls 12 plus.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "tls_11_plus" ] } }, "x-f5xc-description-short": "Defines various OPTIONS to configure TLS configuration parameters.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cdn_loadbalancerCDNTLSConfig", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cdn_loadbalancerCDNTLSConfig\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cdn", "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" } } }, "cdn_loadbalancerCreateRequest": { "type": "object", "description": "This is the input message of the 'Create' RPC.", "title": "CreateRequest is used to create an instance of cdn_loadbalancer", "x-displayname": "Create Request.", "x-ves-proto-message": "ves.io.schema.views.cdn_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/viewscdn_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 cdn_loadbalancerCreateRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cdn_loadbalancerCreateRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cdn", "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" } } }, "cdn_loadbalancerCreateResponse": { "type": "object", "x-ves-proto-message": "ves.io.schema.views.cdn_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/viewscdn_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 cdn_loadbalancerCreateResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cdn_loadbalancerCreateResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cdn", "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" } } }, "cdn_loadbalancerDeleteRequest": { "type": "object", "description": "This is the input message of the 'DELETE' RPC.", "title": "DeleteRequest is used to delete a cdn_loadbalancer", "x-displayname": "DELETE Request.", "x-ves-proto-message": "ves.io.schema.views.cdn_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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cdn_loadbalancerDeleteRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cdn_loadbalancerDeleteRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cdn", "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" } } }, "cdn_loadbalancerGetCDNSecurityConfigReq": { "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_cdn_loadbalancers\",\"cdn_loadbalancers_list\"]", "x-ves-proto-message": "ves.io.schema.views.cdn_loadbalancer.GetCDNSecurityConfigReq", "properties": { "all_cdn_loadbalancers": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-description-short": "Configuration parameter for all cdn loadbalancers.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "cdn_loadbalancers_list" ] }, "cdn_loadbalancers_list": { "allOf": [ { "$ref": "#/components/schemas/cdn_loadbalancerCDNLoadBalancerList" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "all_cdn_loadbalancers" ] }, "namespace": { "type": "string", "description": "Namespace of the CDN 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 CDN 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-08-20T09:12:47+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-08-20T09:12:47+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 cdn_loadbalancerGetCDNSecurityConfigReq", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cdn_loadbalancerGetCDNSecurityConfigReq\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cdn", "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" } } }, "cdn_loadbalancerGetResponse": { "type": "object", "description": "This is the output message of the 'GET' RPC.", "title": "GetResponse is the shape of a read cdn_loadbalancer", "x-displayname": "GET Response.", "x-ves-proto-message": "ves.io.schema.views.cdn_loadbalancer.GetResponse", "properties": { "create_form": { "allOf": [ { "$ref": "#/components/schemas/cdn_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/cdn_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/viewscdn_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/cdn_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-08-20T09:12:47+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 cdn_loadbalancerGetResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cdn_loadbalancerGetResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cdn", "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" } } }, "cdn_loadbalancerLilacCDNAccessLogsResponseData": { "type": "object", "description": "CDN Access-Log item.", "title": "CDN access logs data item", "x-displayname": "CDN Access log data item.", "x-ves-proto-message": "ves.io.schema.views.cdn_loadbalancer.LilacCDNAccessLogsResponseData", "properties": { "cache_status": { "type": "string", "description": "CDN Cache Status.", "title": "CDN Cache Status", "x-displayname": "CDN Cache Status.", "x-ves-example": "MISS", "x-f5xc-example": "MISS", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "cdn_name": { "type": "string", "description": "Name of the CDN distribution.", "title": "CDN Name", "x-displayname": "Name of the CDN Distribution.", "x-ves-example": "Example-website.", "x-f5xc-example": "example-website", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "city_id": { "type": "string", "description": "Geo City ID [maxmind]", "title": "Geo City Id", "x-displayname": "Geo City ID.", "x-ves-example": "3109256", "x-f5xc-example": "3109256", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-field-mutability": "read-only" }, "city_name": { "type": "string", "description": "Geo City Name.", "title": "Geo City Name", "x-displayname": "Geo City Name.", "x-ves-example": "Segovia", "x-f5xc-example": "Segovia", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "client_port": { "type": "string", "description": "Client Port.", "title": "Client port", "x-displayname": "Client Port.", "x-ves-example": "50756", "x-f5xc-example": "50756", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "country": { "type": "string", "description": "Geo Country Code of the request.", "title": "Geo Country Code of the request", "x-displayname": "Geo Country Code of the request.", "x-f5xc-example": "\"\"", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "geo_location": { "type": "string", "description": "Geo Location of the request.", "title": "Geo Location of the request", "x-displayname": "Geo Location of the request.", "x-f5xc-example": "\"\"", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "host": { "type": "string", "description": "Host Name of the node where the log was captured.", "title": "Host", "x-displayname": "Name of the Host.", "x-ves-example": "Edge-node-1-85955f9c64-jqw7j.", "x-f5xc-example": "edge-node-1-85955f9c64-jqw7j", "x-f5xc-description-short": "Host Name of the node where the log was captured.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "host_header": { "type": "string", "description": "HTTP Host Header.", "title": "Host Header", "x-displayname": "HTTP Host Header Value.", "x-ves-example": "www.f5.com.", "x-f5xc-example": "www.f5.com", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "http_version": { "type": "string", "description": "HTTP Version of the request.", "title": "HTTP Version of the request", "x-displayname": "HTTP Version of the request.", "x-ves-example": "HTTP/1.1", "x-f5xc-example": "HTTP/1.1", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "method": { "type": "string", "description": "HTTP Method Name.", "title": "HTTP Method Name", "x-displayname": "HTTP Method Name.", "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "referer": { "type": "string", "description": "HTTP referer.", "title": "HTTP referer", "x-displayname": "HTTP referer.", "x-ves-example": "https://example.com/.", "x-f5xc-example": "https://example.com/", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "req_content_type": { "type": "string", "description": "Content-Type of the request.", "title": "Content-Type of the request", "x-displayname": "Content-Type of the request.", "x-ves-example": "Text/HTML", "x-f5xc-example": "text/html", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "req_path": { "type": "string", "description": "HTTP request path.", "title": "HTTP request path", "x-displayname": "HTTP request path.", "x-ves-example": "/index.html.", "x-f5xc-example": "/index.html", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "req_size": { "type": "string", "description": "HTTP Request Size.", "title": "HTTP Request Size", "format": "uint64", "x-displayname": "HTTP Request Size.", "x-f5xc-example": "\"", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "format": "uint64", "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "request_time": { "type": "string", "description": "Time taken by the request.", "title": "Time taken by the request", "x-displayname": "Time taken by the request.", "x-ves-example": "0.0", "x-f5xc-example": "0.0", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "rsp_code": { "type": "string", "description": "HTTP Response Code.", "title": "HTTP Response Code", "x-displayname": "HTTP Response Code.", "x-ves-example": "200", "x-f5xc-example": "200", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "rsp_code_class": { "type": "string", "description": "HTTP Response Code Class.", "title": "HTTP Response Code Class", "x-displayname": "HTTP Response Code Class.", "x-ves-example": "2xx", "x-f5xc-example": "2xx", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "rsp_content_type": { "type": "string", "description": "Content-Type of the response.", "title": "Content-Type of the response", "x-displayname": "Content-Type of the response.", "x-ves-example": "Text/HTML", "x-f5xc-example": "text/html", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "rsp_size": { "type": "string", "description": "HTTP Response Size.", "title": "HTTP Response Size", "format": "uint64", "x-displayname": "HTTP Response Size.", "x-ves-example": "600", "x-f5xc-example": "600", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "format": "uint64", "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "scheme": { "type": "string", "description": "HTTP request scheme.", "title": "HTTP request scheme", "x-displayname": "HTTP request scheme.", "x-ves-example": "HTTPS", "x-f5xc-example": "https", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "site_name": { "type": "string", "description": "Name of the Site.", "title": "Site Name", "x-displayname": "Name of the Site.", "x-ves-example": "Pa4-par-CDN.", "x-f5xc-example": "pa4-par-cdn", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "src_ip": { "type": "string", "description": "Source IP address.", "title": "Source IP address", "x-displayname": "IP address of the client from where the request came from.", "x-ves-example": "192.0.2.103.", "x-f5xc-example": "192.0.2.103", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "timestamp": { "type": "string", "description": "Format: unix_timestamp|RFC 3339.", "title": "Timestamp", "x-displayname": "Timestamp of the access log.", "x-ves-example": "2022-10-21T01:05:32.713Z.", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true" }, "x-f5xc-example": "2022-10-21T01:05:32.713Z", "x-validation-rules": { "ves.io.schema.rules.message.required": "true" }, "format": "date-time", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "temporal", "maxLength": 1024, "format": "date-time", "minLength": 20, "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d{3})?Z?$", "formatDescription": "ISO 8601 date-time (e.g., 2026-01-19T12:00:00Z)", "validation": { "standard": "ISO 8601" }, "metadata": { "source": "inferred", "confidence": 0.95, "validatedAt": "2026-08-20T09:12:47+00:00" }, "deterministic": true }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "tls_sni": { "type": "string", "description": "TLS Service Name Indication.", "title": "Service Name Indication", "x-displayname": "TLS Service Name Indication Value.", "x-ves-example": "www.f5.com.", "x-f5xc-example": "www.f5.com", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "tls_version": { "type": "string", "description": "TLS Version Value.", "title": "TLS Version", "x-displayname": "TLS Version Value.", "x-ves-example": "TLSv1.3", "x-f5xc-example": "TLSv1.3", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "upstream_addr": { "type": "string", "description": "Upstream Address.", "title": "Upstream Address", "x-displayname": "Upstream Address.", "x-f5xc-example": "\"\"", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "upstream_connect_time": { "type": "string", "description": "Upstream Connect Time.", "title": "Upstream Connect Time", "x-displayname": "Upstream Connect Time.", "x-f5xc-example": "\"\"", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "upstream_response_time": { "type": "string", "description": "Upstream Response Time.", "title": "Upstream Response Time", "x-displayname": "Upstream Response Time.", "x-ves-example": "nginx.data.fr-edge1-0.", "x-f5xc-example": "nginx.data.fr-edge1-0", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "upstream_status": { "type": "string", "description": "Upstream Status.", "title": "Upstream Status", "x-displayname": "Upstream Status.", "x-ves-example": "nginx.data.fr-edge1-0.", "x-f5xc-example": "nginx.data.fr-edge1-0", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "user": { "type": "string", "description": "Name of the user.", "title": "User name", "x-displayname": "Name of the User.", "x-f5xc-example": "\"\"", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "identity", "maxLength": 1024, "minLength": 1, "pattern": "^[a-zA-Z0-9_.-]+$", "characterSet": { "allowed": "[a-zA-Z0-9_.-]", "description": "Alphanumeric with underscores, dots, hyphens" }, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "user_agent": { "type": "string", "description": "HTTP User Agent.", "title": "HTTP User Agent", "x-displayname": "HTTP User Agent.", "x-ves-example": "Mozilla/5.0.", "x-f5xc-example": "Mozilla/5.0", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cdn_loadbalancerLilacCDNAccessLogsResponseData", "required_fields": [ "timestamp" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cdn_loadbalancerLilacCDNAccessLogsResponseData\nmetadata:\n name: example\n namespace: default\nspec:\n timestamp: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"timestamp\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "cdn", "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" } } }, "cdn_loadbalancerLilacCDNMetricUnit": { "type": "string", "description": "Metric Unit.", "title": "Metric Unit", "enum": [ "COUNT", "BYTES", "MILLISECONDS" ], "default": "COUNT", "x-displayname": "Metric Unit.", "x-ves-proto-enum": "ves.io.schema.views.cdn_loadbalancer.LilacCDNMetricUnit", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cdn_loadbalancerLilacCDNMetricUnit", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cdn_loadbalancerLilacCDNMetricUnit\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cdn", "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" } } }, "cdn_loadbalancerLilacCDNMetricsFieldSelector": { "type": "string", "description": "CDN Metric fields. Naming convention is _\n\nREQUEST_SUCCESS computed from REQUEST_TOTAL - REQUEST_FAILED\nBandwidth computed from DATA_OUT\nBandwidth computed from DATA_IN.", "title": "Metrics Field Selector options", "enum": [ "REQUEST_TOTAL_SUM", "REQUEST_FAILED_SUM", "REQUEST_1XX_SUM", "REQUEST_2XX_SUM", "REQUEST_3XX_SUM", "REQUEST_4XX_SUM", "REQUEST_5XX_SUM", "DATA_OUT_SUM", "LATENCY_MEAN", "DATA_IN_SUM" ], "default": "REQUEST_TOTAL_SUM", "x-displayname": "Metrics Field Selector.", "x-ves-proto-enum": "ves.io.schema.views.cdn_loadbalancer.LilacCDNMetricsFieldSelector", "x-f5xc-description-medium": "CDN Metric fields. Naming convention is _ REQUEST_SUCCESS computed from REQUEST_TOTAL - REQUEST_FAILED Bandwidth computed from DATA_OUT Bandwidth computed from DATA_IN.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cdn_loadbalancerLilacCDNMetricsFieldSelector", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cdn_loadbalancerLilacCDNMetricsFieldSelector\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cdn", "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" } } }, "cdn_loadbalancerLilacCDNMetricsFilter": { "type": "object", "description": "CDN Metrics filter OPTIONS.", "title": "Metrics Filter options", "x-displayname": "Metrics Filter.", "x-ves-proto-message": "ves.io.schema.views.cdn_loadbalancer.LilacCDNMetricsFilter", "properties": { "operator": { "allOf": [ { "$ref": "#/components/schemas/cdn_loadbalancerLilacCDNMetricsOperatorType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "tag": { "allOf": [ { "$ref": "#/components/schemas/cdn_loadbalancerLilacCDNMetricsTag" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "values": { "type": "array", "description": "Filter values.", "title": "Filter values", "items": { "type": "string" }, "x-displayname": "Filter values.", "x-ves-example": "[IN, US]", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true" }, "x-f5xc-example": "[IN, US]", "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 cdn_loadbalancerLilacCDNMetricsFilter", "required_fields": [ "values" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cdn_loadbalancerLilacCDNMetricsFilter\nmetadata:\n name: example\n namespace: default\nspec:\n values: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"values\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "cdn", "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" } } }, "cdn_loadbalancerLilacCDNMetricsOperatorType": { "type": "string", "description": "Operators possible in filtering.", "title": "Metrics Operator Types", "enum": [ "OPERATOR_TYPE_IN", "OPERATOR_TYPE_NOT_IN" ], "default": "OPERATOR_TYPE_IN", "x-displayname": "Metrics Operator Types.", "x-ves-proto-enum": "ves.io.schema.views.cdn_loadbalancer.LilacCDNMetricsOperatorType", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cdn_loadbalancerLilacCDNMetricsOperatorType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cdn_loadbalancerLilacCDNMetricsOperatorType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cdn", "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" } } }, "cdn_loadbalancerLilacCDNMetricsRequest": { "type": "object", "description": "CDN Metrics request parameters.", "title": "Metrics Request parameters", "x-displayname": "Metrics Request.", "x-ves-proto-message": "ves.io.schema.views.cdn_loadbalancer.LilacCDNMetricsRequest", "properties": { "end_time": { "type": "string", "description": "Format: unix_timestamp|RFC 3339.", "title": "End Time", "x-displayname": "End Time", "x-ves-example": "1659758607.", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true" }, "x-f5xc-example": "1659758607", "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "field_selector": { "type": "array", "description": "Fields (Metrics) selected to be queried.", "title": "Field Selector", "maxItems": 10, "items": { "$ref": "#/components/schemas/cdn_loadbalancerLilacCDNMetricsFieldSelector" }, "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": "10" }, "x-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.repeated.max_items": "10" }, "x-f5xc-description-short": "Fields (Metrics) selected to be queried.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 10, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "filter": { "type": "array", "description": "CDN Metrics filter OPTIONS.", "title": "Metrics Filter options", "items": { "$ref": "#/components/schemas/cdn_loadbalancerLilacCDNMetricsFilter" }, "x-displayname": "Metrics Filter.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "group_by": { "type": "array", "description": "Aggregate data by zero or more tags.", "title": "Group By", "items": { "$ref": "#/components/schemas/cdn_loadbalancerLilacCDNMetricsTag" }, "x-displayname": "Group By", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "namespace": { "type": "string", "description": "Namespace scope of the metric 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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" }, "start_time": { "type": "string", "description": "Format: unix_timestamp|RFC 3339.", "title": "Start Time", "x-displayname": "Start Time.", "x-ves-example": "1659758607.", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true" }, "x-f5xc-example": "1659758607", "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "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\nthe response. The timestamps in the response will be t1=start_time, t2=t1+step, ... Tn=tn-1+step,\nwhere tn <= end_time. Depending on the time range, the step has a minimum value (due to rollups).\nFor e.g. For ranges in last one hr, step minimum is 5m, for ranges beyond a day, its 1h etc.\nStep value used is the max(, )\nFormat: [0-9][smhd], where s - seconds, m - minutes, h - hours, d - days\n\nOptional: If not specified, then step size is evaluated to ", "title": "Step", "x-displayname": "Step", "x-ves-example": "1m", "x-f5xc-example": "1m", "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cdn_loadbalancerLilacCDNMetricsRequest", "required_fields": [ "end_time", "field_selector", "namespace", "start_time" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cdn_loadbalancerLilacCDNMetricsRequest\nmetadata:\n name: example\n namespace: default\nspec:\n end_time: value\n field_selector: value\n namespace: value\n start_time: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"end_time\": \"value\",\n \"field_selector\": \"value\",\n \"namespace\": \"value\",\n \"start_time\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "cdn", "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" } } }, "cdn_loadbalancerLilacCDNMetricsResponse": { "type": "object", "description": "CDN Metrics response message.", "title": "Metrics Response", "x-displayname": "Metrics Response.", "x-ves-proto-message": "ves.io.schema.views.cdn_loadbalancer.LilacCDNMetricsResponse", "properties": { "items": { "type": "array", "description": "CDN Metrics response data items. Each instance has response for a field queried.", "title": "Metrics Response Data", "items": { "$ref": "#/components/schemas/cdn_loadbalancerLilacCDNMetricsResponseData" }, "x-displayname": "Metrics Response data items.", "x-f5xc-example": "[\"item1\", \"item2\", \"item3\"]", "x-f5xc-description-short": "CDN Metrics response data items. Each instance has response for a field queried.", "x-f5xc-constraints": { "constraintType": "array", "category": "general", "minItems": 0, "maxItems": 256, "uniqueItems": false, "metadata": { "source": "inferred", "confidence": 0.7, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "step": { "type": "string", "description": "The effective step used in the response. It could be higher than the requested step due to rollups.\nFormat: [0-9][smhd], where s - seconds, m - minutes, h - hours, d - days.", "title": "Step", "x-displayname": "Step", "x-ves-example": "5m", "x-f5xc-example": "5m", "x-f5xc-description-short": "The effective step used in the response. It could be higher than the requested step due to rollups.", "x-f5xc-description-medium": "The effective step used in the response. It could be higher than the requested step due to rollups. 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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cdn_loadbalancerLilacCDNMetricsResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cdn_loadbalancerLilacCDNMetricsResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cdn", "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" } } }, "cdn_loadbalancerLilacCDNMetricsResponseData": { "type": "object", "description": "CDN Metrics response data. This is specific to a metric field.", "title": "Metrics Response Data", "x-displayname": "Metrics Response Data.", "x-ves-proto-message": "ves.io.schema.views.cdn_loadbalancer.LilacCDNMetricsResponseData", "properties": { "series": { "type": "array", "description": "CDN Metrics response series for the field in this message.", "title": "Metrics Series", "items": { "$ref": "#/components/schemas/cdn_loadbalancerLilacCDNMetricsResponseSeries" }, "x-displayname": "Metrics Response Series.", "x-f5xc-description-short": "CDN Metrics response series for the field in this message.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "type": { "allOf": [ { "$ref": "#/components/schemas/cdn_loadbalancerLilacCDNMetricsFieldSelector" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "unit": { "allOf": [ { "$ref": "#/components/schemas/cdn_loadbalancerLilacCDNMetricUnit" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "CDN Metrics response data. This is specific to a metric field.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cdn_loadbalancerLilacCDNMetricsResponseData", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cdn_loadbalancerLilacCDNMetricsResponseData\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cdn", "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" } } }, "cdn_loadbalancerLilacCDNMetricsResponseGroupBy": { "type": "object", "description": "CDN Metrics group by OPTIONS.", "title": "Metrics group by options", "x-displayname": "Metrics Group By.", "x-ves-proto-message": "ves.io.schema.views.cdn_loadbalancer.LilacCDNMetricsResponseGroupBy", "properties": { "name": { "allOf": [ { "$ref": "#/components/schemas/cdn_loadbalancerLilacCDNMetricsTag" } ], "x-f5xc-example": "example-resource", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "maxLength": 16, "minLength": 6, "x-reconciled-from-discovery": true, "x-reconciled-at": "2026-08-20T09:12:47+00:00" }, "value": { "type": "string", "description": "Group-By tag Value.", "title": "Group-By tag Value", "x-displayname": "Group By Tag Value.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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-08-20T09:12:47+00:00" } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cdn_loadbalancerLilacCDNMetricsResponseGroupBy", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cdn_loadbalancerLilacCDNMetricsResponseGroupBy\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cdn", "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" } } }, "cdn_loadbalancerLilacCDNMetricsResponseSeries": { "type": "object", "description": "CDN Metrics response series.\nEach series instance has data for a combination of group-by tag values.", "title": "Metrics Series", "x-displayname": "Metrics Response Series.", "x-ves-proto-message": "ves.io.schema.views.cdn_loadbalancer.LilacCDNMetricsResponseSeries", "properties": { "group_by": { "type": "array", "description": "CDN Metrics group-by tag combination.", "title": "Metrics group by options", "items": { "$ref": "#/components/schemas/cdn_loadbalancerLilacCDNMetricsResponseGroupBy" }, "x-displayname": "Metrics Group By.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "value": { "type": "array", "description": "CDN Metrics data for the series.", "title": "Metrics Response Value", "items": { "$ref": "#/components/schemas/cdn_loadbalancerLilacCDNMetricsResponseValue" }, "x-displayname": "Metrics Response 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-08-20T09:12:47+00:00" } }, "x-f5xc-description-short": "CDN Metrics response series. Each series instance has data for a combination of group-by tag values.", "x-f5xc-description-medium": "CDN Metrics response series. Each series instance has data for a combination of group-by tag values.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cdn_loadbalancerLilacCDNMetricsResponseSeries", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cdn_loadbalancerLilacCDNMetricsResponseSeries\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cdn", "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" } } }, "cdn_loadbalancerLilacCDNMetricsResponseValue": { "type": "object", "description": "CDN Metrics response value.", "title": "Metrics Response Value", "x-displayname": "Metrics Response Value.", "x-ves-proto-message": "ves.io.schema.views.cdn_loadbalancer.LilacCDNMetricsResponseValue", "properties": { "timestamp": { "type": "string", "description": "Metric Timestamp in unix_timestamp.", "title": "Metric Timestamp", "x-displayname": "Metric Timestamp.", "x-f5xc-example": "2025-01-15T10:30:00Z", "format": "date-time", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "temporal", "maxLength": 1024, "format": "date-time", "minLength": 20, "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d{3})?Z?$", "formatDescription": "ISO 8601 date-time (e.g., 2026-01-19T12:00:00Z)", "validation": { "standard": "ISO 8601" }, "metadata": { "source": "inferred", "confidence": 0.95, "validatedAt": "2026-08-20T09:12:47+00:00" }, "deterministic": true }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "value": { "type": "string", "description": "Metric Value.", "title": "Metric Value", "x-displayname": "Metric Value.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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-08-20T09:12:47+00:00" } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cdn_loadbalancerLilacCDNMetricsResponseValue", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cdn_loadbalancerLilacCDNMetricsResponseValue\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cdn", "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" } } }, "cdn_loadbalancerLilacCDNMetricsTag": { "type": "string", "description": "Tags on which CDN metrics can be filtered or grouped by\n\nHIT|MISS\nTwo letter country code\nhttp_1_1|http_2_0 etc\ntlsv1_0|tlsv1_1|tlsv1_2 etc.", "title": "Metrics Tag options", "enum": [ "CDN_DISTRIBUTION_NAME", "CACHE_HIT_TYPE", "REQUEST_COUNTRY", "HTTP_VERSION", "TLS_VERSION", "POP_REGION", "POP" ], "default": "CDN_DISTRIBUTION_NAME", "x-displayname": "Tags", "x-ves-proto-enum": "ves.io.schema.views.cdn_loadbalancer.LilacCDNMetricsTag", "x-f5xc-description-short": "Tags on which CDN metrics can be filtered or grouped by HIT|MISS Two letter country code http_1_1|http_2_0 etc tlsv1_0|tlsv1_1|tlsv1_2 etc.", "x-f5xc-description-medium": "Tags on which CDN metrics can be filtered or grouped by HIT|MISS Two letter country code http_1_1|http_2_0 etc tlsv1_0|tlsv1_1|tlsv1_2 etc.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cdn_loadbalancerLilacCDNMetricsTag", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cdn_loadbalancerLilacCDNMetricsTag\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cdn", "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" } } }, "cdn_loadbalancerListResponse": { "type": "object", "description": "This is the output message of 'List' RPC.", "title": "ListResponse is the collection of cdn_loadbalancer", "x-displayname": "List Response.", "x-ves-proto-message": "ves.io.schema.views.cdn_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/cdn_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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cdn_loadbalancerListResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cdn_loadbalancerListResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cdn", "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" } } }, "cdn_loadbalancerListResponseItem": { "type": "object", "description": "By default a summary of cdn_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 cdn_loadbalancer", "x-displayname": "List Item", "x-ves-proto-message": "ves.io.schema.views.cdn_loadbalancer.ListResponseItem", "properties": { "annotations": { "type": "object", "description": "The set of annotations present on this cdn_loadbalancer.", "title": "annotations", "x-displayname": "Annotations.", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "The set of annotations present on this cdn_loadbalancer.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "description": { "type": "string", "description": "The description set for this cdn_loadbalancer.", "title": "description", "x-displayname": "Description.", "x-f5xc-description-short": "The description set for this cdn_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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "disabled": { "type": "boolean", "description": "A value of true indicates cdn_loadbalancer is administratively disabled.", "title": "disabled", "format": "boolean", "x-displayname": "Disabled", "x-f5xc-example": "True", "x-f5xc-description-short": "Value of true indicates cdn_loadbalancer is administratively disabled.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "get_spec": { "allOf": [ { "$ref": "#/components/schemas/viewscdn_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 cdn_loadbalancer.", "title": "labels", "x-displayname": "Labels", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "The set of labels present on this cdn_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 cdn_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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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/cdn_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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "uid": { "type": "string", "description": "The unique uid of this cdn_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 cdn_loadbalancer.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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-08-20T09:12:47+00:00" } }, "x-f5xc-description-short": "By default a summary of cdn_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 cdn_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 cdn_loadbalancerListResponseItem", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cdn_loadbalancerListResponseItem\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cdn", "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" } } }, "cdn_loadbalancerReplaceRequest": { "type": "object", "description": "This is the input message of the 'Replace' RPC.", "title": "ReplaceRequest is used to replace contents of a cdn_loadbalancer", "x-displayname": "Replace Request.", "x-ves-proto-message": "ves.io.schema.views.cdn_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/viewscdn_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 cdn_loadbalancerReplaceRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cdn_loadbalancerReplaceRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cdn", "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" } } }, "cdn_loadbalancerReplaceResponse": { "type": "object", "x-ves-proto-message": "ves.io.schema.views.cdn_loadbalancer.ReplaceResponse", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cdn_loadbalancerReplaceResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cdn_loadbalancerReplaceResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cdn", "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" } } }, "cdn_loadbalancerStatusObject": { "type": "object", "description": "Most recently observed status of object.", "title": "StatusObject", "x-displayname": "Status", "x-ves-proto-message": "ves.io.schema.views.cdn_loadbalancer.StatusObject", "properties": { "cdn_site_status": { "allOf": [ { "$ref": "#/components/schemas/common_cdnCDNSiteStatus__ves_io_schema_views_cdn_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_cdn_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": "CDN loadbalancer view object direct reference.", "title": "object_refs", "items": { "$ref": "#/components/schemas/ioschemaObjectRefType" }, "x-displayname": "Config Object.", "x-f5xc-description-short": "CDN 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 cdn_loadbalancerStatusObject", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cdn_loadbalancerStatusObject\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cdn", "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" } } }, "cdn_loadbalancerSubscribeRequest": { "type": "object", "description": "Request to subscribe to CDN Loadbalancer.", "title": "SubscribeRequest", "x-displayname": "Subscribe Request.", "x-ves-proto-message": "ves.io.schema.views.cdn_loadbalancer.SubscribeRequest", "x-f5xc-description-short": "Request to subscribe to CDN Loadbalancer.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cdn_loadbalancerSubscribeRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cdn_loadbalancerSubscribeRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cdn", "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" } } }, "cdn_loadbalancerSubscribeResponse": { "type": "object", "description": "Response of subscribe to CDN Loadbalancer.", "title": "SubscribeResponse", "x-displayname": "Subscribe Response.", "x-ves-proto-message": "ves.io.schema.views.cdn_loadbalancer.SubscribeResponse", "x-f5xc-description-short": "Response of subscribe to CDN Loadbalancer.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cdn_loadbalancerSubscribeResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cdn_loadbalancerSubscribeResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cdn", "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" } } }, "cdn_loadbalancerTlsCertOptions": { "type": "object", "description": "TLS Certificate OPTIONS.", "title": "TLS Configuration Options", "x-displayname": "TLS OPTIONS.", "x-ves-oneof-field-tls_certificates_choice": "[\"tls_cert_params\",\"tls_inline_params\"]", "x-ves-proto-message": "ves.io.schema.views.cdn_loadbalancer.TlsCertOptions", "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_inline_params" ] }, "tls_inline_params": { "allOf": [ { "$ref": "#/components/schemas/schemaviewsDownstreamTlsParamsType" } ], "x-f5xc-description-short": "Configuration parameter for tls inline params.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "tls_cert_params" ] } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cdn_loadbalancerTlsCertOptions", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cdn_loadbalancerTlsCertOptions\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cdn", "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" } } }, "cdn_loadbalancerUnsubscribeRequest": { "type": "object", "description": "Request to unsubscribe to CDN Loadbalancer.", "title": "UnsubscribeRequest", "x-displayname": "Unsubscribe Request.", "x-ves-proto-message": "ves.io.schema.views.cdn_loadbalancer.UnsubscribeRequest", "x-f5xc-description-short": "Request to unsubscribe to CDN Loadbalancer.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cdn_loadbalancerUnsubscribeRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cdn_loadbalancerUnsubscribeRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cdn", "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" } } }, "cdn_loadbalancerUnsubscribeResponse": { "type": "object", "description": "Response of unsubscribe to CDN Loadbalancer.", "title": "UnsubscribeResponse", "x-displayname": "Unsubscribe Response.", "x-ves-proto-message": "ves.io.schema.views.cdn_loadbalancer.UnsubscribeResponse", "x-f5xc-description-short": "Response of unsubscribe to CDN Loadbalancer.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cdn_loadbalancerUnsubscribeResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cdn_loadbalancerUnsubscribeResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cdn", "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" } } }, "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_yaml": "# Minimal example for common_cache_ruleCustomCacheRule\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "common_cdnCDNControllerStatus__ves_io_schema_views_cdn_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/viewscommon_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-08-20T09:12:47+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_yaml": "# Minimal example for common_cdnCDNControllerStatus\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "common_cdnCDNSiteStatus__ves_io_schema_views_cdn_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-08-20T09:12:47+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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "status": { "allOf": [ { "$ref": "#/components/schemas/viewscommon_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-08-20T09:12:47+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_yaml": "# Minimal example for common_cdnCDNSiteStatus\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for common_cdnGetServiceOperationReq\nmetadata:\n name: example\n namespace: default\nspec:\n name: value\n namespace: value\n service_op_id: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"name\": \"value\",\n \"namespace\": \"value\",\n \"service_op_id\": \"value\"\n }\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" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for common_cdnGetServiceOperationRsp\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for common_cdnLilacCDNCachePurgeRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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_yaml": "# Minimal example for common_cdnLilacCDNCachePurgeResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for common_cdnListServiceOperationsReq\nmetadata:\n name: example\n namespace: default\nspec:\n namespace: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"namespace\": \"value\"\n }\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" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for common_cdnListServiceOperationsRsp\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for common_cdnPurgeOperationItem\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+00:00" } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for common_cdnServiceOperationItem", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for common_cdnServiceOperationItem\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for common_cdnServiceOperationsItem\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for common_cdnServiceOperationsTimeRange\nmetadata:\n name: example\n namespace: default\nspec:\n finish_time: value\n start_time: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"finish_time\": \"value\",\n \"start_time\": \"value\"\n }\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" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for common_securityAppEndpointType\nmetadata:\n name: example\n namespace: default\nspec:\n http_methods: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"http_methods\": \"value\"\n }\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" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for common_securityCSDJavaScriptInsertAllWithExceptionsType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for common_securityCSDJavaScriptInsertType\nmetadata:\n name: example\n namespace: default\nspec:\n rules: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"rules\": \"value\"\n }\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" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for common_securityCSDJavaScriptInsertionRule\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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_yaml": "# Minimal example for common_securityClientSideDefensePolicyType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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_yaml": "# Minimal example for common_securityClientSideDefenseType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for common_securityDDoSMitigationRule\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for common_securityDeleteDoSAutoMitigationRuleRsp\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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_yaml": "# Minimal example for common_securityGetDoSAutoMitigationRulesRsp\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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_yaml": "# Minimal example for common_securityGetSecurityConfigRsp\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "certificates", "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" } } }, "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_yaml": "# Minimal example for common_securityMobileIdentifier\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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_yaml": "# Minimal example for common_securityMobileSDKConfigType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "certificates", "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" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for common_securityMobileTrafficIdentifierType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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_yaml": "# Minimal example for common_securitySensitiveDataPolicySettings\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for common_securityShapeBotDefensePolicyType\nmetadata:\n name: example\n namespace: default\nspec:\n protected_app_endpoints: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"protected_app_endpoints\": \"value\"\n }\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" } } }, "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_yaml": "# Minimal example for common_securityShapeBotDefenseRegion\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for common_securityShapeBotDefenseType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for common_securityShapeJavaScriptExclusionRule\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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_yaml": "# Minimal example for common_securityShapeJavaScriptInsertAllType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for common_securityShapeJavaScriptInsertAllWithExceptionsType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for common_securityShapeJavaScriptInsertType\nmetadata:\n name: example\n namespace: default\nspec:\n rules: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"rules\": \"value\"\n }\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" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for common_securityShapeJavaScriptInsertionRule\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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_yaml": "# Minimal example for common_securityURLScheme\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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_yaml": "# Minimal example for common_securityWebMobileTrafficType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for common_wafAPIGroups\nmetadata:\n name: example\n namespace: default\nspec:\n api_groups: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"api_groups\": \"value\"\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for common_wafAPIRateLimit\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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_yaml": "# Minimal example for common_wafAPISpecificationSettings\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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_yaml": "# Minimal example for common_wafApiCodeRepos\nmetadata:\n name: example\n namespace: default\nspec:\n api_code_repo: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"api_code_repo\": \"value\"\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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_yaml": "# Minimal example for common_wafApiCrawler\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for common_wafApiCrawlerConfiguration\nmetadata:\n name: example\n namespace: default\nspec:\n domains: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"domains\": \"value\"\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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_yaml": "# Minimal example for common_wafApiDiscoveryAdvancedSettings\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for common_wafApiDiscoveryFromCodeScan\nmetadata:\n name: example\n namespace: default\nspec:\n code_base_integrations: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"code_base_integrations\": \"value\"\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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_yaml": "# Minimal example for common_wafApiDiscoverySetting\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for common_wafApiEndpointRule\nmetadata:\n name: example\n namespace: default\nspec:\n api_endpoint_path: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"api_endpoint_path\": \"value\"\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for common_wafAudiences\nmetadata:\n name: example\n namespace: default\nspec:\n audiences: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"audiences\": \"value\"\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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_yaml": "# Minimal example for common_wafAuthorizationServer\nmetadata:\n name: example\n namespace: default\nspec:\n authorization_servers: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"authorization_servers\": \"value\"\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for common_wafBasePathsType\nmetadata:\n name: example\n namespace: default\nspec:\n base_paths: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"base_paths\": \"value\"\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for common_wafBypassRateLimitingRule\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for common_wafBypassRateLimitingRules\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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_yaml": "# Minimal example for common_wafChallengeRule\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for common_wafChallengeRuleList\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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_yaml": "# Minimal example for common_wafCodeBaseIntegrationSelection\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for common_wafCustomFallThroughMode\nmetadata:\n name: example\n namespace: default\nspec:\n open_api_validation_rules: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"open_api_validation_rules\": \"value\"\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for common_wafCustomIpAllowedList\nmetadata:\n name: example\n namespace: default\nspec:\n rate_limiter_allowed_prefixes: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"rate_limiter_allowed_prefixes\": \"value\"\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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_yaml": "# Minimal example for common_wafEnableChallenge\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for common_wafFallThroughRule\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for common_wafInlineRateLimiter\nmetadata:\n name: example\n namespace: default\nspec:\n threshold: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"threshold\": \"value\"\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for common_wafJWKS\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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_yaml": "# Minimal example for common_wafJWTValidation\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for common_wafMandatoryClaims\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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_yaml": "# Minimal example for common_wafOpenApiFallThroughMode\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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_yaml": "# Minimal example for common_wafOpenApiValidationAllSpecEndpointsSettings\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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_yaml": "# Minimal example for common_wafOpenApiValidationCommonSettings\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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_yaml": "# Minimal example for common_wafOpenApiValidationMode\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for common_wafOpenApiValidationModeActive\nmetadata:\n name: example\n namespace: default\nspec:\n request_validation_properties: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"request_validation_properties\": \"value\"\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for common_wafOpenApiValidationModeActiveResponse\nmetadata:\n name: example\n namespace: default\nspec:\n response_validation_properties: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"response_validation_properties\": \"value\"\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for common_wafOpenApiValidationRule\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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_yaml": "# Minimal example for common_wafRateLimitConfigType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for common_wafReservedClaims\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for common_wafServerUrlRule\nmetadata:\n name: example\n namespace: default\nspec:\n base_path: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"base_path\": \"value\"\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for common_wafServicePolicyList\nmetadata:\n name: example\n namespace: default\nspec:\n policies: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"policies\": \"value\"\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for common_wafSimpleClientSrcRule\nmetadata:\n name: example\n namespace: default\nspec:\n actions: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"actions\": \"value\"\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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": "MySecureP@ssw0rd123!", "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-08-20T09:12:47+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_yaml": "# Minimal example for common_wafSimpleLogin\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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_yaml": "# Minimal example for common_wafTarget\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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_yaml": "# Minimal example for common_wafTokenLocation\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for common_wafValidateApiBySpecRule\nmetadata:\n name: example\n namespace: default\nspec:\n open_api_validation_rules: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"open_api_validation_rules\": \"value\"\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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_yaml": "# Minimal example for common_wafValidationPropertySetting\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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_yaml": "# Minimal example for common_wafValidationSettingForQueryParameters\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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_yaml": "# Minimal example for common_wafWafExclusion\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for common_wafWafExclusionInlineRules\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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_yaml": "# Minimal example for dos_mitigationDestination\nmetadata:\n name: example\n namespace: default\nspec:\n virtual_host: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"virtual_host\": \"value\"\n }\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" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for dos_mitigationDoSMitigationRuleInfo\nmetadata:\n name: example\n namespace: default\nspec:\n name: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"name\": \"value\"\n }\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" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for http_loadbalancerProxyTypeHttp\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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_yaml": "# Minimal example for ioschemaEmpty\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for ioschemaPathMatcherType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for origin_poolOriginServerPublicIP\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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_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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for origin_poolOriginServerPublicName\nmetadata:\n name: example\n namespace: default\nspec:\n dns_name: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"dns_name\": \"value\"\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_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-08-20T09:12:47+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_yaml": "# Minimal example for origin_poolTlsCertificatesType\nmetadata:\n name: example\n namespace: default\nspec:\n tls_certificates: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"tls_certificates\": \"value\"\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_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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for origin_poolUpstreamTlsParameters\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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_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-08-20T09:12:47+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_yaml": "# Minimal example for origin_poolUpstreamTlsValidationContext\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for policyArgMatcherType\nmetadata:\n name: example\n namespace: default\nspec:\n name: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"name\": \"value\"\n }\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" } } }, "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_yaml": "# Minimal example for policyClientMatcher\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for policyCookieMatcherType\nmetadata:\n name: example\n namespace: default\nspec:\n name: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"name\": \"value\"\n }\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" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for policyGraphQLRule\nmetadata:\n name: example\n namespace: default\nspec:\n exact_path: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"exact_path\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "statistics", "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" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for policyGraphQLSettingsType\nmetadata:\n name: example\n namespace: default\nspec:\n max_batched_queries: value\n max_depth: value\n max_total_length: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"max_batched_queries\": \"value\",\n \"max_depth\": \"value\",\n \"max_total_length\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "statistics", "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" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for policyHeaderMatcherTypeBasic\nmetadata:\n name: example\n namespace: default\nspec:\n name: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"name\": \"value\"\n }\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" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for policyJWTClaimMatcherType\nmetadata:\n name: example\n namespace: default\nspec:\n name: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"name\": \"value\"\n }\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" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for policyMatcherTypeBasic\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for policyRequestMatcher\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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. \"

Your request was blocked

\". 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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for policyShapeBotBlockMitigationActionType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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_yaml": "# Minimal example for policyShapeBotFlagMitigationActionChoiceType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for policyShapeBotFlagMitigationActionType\nmetadata:\n name: example\n namespace: default\nspec:\n auto_type_header_name: value\n inference_header_name: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"auto_type_header_name\": \"value\",\n \"inference_header_name\": \"value\"\n }\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" } } }, "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_yaml": "# Minimal example for policyShapeBotMitigationAction\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for policyShapeBotRedirectMitigationActionType\nmetadata:\n name: example\n namespace: default\nspec:\n uri: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"uri\": \"value\"\n }\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" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for policySimpleDataGuardRule\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for policySimpleWafExclusionRule\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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\": ,\n\"lastName\": \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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for protobufAny\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for rate_limiterInputHours\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for rate_limiterInputMinutes\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for rate_limiterInputSeconds\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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_yaml": "# Minimal example for rate_limiterLeakyBucketRateLimiter\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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_yaml": "# Minimal example for rate_limiterRateLimitBlockAction\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for rate_limiterRateLimitValue\nmetadata:\n name: example\n namespace: default\nspec:\n total_number: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"total_number\": \"value\"\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 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_yaml": "# Minimal example for rate_limiterTokenBucketRateLimiter\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "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-08-20T09:12:47+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_yaml": "# Minimal example for rate_limiter_policyPolicyList\nmetadata:\n name: example\n namespace: default\nspec:\n policies: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"policies\": \"value\"\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" } } }, "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_yaml": "# Minimal example for schemaAction\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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-08-20T09:12:47+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, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaBlindfoldSecretInfoType\nmetadata:\n name: example\n namespace: default\nspec:\n location: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"location\": \"value\"\n }\n}" }, "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" } } }, "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_yaml": "# Minimal example for schemaBotDefenseFlowLabelAccountManagementChoiceType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "statistics", "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" } } }, "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_yaml": "# Minimal example for schemaBotDefenseFlowLabelAuthenticationChoiceType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "statistics", "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" } } }, "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_yaml": "# Minimal example for schemaBotDefenseFlowLabelCategoriesChoiceType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "statistics", "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" } } }, "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_yaml": "# Minimal example for schemaBotDefenseFlowLabelFinancialServicesChoiceType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "statistics", "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" } } }, "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_yaml": "# Minimal example for schemaBotDefenseFlowLabelFlightChoiceType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "statistics", "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" } } }, "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_yaml": "# Minimal example for schemaBotDefenseFlowLabelProfileManagementChoiceType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "statistics", "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" } } }, "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_yaml": "# Minimal example for schemaBotDefenseFlowLabelSearchChoiceType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "statistics", "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" } } }, "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_yaml": "# Minimal example for schemaBotDefenseFlowLabelShoppingGiftCardsChoiceType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "statistics", "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" } } }, "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_yaml": "# Minimal example for schemaBotDefenseTransactionResult\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaBotDefenseTransactionResultCondition\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaBotDefenseTransactionResultType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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_yaml": "# Minimal example for schemaBotHttpMethod\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaClearSecretInfoType\nmetadata:\n name: example\n namespace: default\nspec:\n url: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"url\": \"value\"\n }\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" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaConditionType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaCookieManipulationOptionType\nmetadata:\n name: example\n namespace: default\nspec:\n name: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"name\": \"value\"\n }\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" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaCorsPolicy\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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_yaml": "# Minimal example for schemaCsrfPolicy\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for schemaDomainNameList\nmetadata:\n name: example\n namespace: default\nspec:\n domains: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"domains\": \"value\"\n }\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" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaDomainType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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_yaml": "# Minimal example for schemaErrorCode\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for schemaErrorType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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_yaml": "# Minimal example for schemaHashAlgorithm\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for schemaHashAlgorithms\nmetadata:\n name: example\n namespace: default\nspec:\n hash_algorithms: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"hash_algorithms\": \"value\"\n }\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" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaHeaderManipulationOptionType\nmetadata:\n name: example\n namespace: default\nspec:\n name: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"name\": \"value\"\n }\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" } } }, "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_yaml": "# Minimal example for schemaHttpStatusCode\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaInitializerType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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_yaml": "# Minimal example for schemaInitializersType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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_yaml": "# Minimal example for schemaJavaScriptMode\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaObjectCreateMetaType\nmetadata:\n name: example\n namespace: default\nspec:\n name: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"name\": \"value\"\n }\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" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaObjectGetMetaType\nmetadata:\n name: example\n namespace: default\nspec:\n name: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"name\": \"value\"\n }\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" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemaObjectReplaceMetaType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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_yaml": "# Minimal example for schemaSecretType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "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" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaStatusMetaType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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_yaml": "# Minimal example for schemaStatusPublishType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaStatusType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaSystemObjectGetMetaType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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": "[REDACTED_PRIVATE_KEY]", "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_yaml": "# Minimal example for schemaTlsCertificateType\nmetadata:\n name: example\n namespace: default\nspec:\n certificate_url: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"certificate_url\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "certificates", "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" } } }, "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_yaml": "# Minimal example for schemaTlsProtocol\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaViewRefType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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_yaml": "# Minimal example for schemaXfccElement\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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/configconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfignamespaces/accounting/bgps', '/API/data/datadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatanamespaces/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/configconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfignamespaces/accounting/bgps', '/api/data/datadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatanamespaces/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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemados_mitigationGetSpecType\nmetadata:\n name: example\n namespace: default\nspec:\n as_numbers: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"as_numbers\": \"value\"\n }\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" } } }, "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_yaml": "# Minimal example for schemados_mitigationType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemapolicyHeaderMatcherType\nmetadata:\n name: example\n namespace: default\nspec:\n name: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"name\": \"value\"\n }\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" } } }, "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/configconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfignamespaces/accounting/bgps', '/API/data/datadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatanamespaces/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/configconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfignamespaces/accounting/bgps', '/api/data/datadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatanamespaces/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-08-20T09:12:47+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/configconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfignamespaces/', '/API/data/datadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatanamespaces/']", "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/configconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfignamespaces/', '/api/data/datadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatanamespaces/']", "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-08-20T09:12:47+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/datadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatanamespaces/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/datadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatanamespaces/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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemapolicyPathMatcherType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemapolicyQueryParameterMatcherType\nmetadata:\n name: example\n namespace: default\nspec:\n key: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"key\": \"value\"\n }\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" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for schemaviewsDownstreamTlsParamsType\nmetadata:\n name: example\n namespace: default\nspec:\n tls_certificates: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"tls_certificates\": \"value\"\n }\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" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for service_policy_ruleChallengeRuleSpec\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for viewsCustomCiphers\nmetadata:\n name: example\n namespace: default\nspec:\n cipher_suites: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"cipher_suites\": \"value\"\n }\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" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for viewsDownstreamTLSCertsParams\nmetadata:\n name: example\n namespace: default\nspec:\n certificates: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"certificates\": \"value\"\n }\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" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for viewsDownstreamTlsValidationContext\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for viewsPrefixStringListType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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_yaml": "# Minimal example for viewsTlsConfig\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "certificates", "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" } } }, "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_yaml": "# Minimal example for viewsXfccHeaderKeys\nmetadata:\n name: example\n namespace: default\nspec:\n xfcc_header_elements: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"xfcc_header_elements\": \"value\"\n }\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" } } }, "viewscdn_loadbalancerCDNOriginServerType": { "type": "object", "description": "Various OPTIONS to specify origin server.", "title": "CDNOriginServerType", "x-displayname": "Origin Server.", "x-ves-oneof-field-choice": "[\"public_ip\",\"public_name\"]", "x-ves-proto-message": "ves.io.schema.views.cdn_loadbalancer.CDNOriginServerType", "properties": { "port": { "type": "integer", "description": "Port the workload can be reached on.", "title": "Port", "format": "int64", "x-displayname": "Origin Server Port.", "x-ves-example": "80", "x-ves-validation-rules": { "ves.io.schema.rules.uint32.gte": "0", "ves.io.schema.rules.uint32.lte": "65535" }, "x-f5xc-example": "80", "x-validation-rules": { "ves.io.schema.rules.uint32.gte": "0", "ves.io.schema.rules.uint32.lte": "65535" }, "minimum": 1, "maximum": 65535, "x-f5xc-constraints": { "constraintType": "number", "category": "discovery", "minimum": 0, "maximum": 65535, "multipleOf": 1, "metadata": { "source": "api-probed", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" }, "deterministic": true }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "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": [ "public_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": [ "public_ip" ] } }, "x-f5xc-description-short": "Various OPTIONS to specify origin server.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for viewscdn_loadbalancerCDNOriginServerType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for viewscdn_loadbalancerCDNOriginServerType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cdn", "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" } } }, "viewscdn_loadbalancerCdnOriginPoolType": { "type": "object", "description": "Origin Pool for the CDN distribution.", "title": "CdnOriginPoolType", "x-displayname": "CDN Origin Pool.", "x-ves-oneof-field-tls_choice": "[\"no_tls\",\"use_tls\"]", "x-ves-proto-message": "ves.io.schema.views.cdn_loadbalancer.CdnOriginPoolType", "properties": { "more_origin_options": { "allOf": [ { "$ref": "#/components/schemas/viewscdn_loadbalancerOriginAdvancedConfiguration" } ], "x-f5xc-description-short": "Configuration parameter for more origin options.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "no_tls": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "use_tls" ] }, "origin_request_timeout": { "type": "string", "description": "Configures the time after which a request to the origin will time out waiting for a response.", "title": "Origin Request Timeout", "x-displayname": "Origin Request Timeout Duration.", "x-ves-example": "100s", "x-ves-validation-rules": { "ves.io.schema.rules.string.max_time_interval": "10m", "ves.io.schema.rules.string.min_time_interval": "10s", "ves.io.schema.rules.string.time_interval": "true" }, "x-f5xc-example": "100s", "x-validation-rules": { "ves.io.schema.rules.string.max_time_interval": "10m", "ves.io.schema.rules.string.min_time_interval": "10s", "ves.io.schema.rules.string.time_interval": "true" }, "x-f5xc-description-short": "Configures the time after which a request to the origin will time out waiting for a response.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "origin_servers": { "type": "array", "description": "List of original servers.", "title": "List of Origin Servers", "minItems": 1, "maxItems": 32, "items": { "$ref": "#/components/schemas/viewscdn_loadbalancerCDNOriginServerType" }, "x-displayname": "List Of 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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "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 } }, "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-minimum-configuration": { "description": "Minimum configuration for viewscdn_loadbalancerCdnOriginPoolType", "required_fields": [ "origin_servers" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for viewscdn_loadbalancerCdnOriginPoolType\nmetadata:\n name: example\n namespace: default\nspec:\n origin_servers: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"origin_servers\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "cdn", "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" } } }, "viewscdn_loadbalancerCreateSpecType": { "type": "object", "description": "Shape of the CDN loadbalancer specification.", "title": "CreateSpecType", "x-displayname": "Create CDN Loadbalancer.", "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-bot_defense_choice": "[\"bot_defense\"]", "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-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-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-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.cdn_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" ] }, "api_rate_limit": { "allOf": [ { "$ref": "#/components/schemas/common_wafAPIRateLimit" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "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" ] }, "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-08-20T09:12:47+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 } }, "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" ] }, "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_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 } }, "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "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-08-20T09:12:47+00:00" } }, "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 } }, "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 }, "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 }, "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 }, "x-f5xc-conflicts-with": [ "enable_api_discovery" ] }, "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 }, "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 }, "x-f5xc-conflicts-with": [ "enable_malicious_user_detection" ] }, "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 }, "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 }, "x-f5xc-conflicts-with": [ "enable_threat_mesh" ] }, "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" ] }, "domains": { "type": "array", "description": "A list of fully qualified domain names.\nThe CDN Distribution will be setup for these FQDN name(s).\n[This can be a domain or a sub-domain]", "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.hostname": "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.pattern": "[\\\\.]+[A-Za-z]+", "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.hostname": "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.pattern": "[\\\\.]+[A-Za-z]+", "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 fully qualified domain names. The CDN Distribution will be setup for these FQDN name(s). [This can be a domain or a sub-domain]", "x-f5xc-description-medium": "List of fully qualified domain names. The CDN Distribution will be setup for these FQDN name(s). [This can be a domain or a sub-domain].", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "minItems": 1, "maxItems": 32, "uniqueItems": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" }, "deterministic": true }, "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" ] }, "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-08-20T09:12:47+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" ] }, "https": { "allOf": [ { "$ref": "#/components/schemas/cdn_loadbalancerCDNHTTPSCustomCertsType" } ], "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/cdn_loadbalancerCDNHTTPSAutoCertsType" } ], "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" ] }, "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", "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_pool": { "allOf": [ { "$ref": "#/components/schemas/viewscdn_loadbalancerCdnOriginPoolType" } ], "x-f5xc-description-short": "Configuration parameter for origin pool.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "other_settings": { "allOf": [ { "$ref": "#/components/schemas/viewscdn_loadbalancerOtherSettings" } ], "x-f5xc-description-short": "Configuration parameter for other settings.", "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "rate_limit": { "allOf": [ { "$ref": "#/components/schemas/common_wafRateLimitConfigType" } ], "x-f5xc-example": "{\"requests_per_second\": 100}", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "api_rate_limit", "disable_rate_limit" ] }, "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 }, "x-f5xc-conflicts-with": [ "active_service_policies", "no_service_policies" ] }, "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" ] }, "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "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", "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 CDN loadbalancer specification.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for viewscdn_loadbalancerCreateSpecType", "required_fields": [ "domains" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for viewscdn_loadbalancerCreateSpecType\nmetadata:\n name: example\n namespace: default\nspec:\n domains: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"domains\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "cdn", "x-f5xc-field-examples": { "spec.domains": "value" }, "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" } } }, "viewscdn_loadbalancerGetSpecType": { "type": "object", "description": "Shape of the CDN loadbalancer specification.", "title": "GetSpecType", "x-displayname": "GET CDN Loadbalancer.", "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-bot_defense_choice": "[\"bot_defense\"]", "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-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-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-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.cdn_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" ] }, "api_rate_limit": { "allOf": [ { "$ref": "#/components/schemas/common_wafAPIRateLimit" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "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" ] }, "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-08-20T09:12:47+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 } }, "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" ] }, "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_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 } }, "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "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-08-20T09:12:47+00:00" } }, "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 } }, "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 }, "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 }, "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 }, "x-f5xc-conflicts-with": [ "enable_api_discovery" ] }, "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 }, "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 }, "x-f5xc-conflicts-with": [ "enable_malicious_user_detection" ] }, "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 }, "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 }, "x-f5xc-conflicts-with": [ "enable_threat_mesh" ] }, "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" ] }, "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 fully qualified domain names.\nThe CDN Distribution will be setup for these FQDN name(s).\n[This can be a domain or a sub-domain]", "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.hostname": "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.pattern": "[\\\\.]+[A-Za-z]+", "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.hostname": "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.pattern": "[\\\\.]+[A-Za-z]+", "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 fully qualified domain names. The CDN Distribution will be setup for these FQDN name(s). [This can be a domain or a sub-domain]", "x-f5xc-description-medium": "List of fully qualified domain names. The CDN Distribution will be setup for these FQDN name(s). [This can be a domain or a sub-domain].", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "minItems": 1, "maxItems": 32, "uniqueItems": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" }, "deterministic": true }, "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" ] }, "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-08-20T09:12:47+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-08-20T09:12:47+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" ] }, "https": { "allOf": [ { "$ref": "#/components/schemas/cdn_loadbalancerCDNHTTPSCustomCertsType" } ], "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/cdn_loadbalancerCDNHTTPSAutoCertsType" } ], "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" ] }, "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", "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_pool": { "allOf": [ { "$ref": "#/components/schemas/viewscdn_loadbalancerCdnOriginPoolType" } ], "x-f5xc-description-short": "Configuration parameter for origin pool.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "other_settings": { "allOf": [ { "$ref": "#/components/schemas/viewscdn_loadbalancerOtherSettings" } ], "x-f5xc-description-short": "Configuration parameter for other settings.", "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "rate_limit": { "allOf": [ { "$ref": "#/components/schemas/common_wafRateLimitConfigType" } ], "x-f5xc-example": "{\"requests_per_second\": 100}", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "api_rate_limit", "disable_rate_limit" ] }, "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_domains": { "type": "array", "description": "CNAME provided from service per domain.", "items": { "$ref": "#/components/schemas/virtual_hostServiceDomain" }, "x-displayname": "Service Domains.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "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" ] }, "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" ] }, "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "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", "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 CDN loadbalancer specification.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for viewscdn_loadbalancerGetSpecType", "required_fields": [ "domains" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for viewscdn_loadbalancerGetSpecType\nmetadata:\n name: example\n namespace: default\nspec:\n domains: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"domains\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "cdn", "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" } } }, "viewscdn_loadbalancerHeaderControlType": { "type": "object", "description": "This defines various OPTIONS related to request/response headers.", "title": "Header Control", "x-displayname": "Header Control.", "x-ves-proto-message": "ves.io.schema.views.cdn_loadbalancer.HeaderControlType", "properties": { "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 Origin 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-08-20T09:12:47+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 Origin 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.items.string.pattern": "^[0-9A-Za-z_\\\\-\\\\.]+$", "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.items.string.pattern": "^[0-9A-Za-z_\\\\-\\\\.]+$", "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-08-20T09:12:47+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-08-20T09:12:47+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" }, "x-displayname": "Remove Response Headers.", "x-ves-example": "Host", "x-ves-validation-rules": { "ves.io.schema.rules.repeated.items.string.pattern": "^[0-9A-Za-z_\\\\-\\\\.]+$", "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.pattern": "^[0-9A-Za-z_\\\\-\\\\.]+$", "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Defines various OPTIONS related to request/response headers.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for viewscdn_loadbalancerHeaderControlType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for viewscdn_loadbalancerHeaderControlType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cdn", "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" } } }, "viewscdn_loadbalancerLogHeaderOptions": { "type": "object", "description": "List of headers to Log.", "title": "LogHeaderOptions", "x-displayname": "Headers to Log.", "x-ves-proto-message": "ves.io.schema.views.cdn_loadbalancer.LogHeaderOptions", "properties": { "header_list": { "type": "array", "description": "List of headers.", "title": "List of Headers", "maxItems": 64, "items": { "type": "string" }, "x-displayname": "Headers", "x-ves-example": "X-custom-length.", "x-ves-validation-rules": { "ves.io.schema.rules.repeated.max_items": "64", "ves.io.schema.rules.repeated.unique": "true" }, "x-f5xc-example": "x-custom-length", "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for viewscdn_loadbalancerLogHeaderOptions", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for viewscdn_loadbalancerLogHeaderOptions\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cdn", "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" } } }, "viewscdn_loadbalancerLoggingOptionsType": { "type": "object", "description": "This defines various OPTIONS related to logging.", "title": "Logging options", "x-displayname": "Logging OPTIONS.", "x-ves-proto-message": "ves.io.schema.views.cdn_loadbalancer.LoggingOptionsType", "properties": { "client_log_options": { "allOf": [ { "$ref": "#/components/schemas/viewscdn_loadbalancerLogHeaderOptions" } ], "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "origin_log_options": { "allOf": [ { "$ref": "#/components/schemas/viewscdn_loadbalancerLogHeaderOptions" } ], "x-f5xc-description-short": "Configuration parameter for origin log options.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Defines various OPTIONS related to logging.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for viewscdn_loadbalancerLoggingOptionsType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for viewscdn_loadbalancerLoggingOptionsType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cdn", "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" } } }, "viewscdn_loadbalancerOriginAdvancedConfiguration": { "type": "object", "title": "Origin Byte Range Request Config", "x-displayname": "Origin Byte Range Request Config.", "x-ves-displayorder": "3,2", "x-ves-proto-message": "ves.io.schema.views.cdn_loadbalancer.OriginAdvancedConfiguration", "properties": { "enable_byte_range_request": { "type": "boolean", "description": "Choice to enable/disable byte range requests towards origin.", "title": "Enable Origin Byte Range Requests", "format": "boolean", "x-displayname": "Enable Origin Byte Range Requests.", "x-ves-example": "True/false.", "x-f5xc-example": "true/false", "x-f5xc-description-short": "Choice to enable/disable byte range requests towards origin.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "websocket_proxy": { "type": "boolean", "description": "Option to enable proxying of websocket connections to the origin server.", "title": "Enable websocket proxy to the origin", "format": "boolean", "x-displayname": "Enable websocket proxy to the origin.", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "Option to enable proxying of websocket connections to the origin server.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for viewscdn_loadbalancerOriginAdvancedConfiguration", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for viewscdn_loadbalancerOriginAdvancedConfiguration\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cdn", "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" } } }, "viewscdn_loadbalancerOtherSettings": { "type": "object", "description": "Other Settings.", "title": "Other Settings", "x-displayname": "Other Settings.", "x-ves-proto-message": "ves.io.schema.views.cdn_loadbalancer.OtherSettings", "properties": { "add_location": { "type": "boolean", "description": "X-example: true\nAppends header x-F5 Distributed Cloud-location = in responses.", "title": "Add Site information", "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 } }, "header_options": { "allOf": [ { "$ref": "#/components/schemas/viewscdn_loadbalancerHeaderControlType" } ], "x-f5xc-description-short": "Configuration parameter for header options.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "logging_options": { "allOf": [ { "$ref": "#/components/schemas/viewscdn_loadbalancerLoggingOptionsType" } ], "x-f5xc-description-short": "Configuration parameter for logging options.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for viewscdn_loadbalancerOtherSettings", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for viewscdn_loadbalancerOtherSettings\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cdn", "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" } } }, "viewscdn_loadbalancerReplaceSpecType": { "type": "object", "description": "Shape of the CDN loadbalancer specification.", "title": "ReplaceSpecType", "x-displayname": "Replace CDN Loadbalancer.", "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-bot_defense_choice": "[\"bot_defense\"]", "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-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-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-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.cdn_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" ] }, "api_rate_limit": { "allOf": [ { "$ref": "#/components/schemas/common_wafAPIRateLimit" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "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" ] }, "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-08-20T09:12:47+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 } }, "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" ] }, "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_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 } }, "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "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-08-20T09:12:47+00:00" } }, "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 } }, "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 }, "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 }, "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 }, "x-f5xc-conflicts-with": [ "enable_api_discovery" ] }, "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 }, "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 }, "x-f5xc-conflicts-with": [ "enable_malicious_user_detection" ] }, "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 }, "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 }, "x-f5xc-conflicts-with": [ "enable_threat_mesh" ] }, "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" ] }, "domains": { "type": "array", "description": "A list of fully qualified domain names.\nThe CDN Distribution will be setup for these FQDN name(s).\n[This can be a domain or a sub-domain]", "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.hostname": "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.pattern": "[\\\\.]+[A-Za-z]+", "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.hostname": "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.pattern": "[\\\\.]+[A-Za-z]+", "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 fully qualified domain names. The CDN Distribution will be setup for these FQDN name(s). [This can be a domain or a sub-domain]", "x-f5xc-description-medium": "List of fully qualified domain names. The CDN Distribution will be setup for these FQDN name(s). [This can be a domain or a sub-domain].", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "minItems": 1, "maxItems": 32, "uniqueItems": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" }, "deterministic": true }, "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" ] }, "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-08-20T09:12:47+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" ] }, "https": { "allOf": [ { "$ref": "#/components/schemas/cdn_loadbalancerCDNHTTPSCustomCertsType" } ], "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/cdn_loadbalancerCDNHTTPSAutoCertsType" } ], "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" ] }, "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", "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_pool": { "allOf": [ { "$ref": "#/components/schemas/viewscdn_loadbalancerCdnOriginPoolType" } ], "x-f5xc-description-short": "Configuration parameter for origin pool.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "other_settings": { "allOf": [ { "$ref": "#/components/schemas/viewscdn_loadbalancerOtherSettings" } ], "x-f5xc-description-short": "Configuration parameter for other settings.", "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "rate_limit": { "allOf": [ { "$ref": "#/components/schemas/common_wafRateLimitConfigType" } ], "x-f5xc-example": "{\"requests_per_second\": 100}", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "api_rate_limit", "disable_rate_limit" ] }, "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 }, "x-f5xc-conflicts-with": [ "active_service_policies", "no_service_policies" ] }, "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" ] }, "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "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", "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 CDN loadbalancer specification.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for viewscdn_loadbalancerReplaceSpecType", "required_fields": [ "domains" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for viewscdn_loadbalancerReplaceSpecType\nmetadata:\n name: example\n namespace: default\nspec:\n domains: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"domains\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "cdn", "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" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for viewscommon_cache_ruleDefaultCacheAction\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "viewscommon_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 viewscommon_cdnCDNLoadbalancerDeploymentStatus", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for viewscommon_cdnCDNLoadbalancerDeploymentStatus\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "viewscommon_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 viewscommon_cdnCDNSiteDeploymentStatus", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for viewscommon_cdnCDNSiteDeploymentStatus\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "viewscommon_securityJavaScriptLocation": { "type": "string", "description": "All inside networks.\n\nInsert JavaScript after tag\nInsert JavaScript after 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 tag Insert JavaScript after tag.", "x-f5xc-description-medium": "All inside networks. Insert JavaScript after tag Insert JavaScript after tag. Insert JavaScript before first tag.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for viewscommon_securityJavaScriptLocation", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for viewscommon_securityJavaScriptLocation\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for viewscommon_wafDomainConfiguration\nmetadata:\n name: example\n namespace: default\nspec:\n domain: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"domain\": \"value\"\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for viewscommon_wafIPThreatCategoryListType\nmetadata:\n name: example\n namespace: default\nspec:\n ip_threat_categories: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"ip_threat_categories\": \"value\"\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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_yaml": "# Minimal example for viewscommon_wafPolicyBasedChallenge\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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": "application", "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for virtual_hostAutoCertInfoType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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_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-08-20T09:12:47+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. \"

Please Wait

\". 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-08-20T09:12:47+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": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for virtual_hostCaptchaChallengeType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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_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_yaml": "# Minimal example for virtual_hostCertificationState\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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_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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+00:00" } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for virtual_hostDNSRecord", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for virtual_hostDNSRecord\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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_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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for virtual_hostDNSVHostStatusType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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_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-08-20T09:12:47+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. \"

Please Wait

\". 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-08-20T09:12:47+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-08-20T09:12:47+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": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for virtual_hostJavascriptChallengeType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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_hostServiceDomain": { "type": "object", "x-ves-proto-message": "ves.io.schema.virtual_host.ServiceDomain", "properties": { "domain": { "type": "string", "description": "Domain Name.", "title": "Domain Name", "x-displayname": "Domain Name.", "x-ves-example": "cdn.example.com.", "x-f5xc-example": "cdn.example.com", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "service_domain": { "type": "string", "description": "Service Domain.", "title": "Service Domain", "x-displayname": "Service Domain.", "x-ves-example": "VES-I/o-cdn-cdn-example-com.demo1.ac.vh.F5 Distributed cloud.us.", "x-f5xc-example": "ves-io-cdn-cdn-example-com.demo1.ac.vh.F5 Distributed cloud.us", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for virtual_hostServiceDomain", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for virtual_hostServiceDomain\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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_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-08-20T09:12:47+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-08-20T09:12:47+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": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for virtual_hostSlowDDoSMitigation\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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_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. \"

Blocked

\". 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. \"

Blocked...", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 65536, "format": "uri", "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+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_yaml": "# Minimal example for virtual_hostTemporaryUserBlockingType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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_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_yaml": "# Minimal example for virtual_hostVirtualHostState\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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-08-20T09:12:47+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_yaml": "# Minimal example for virtual_host_dns_infoDnsInfo\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "cdn_purge_commandCreateRequest": { "type": "object", "description": "This is the input message of the 'Create' RPC.", "title": "CreateRequest is used to create an instance of cdn_purge_command", "x-displayname": "Create Request.", "x-ves-proto-message": "ves.io.schema.cdn_purge_command.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/schemacdn_purge_commandCreateSpecType" } ], "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 cdn_purge_commandCreateRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cdn_purge_commandCreateRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cdn", "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" } } }, "cdn_purge_commandCreateResponse": { "type": "object", "x-ves-proto-message": "ves.io.schema.cdn_purge_command.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/schemacdn_purge_commandGetSpecType" } ], "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 cdn_purge_commandCreateResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cdn_purge_commandCreateResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cdn", "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" } } }, "cdn_purge_commandDeleteRequest": { "type": "object", "description": "This is the input message of the 'DELETE' RPC.", "title": "DeleteRequest is used to delete a cdn_purge_command", "x-displayname": "DELETE Request.", "x-ves-proto-message": "ves.io.schema.cdn_purge_command.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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cdn_purge_commandDeleteRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cdn_purge_commandDeleteRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cdn", "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" } } }, "cdn_purge_commandGetResponse": { "type": "object", "description": "This is the output message of the 'GET' RPC.", "title": "GetResponse is the shape of a read cdn_purge_command", "x-displayname": "GET Response.", "x-ves-proto-message": "ves.io.schema.cdn_purge_command.GetResponse", "properties": { "create_form": { "allOf": [ { "$ref": "#/components/schemas/cdn_purge_commandCreateRequest" } ], "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 } }, "spec": { "allOf": [ { "$ref": "#/components/schemas/schemacdn_purge_commandGetSpecType" } ], "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/cdn_purge_commandStatusObject" }, "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-08-20T09:12:47+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 cdn_purge_commandGetResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cdn_purge_commandGetResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cdn", "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" } } }, "cdn_purge_commandListResponse": { "type": "object", "description": "This is the output message of 'List' RPC.", "title": "ListResponse is the collection of cdn_purge_command", "x-displayname": "List Response.", "x-ves-proto-message": "ves.io.schema.cdn_purge_command.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/cdn_purge_commandListResponseItem" }, "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cdn_purge_commandListResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cdn_purge_commandListResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cdn", "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" } } }, "cdn_purge_commandListResponseItem": { "type": "object", "description": "By default a summary of cdn_purge_command 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 cdn_purge_command", "x-displayname": "List Item", "x-ves-proto-message": "ves.io.schema.cdn_purge_command.ListResponseItem", "properties": { "annotations": { "type": "object", "description": "The set of annotations present on this cdn_purge_command.", "title": "annotations", "x-displayname": "Annotations.", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "The set of annotations present on this cdn_purge_command.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "description": { "type": "string", "description": "The description set for this cdn_purge_command.", "title": "description", "x-displayname": "Description.", "x-f5xc-description-short": "The description set for this cdn_purge_command.", "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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "disabled": { "type": "boolean", "description": "A value of true indicates cdn_purge_command is administratively disabled.", "title": "disabled", "format": "boolean", "x-displayname": "Disabled", "x-f5xc-example": "True", "x-f5xc-description-short": "Value of true indicates cdn_purge_command is administratively disabled.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "get_spec": { "allOf": [ { "$ref": "#/components/schemas/schemacdn_purge_commandGetSpecType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "labels": { "type": "object", "description": "The set of labels present on this cdn_purge_command.", "title": "labels", "x-displayname": "Labels", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "The set of labels present on this cdn_purge_command.", "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 cdn_purge_command.", "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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/cdn_purge_commandStatusObject" }, "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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "uid": { "type": "string", "description": "The unique uid of this cdn_purge_command.", "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 cdn_purge_command.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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-08-20T09:12:47+00:00" } }, "x-f5xc-description-short": "By default a summary of cdn_purge_command 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 cdn_purge_command 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 cdn_purge_commandListResponseItem", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cdn_purge_commandListResponseItem\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cdn", "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" } } }, "cdn_purge_commandPurgeStatus": { "type": "object", "x-ves-proto-message": "ves.io.schema.cdn_purge_command.PurgeStatus", "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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 } }, "node": { "type": "string", "description": "Node on which purge was performed.", "title": "Node on which purge was performed", "x-displayname": "CDN Node", "x-ves-example": "Dev-edge2-0.", "x-f5xc-example": "dev-edge2-0", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "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-08-20T09:12:47+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": "abc.png", "x-f5xc-example": "abc.png", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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.", "x-displayname": "CDN CE Site.", "x-ves-example": "Sv10-sjc", "x-f5xc-example": "sv10-sjc", "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-08-20T09:12:47+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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cdn_purge_commandPurgeStatus", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cdn_purge_commandPurgeStatus\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cdn", "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" } } }, "cdn_purge_commandStatusObject": { "type": "object", "x-ves-proto-message": "ves.io.schema.cdn_purge_command.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": "Purge command object.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "purge_status": { "allOf": [ { "$ref": "#/components/schemas/cdn_purge_commandPurgeStatus" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cdn_purge_commandStatusObject", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cdn_purge_commandStatusObject\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cdn", "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" } } }, "schemacdn_purge_commandCreateSpecType": { "type": "object", "description": "Shape of the CDN Purge Command specification.", "title": "CreateSpecType", "x-displayname": "Create CDN Cache Purge Command.", "x-ves-oneof-field-pattern_type": "[\"hostname\",\"pattern\",\"purge_all\",\"url_path\"]", "x-ves-oneof-field-purge_type": "[\"hard_purge\",\"soft_purge\"]", "x-ves-proto-message": "ves.io.schema.cdn_purge_command.CreateSpecType", "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_path]\nPurge cached content by 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_path] 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-08-20T09:12:47+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_path" ] }, "pattern": { "type": "string", "description": "Exclusive with [hostname purge_all url_path]\nPurge cached content using PCRE 1 compliant regular expression.", "minLength": 1, "maxLength": 256, "x-displayname": "Pattern", "x-ves-example": "abc.png", "x-ves-validation-rules": { "ves.io.schema.rules.string.max_len": "256", "ves.io.schema.rules.string.min_len": "1" }, "x-f5xc-example": "abc.png", "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_path] Purge cached content using PCRE 1 compliant regular expression.", "x-f5xc-description-medium": "Exclusive with [hostname purge_all url_path] 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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "hostname", "purge_all", "url_path" ] }, "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_path" ] }, "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_path": { "type": "string", "description": "Exclusive with [hostname pattern purge_all]\nPurge cache by using a URL path.", "x-displayname": "URL Path", "x-ves-example": "/path1", "x-ves-validation-rules": { "ves.io.schema.rules.string.http_path": "true" }, "x-f5xc-example": "/path1", "x-validation-rules": { "ves.io.schema.rules.string.http_path": "true" }, "x-f5xc-description-short": "Exclusive with [hostname pattern purge_all] Purge cache by using a URL path.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "hostname", "pattern", "purge_all" ] }, "virtual_host": { "allOf": [ { "$ref": "#/components/schemas/schemaviewsObjectRefType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-references": [ { "resource_kind": "virtual_host", "field_path": "virtual_host", "gated_by": null, "required": false, "cardinality": "single" } ] } }, "x-f5xc-description-short": "Shape of the CDN Purge Command specification.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for schemacdn_purge_commandCreateSpecType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemacdn_purge_commandCreateSpecType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cdn", "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" } } }, "schemacdn_purge_commandGetSpecType": { "type": "object", "description": "Shape of the CDN Purge Command specification.", "title": "GetSpecType", "x-displayname": "GET CDN Cache Purge Command.", "x-ves-oneof-field-pattern_type": "[\"hostname\",\"pattern\",\"purge_all\",\"url_path\"]", "x-ves-oneof-field-purge_type": "[\"hard_purge\",\"soft_purge\"]", "x-ves-proto-message": "ves.io.schema.cdn_purge_command.GetSpecType", "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_path]\nPurge cached content by 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_path] 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-08-20T09:12:47+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_path" ] }, "pattern": { "type": "string", "description": "Exclusive with [hostname purge_all url_path]\nPurge cached content using PCRE 1 compliant regular expression.", "minLength": 1, "maxLength": 256, "x-displayname": "Pattern", "x-ves-example": "abc.png", "x-ves-validation-rules": { "ves.io.schema.rules.string.max_len": "256", "ves.io.schema.rules.string.min_len": "1" }, "x-f5xc-example": "abc.png", "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_path] Purge cached content using PCRE 1 compliant regular expression.", "x-f5xc-description-medium": "Exclusive with [hostname purge_all url_path] 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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "hostname", "purge_all", "url_path" ] }, "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_path" ] }, "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_path": { "type": "string", "description": "Exclusive with [hostname pattern purge_all]\nPurge cache by using a URL path.", "x-displayname": "URL Path", "x-ves-example": "/path1", "x-ves-validation-rules": { "ves.io.schema.rules.string.http_path": "true" }, "x-f5xc-example": "/path1", "x-validation-rules": { "ves.io.schema.rules.string.http_path": "true" }, "x-f5xc-description-short": "Exclusive with [hostname pattern purge_all] Purge cache by using a URL path.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "hostname", "pattern", "purge_all" ] }, "virtual_host": { "allOf": [ { "$ref": "#/components/schemas/schemaviewsObjectRefType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-references": [ { "resource_kind": "virtual_host", "field_path": "virtual_host", "gated_by": null, "required": false, "cardinality": "single" } ] } }, "x-f5xc-description-short": "Shape of the CDN Purge Command specification.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for schemacdn_purge_commandGetSpecType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemacdn_purge_commandGetSpecType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cdn", "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" } } }, "cdn_cache_ruleCDNCacheRule": { "type": "object", "description": "This defines a CDN Cache Rule.", "title": "Cache Rule", "x-displayname": "Cache Rule.", "x-ves-displayorder": "1,2,3", "x-ves-oneof-field-cache_actions": "[\"cache_bypass\",\"eligible_for_cache\"]", "x-ves-proto-message": "ves.io.schema.cdn_cache_rule.CDNCacheRule", "properties": { "cache_bypass": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-description-short": "Configuration parameter for cache bypass.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "eligible_for_cache" ] }, "eligible_for_cache": { "allOf": [ { "$ref": "#/components/schemas/cdn_cache_ruleCacheEligibleOptions" } ], "x-f5xc-description-short": "Configuration parameter for eligible for cache.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "cache_bypass" ] }, "rule_expression_list": { "type": "array", "description": "Expressions are evaluated in the order in which they are specified. The evaluation stops when the first rule match occurs..", "title": "Expression List", "minItems": 1, "maxItems": 8, "items": { "$ref": "#/components/schemas/cdn_cache_ruleCDNCacheRuleExpressionList" }, "x-displayname": "Expressions.", "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-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "Expressions are evaluated in the order in which they are specified. The evaluation stops when the first rule match occurs..", "x-f5xc-description-medium": "Expressions are evaluated in the order in which they are specified. The evaluation stops when the first rule match occurs..", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "minItems": 1, "maxItems": 8, "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "rule_name": { "type": "string", "description": "Name of the Cache Rule.", "title": "Rule Name", "maxLength": 128, "x-displayname": "Rule Name", "x-ves-example": "Rule-1", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.string.max_len": "128" }, "x-f5xc-example": "Rule-1", "x-validation-rules": { "ves.io.schema.rules.message.required": "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cdn_cache_ruleCDNCacheRule", "required_fields": [ "rule_expression_list", "rule_name" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cdn_cache_ruleCDNCacheRule\nmetadata:\n name: example\n namespace: default\nspec:\n rule_expression_list: value\n rule_name: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"rule_expression_list\": \"value\",\n \"rule_name\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "cdn", "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" } } }, "cdn_cache_ruleCDNCacheRuleExpression": { "type": "object", "description": "Select one of the field OPTIONS.", "title": "CDNCacheRuleExpression", "x-displayname": "Cache Rule Expression.", "x-ves-displayorder": "1,2,3,4", "x-ves-proto-message": "ves.io.schema.cdn_cache_rule.CDNCacheRuleExpression", "properties": { "cache_headers": { "type": "array", "description": "Configure cache rule headers to match the criteria.", "title": "Cache Headers", "maxItems": 8, "items": { "$ref": "#/components/schemas/cdn_cache_ruleCacheHeaderMatcherType" }, "x-displayname": "Cache Headers.", "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": "Configure cache rule headers to match the criteria.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 8, "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "cookie_matcher": { "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": 8, "items": { "$ref": "#/components/schemas/cdn_cache_ruleCacheCookieMatcherType" }, "x-displayname": "Cookie Matchers.", "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": "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": 8, "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "path_match": { "allOf": [ { "$ref": "#/components/schemas/cdn_cache_ruleCDNPathMatcherType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "query_parameters": { "type": "array", "description": "List of (key, value) query parameters.", "title": "query_params", "maxItems": 8, "items": { "$ref": "#/components/schemas/cdn_cache_ruleCacheQueryParameterMatcherType" }, "x-displayname": "Query Parameters.", "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, "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cdn_cache_ruleCDNCacheRuleExpression", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cdn_cache_ruleCDNCacheRuleExpression\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cdn", "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" } } }, "cdn_cache_ruleCDNCacheRuleExpressionList": { "type": "object", "description": "CDN Cache Rule Expressions.", "title": "Cache Rule Expression List", "x-displayname": "Cache Rule Expression List.", "x-ves-proto-message": "ves.io.schema.cdn_cache_rule.CDNCacheRuleExpressionList", "properties": { "cache_rule_expression": { "type": "array", "description": "The Cache Rule Expression Terms that are ANDed.", "title": "Terms", "minItems": 1, "maxItems": 8, "items": { "$ref": "#/components/schemas/cdn_cache_ruleCDNCacheRuleExpression" }, "x-displayname": "Terms", "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-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "The Cache Rule Expression Terms that are ANDed.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "minItems": 1, "maxItems": 8, "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "expression_name": { "type": "string", "description": "Name of the Expressions items that are ANDed.", "title": "Expression Name", "maxLength": 128, "x-displayname": "Expression Name.", "x-ves-example": "Expression-1.", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.string.max_len": "128" }, "x-f5xc-example": "Expression-1", "x-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.string.max_len": "128" }, "x-f5xc-description-short": "Name of the Expressions items that are ANDed.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 128, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cdn_cache_ruleCDNCacheRuleExpressionList", "required_fields": [ "cache_rule_expression", "expression_name" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cdn_cache_ruleCDNCacheRuleExpressionList\nmetadata:\n name: example\n namespace: default\nspec:\n cache_rule_expression: value\n expression_name: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"cache_rule_expression\": \"value\",\n \"expression_name\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "cdn", "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" } } }, "cdn_cache_ruleCDNPathMatcherType": { "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-proto-message": "ves.io.schema.cdn_cache_rule.CDNPathMatcherType", "properties": { "operator": { "allOf": [ { "$ref": "#/components/schemas/cdn_cache_ruleCacheOperator" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "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 cdn_cache_ruleCDNPathMatcherType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cdn_cache_ruleCDNPathMatcherType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cdn", "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" } } }, "cdn_cache_ruleCacheCookieMatcherType": { "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": "CacheCookieMatcherType", "x-displayname": "Cookie Matcher.", "x-ves-proto-message": "ves.io.schema.cdn_cache_rule.CacheCookieMatcherType", "properties": { "name": { "type": "string", "description": "Enter the name of the cookie to match.", "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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" }, "operator": { "allOf": [ { "$ref": "#/components/schemas/cdn_cache_ruleCookieMatcherCacheOperator" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "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 cdn_cache_ruleCacheCookieMatcherType", "required_fields": [ "name" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cdn_cache_ruleCacheCookieMatcherType\nmetadata:\n name: example\n namespace: default\nspec:\n name: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"name\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "cdn", "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" } } }, "cdn_cache_ruleCacheEligibleOptions": { "type": "object", "description": "List of OPTIONS for Cache Action.", "title": "Cache Action Options", "x-displayname": "Cache Action OPTIONS.", "x-ves-oneof-field-eligible_for_cache": "[\"scheme_proxy_host_request_uri\",\"scheme_proxy_host_uri\"]", "x-ves-proto-message": "ves.io.schema.cdn_cache_rule.CacheEligibleOptions", "properties": { "scheme_proxy_host_request_uri": { "allOf": [ { "$ref": "#/components/schemas/cdn_cache_ruleCacheTTLEnableProps" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "scheme_proxy_host_uri" ] }, "scheme_proxy_host_uri": { "allOf": [ { "$ref": "#/components/schemas/cdn_cache_ruleCacheTTLEnableProps" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "scheme_proxy_host_request_uri" ] } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cdn_cache_ruleCacheEligibleOptions", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cdn_cache_ruleCacheEligibleOptions\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cdn", "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" } } }, "cdn_cache_ruleCacheHeaderMatcherType": { "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": "CacheHeaderMatcherType", "x-displayname": "Cache Header to Match.", "x-ves-proto-message": "ves.io.schema.cdn_cache_rule.CacheHeaderMatcherType", "properties": { "name": { "allOf": [ { "$ref": "#/components/schemas/cdn_cache_ruleHeaderOptions" } ], "x-f5xc-example": "example-resource", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "maxLength": 16, "minLength": 6, "x-reconciled-from-discovery": true, "x-reconciled-at": "2026-08-20T09:12:47+00:00" }, "operator": { "allOf": [ { "$ref": "#/components/schemas/cdn_cache_ruleHeaderCacheOperator" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "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 cdn_cache_ruleCacheHeaderMatcherType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cdn_cache_ruleCacheHeaderMatcherType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cdn", "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" } } }, "cdn_cache_ruleCacheOperator": { "type": "object", "title": "Cache Operator", "x-displayname": "Operator", "x-ves-oneof-field-cache_operator": "[\"Contains\",\"DoesNotContain\",\"DoesNotEndWith\",\"DoesNotEqual\",\"DoesNotStartWith\",\"Endswith\",\"Equals\",\"MatchRegex\",\"Startswith\"]", "x-ves-proto-message": "ves.io.schema.cdn_cache_rule.CacheOperator", "properties": { "Contains": { "type": "string", "description": "Exclusive with [DoesNotContain DoesNotEndWith DoesNotEqual DoesNotStartWith Endswith Equals MatchRegex Startswith]\nThe path must include the specified value as a substring, up to the filename.", "title": "Contains", "x-displayname": "Contains", "x-f5xc-description-short": "Exclusive with [DoesNotContain DoesNotEndWith DoesNotEqual DoesNotStartWith Endswith Equals MatchRegex Startswith] The path must include the...", "x-f5xc-description-medium": "Exclusive with [DoesNotContain DoesNotEndWith DoesNotEqual DoesNotStartWith Endswith Equals MatchRegex Startswith] The path must include the specified value as a substring, up to the filename.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "DoesNotContain", "DoesNotEndWith", "DoesNotEqual", "DoesNotStartWith", "Endswith", "Equals", "MatchRegex", "Startswith" ] }, "DoesNotContain": { "type": "string", "description": "Exclusive with [Contains DoesNotEndWith DoesNotEqual DoesNotStartWith Endswith Equals MatchRegex Startswith]\nThe path must not include the specified value as a substring, up to the filename.", "title": "Does Not Contain", "x-displayname": "Does Not Contain.", "x-f5xc-description-short": "Exclusive with [Contains DoesNotEndWith DoesNotEqual DoesNotStartWith Endswith Equals MatchRegex Startswith] The path must not include the...", "x-f5xc-description-medium": "Exclusive with [Contains DoesNotEndWith DoesNotEqual DoesNotStartWith Endswith Equals MatchRegex Startswith] The path must not include the specified value as a substring, up to the filename.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "Contains", "DoesNotEndWith", "DoesNotEqual", "DoesNotStartWith", "Endswith", "Equals", "MatchRegex", "Startswith" ] }, "DoesNotEndWith": { "type": "string", "description": "Exclusive with [Contains DoesNotContain DoesNotEqual DoesNotStartWith Endswith Equals MatchRegex Startswith]\nThe path must not end with the specified value, up to the filename.", "title": "Does Not End With", "x-displayname": "Does Not End With.", "x-f5xc-description-short": "Exclusive with [Contains DoesNotContain DoesNotEqual DoesNotStartWith Endswith Equals MatchRegex Startswith] The path must not end with the...", "x-f5xc-description-medium": "Exclusive with [Contains DoesNotContain DoesNotEqual DoesNotStartWith Endswith Equals MatchRegex Startswith] The path must not end with the specified value, up to the filename.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "Contains", "DoesNotContain", "DoesNotEqual", "DoesNotStartWith", "Endswith", "Equals", "MatchRegex", "Startswith" ] }, "DoesNotEqual": { "type": "string", "description": "Exclusive with [Contains DoesNotContain DoesNotEndWith DoesNotStartWith Endswith Equals MatchRegex Startswith]\nThe path must not match the specified value, up to the filename.", "title": "Does Not Equal", "x-displayname": "Does Not Equal.", "x-f5xc-description-short": "Exclusive with [Contains DoesNotContain DoesNotEndWith DoesNotStartWith Endswith Equals MatchRegex Startswith] The path must not match the...", "x-f5xc-description-medium": "Exclusive with [Contains DoesNotContain DoesNotEndWith DoesNotStartWith Endswith Equals MatchRegex Startswith] The path must not match the specified value, up to the filename.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "Contains", "DoesNotContain", "DoesNotEndWith", "DoesNotStartWith", "Endswith", "Equals", "MatchRegex", "Startswith" ] }, "DoesNotStartWith": { "type": "string", "description": "Exclusive with [Contains DoesNotContain DoesNotEndWith DoesNotEqual Endswith Equals MatchRegex Startswith]\nThe path must not begin with the specified value, up to the filename.", "title": "Does Not Start With", "x-displayname": "Does Not Start With.", "x-f5xc-description-short": "Exclusive with [Contains DoesNotContain DoesNotEndWith DoesNotEqual Endswith Equals MatchRegex Startswith] The path must not begin with the...", "x-f5xc-description-medium": "Exclusive with [Contains DoesNotContain DoesNotEndWith DoesNotEqual Endswith Equals MatchRegex Startswith] The path must not begin with the specified value, up to the filename.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "Contains", "DoesNotContain", "DoesNotEndWith", "DoesNotEqual", "Endswith", "Equals", "MatchRegex", "Startswith" ] }, "Endswith": { "type": "string", "description": "Exclusive with [Contains DoesNotContain DoesNotEndWith DoesNotEqual DoesNotStartWith Equals MatchRegex Startswith]\nThe path must end with the specified value, up to the filename.", "title": "Ends With", "x-displayname": "Ends With", "x-f5xc-description-short": "Exclusive with [Contains DoesNotContain DoesNotEndWith DoesNotEqual DoesNotStartWith Equals MatchRegex Startswith] The path must end with the...", "x-f5xc-description-medium": "Exclusive with [Contains DoesNotContain DoesNotEndWith DoesNotEqual DoesNotStartWith Equals MatchRegex Startswith] The path must end with the specified value, up to the filename.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "Contains", "DoesNotContain", "DoesNotEndWith", "DoesNotEqual", "DoesNotStartWith", "Equals", "MatchRegex", "Startswith" ] }, "Equals": { "type": "string", "description": "Exclusive with [Contains DoesNotContain DoesNotEndWith DoesNotEqual DoesNotStartWith Endswith MatchRegex Startswith]\nThe path must exactly match the specified value, up to the filename.", "title": "Equals", "x-displayname": "Equals", "x-f5xc-description-short": "Exclusive with [Contains DoesNotContain DoesNotEndWith DoesNotEqual DoesNotStartWith Endswith MatchRegex Startswith] The path must exactly match...", "x-f5xc-description-medium": "Exclusive with [Contains DoesNotContain DoesNotEndWith DoesNotEqual DoesNotStartWith Endswith MatchRegex Startswith] The path must exactly match the specified value, up to the filename.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "Contains", "DoesNotContain", "DoesNotEndWith", "DoesNotEqual", "DoesNotStartWith", "Endswith", "MatchRegex", "Startswith" ] }, "MatchRegex": { "type": "string", "description": "Exclusive with [Contains DoesNotContain DoesNotEndWith DoesNotEqual DoesNotStartWith Endswith Equals Startswith]\nThe path must match the specified regular expression pattern in PCRE format.", "title": "Matches Regex", "minLength": 1, "maxLength": 256, "x-displayname": "Matches Regex.", "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 [Contains DoesNotContain DoesNotEndWith DoesNotEqual DoesNotStartWith Endswith Equals Startswith] The path must match the specified...", "x-f5xc-description-medium": "Exclusive with [Contains DoesNotContain DoesNotEndWith DoesNotEqual DoesNotStartWith Endswith Equals Startswith] The path must match the specified regular expression pattern in PCRE format.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "minLength": 1, "maxLength": 256, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "Contains", "DoesNotContain", "DoesNotEndWith", "DoesNotEqual", "DoesNotStartWith", "Endswith", "Equals", "Startswith" ] }, "Startswith": { "type": "string", "description": "Exclusive with [Contains DoesNotContain DoesNotEndWith DoesNotEqual DoesNotStartWith Endswith Equals MatchRegex]\nThe path must begin with the specified value, up to the filename.", "title": "Starts With", "x-displayname": "Starts With.", "x-f5xc-description-short": "Exclusive with [Contains DoesNotContain DoesNotEndWith DoesNotEqual DoesNotStartWith Endswith Equals MatchRegex] The path must begin with the...", "x-f5xc-description-medium": "Exclusive with [Contains DoesNotContain DoesNotEndWith DoesNotEqual DoesNotStartWith Endswith Equals MatchRegex] The path must begin with the specified value, up to the filename.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "Contains", "DoesNotContain", "DoesNotEndWith", "DoesNotEqual", "DoesNotStartWith", "Endswith", "Equals", "MatchRegex" ] } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cdn_cache_ruleCacheOperator", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cdn_cache_ruleCacheOperator\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cdn", "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" } } }, "cdn_cache_ruleCacheQueryParameterMatcherType": { "type": "object", "description": "Query parameter match can be either regex match on value or exact match of value for given key\nAn example for HTTP request with query parameter https://gitlab.com/dashboard/issues?assignee_username=xxyyxx.", "title": "CacheQueryParameterMatcherType", "x-displayname": "Query Parameter to Match.", "x-ves-proto-message": "ves.io.schema.cdn_cache_rule.CacheQueryParameterMatcherType", "properties": { "key": { "type": "string", "description": "The name of the query parameter to match.", "title": "key", "minLength": 1, "maxLength": 256, "x-displayname": "Key", "x-ves-example": "Assignee_username.", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.string.max_bytes": "256", "ves.io.schema.rules.string.min_bytes": "1" }, "x-f5xc-example": "assignee_username", "x-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.string.max_bytes": "256", "ves.io.schema.rules.string.min_bytes": "1" }, "x-f5xc-description-short": "The name of the query parameter to match.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "minLength": 1, "maxLength": 256, "byteLength": { "max": 256, "min": 1 }, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "operator": { "allOf": [ { "$ref": "#/components/schemas/cdn_cache_ruleQueryParamCacheOperator" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Query parameter match can be either regex match on value or exact match of value for given key An example for HTTP request with query parameter...", "x-f5xc-description-medium": "Query parameter match can be either regex match on value or exact match of value for given key An example for HTTP request with query parameter https://gitlab.com/dashboard/issues?assignee_username=xxyyxx.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cdn_cache_ruleCacheQueryParameterMatcherType", "required_fields": [ "key" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cdn_cache_ruleCacheQueryParameterMatcherType\nmetadata:\n name: example\n namespace: default\nspec:\n key: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"key\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "cdn", "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" } } }, "cdn_cache_ruleCacheTTLEnableProps": { "type": "object", "description": "Cache TTL Enable Values.", "title": "Cache TTL Enable Props", "x-displayname": "Cache TTL Enable Props.", "x-ves-proto-message": "ves.io.schema.cdn_cache_rule.CacheTTLEnableProps", "properties": { "cache_override": { "type": "boolean", "description": "Honour Cache Override.", "title": "Cache Override", "format": "boolean", "x-displayname": "Cache Override.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "cache_ttl": { "type": "string", "description": "Cache TTL value is used to cache the resource/content for the specified amount of time\nFormat: [0-9][smhd], where s - seconds, m - minutes, h - hours, d - days.", "title": "Cache TTL Key", "x-displayname": "Cache TTL", "x-ves-example": "5m, 60s, 120s, 3h, 1d, 15d.", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.string.time_interval": "true" }, "x-f5xc-example": "5m, 60s, 120s, 3h, 1d, 15d", "x-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.string.time_interval": "true" }, "x-f5xc-description-short": "Cache TTL value is used to cache the resource/content for the specified amount of time Format: [0-9][smhd], where s - seconds, m - minutes, h ...", "x-f5xc-description-medium": "Cache TTL value is used to cache the resource/content for the specified amount of time 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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "ignore_response_cookie": { "type": "boolean", "description": "By default, response will not be cached if set-cookie header is present. This option will override the behavior and cache response even with set-cookie header present.", "title": "Set Cookie", "format": "boolean", "x-displayname": "Ignore-Response-Cookie.", "x-f5xc-description-short": "By default, response will not be cached if set-cookie header is present.", "x-f5xc-description-medium": "By default, response will not be cached if set-cookie header is present. This option will override the behavior and cache response even with set-cookie header present.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cdn_cache_ruleCacheTTLEnableProps", "required_fields": [ "cache_ttl" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cdn_cache_ruleCacheTTLEnableProps\nmetadata:\n name: example\n namespace: default\nspec:\n cache_ttl: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"cache_ttl\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "cdn", "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" } } }, "cdn_cache_ruleCookieMatcherCacheOperator": { "type": "object", "title": "Cookie Matcher Cache Operator", "x-displayname": "Operator", "x-ves-oneof-field-cache_operator": "[\"Contains\",\"DoesNotContain\",\"DoesNotEndWith\",\"DoesNotEqual\",\"DoesNotStartWith\",\"Endswith\",\"Equals\",\"MatchRegex\",\"Startswith\"]", "x-ves-proto-message": "ves.io.schema.cdn_cache_rule.CookieMatcherCacheOperator", "properties": { "Contains": { "type": "string", "description": "Exclusive with [DoesNotContain DoesNotEndWith DoesNotEqual DoesNotStartWith Endswith Equals MatchRegex Startswith]\nThe cookie value must include the specified value as a substring.", "title": "Contains", "x-displayname": "Contains", "x-f5xc-description-short": "Exclusive with [DoesNotContain DoesNotEndWith DoesNotEqual DoesNotStartWith Endswith Equals MatchRegex Startswith] The cookie value must include...", "x-f5xc-description-medium": "Exclusive with [DoesNotContain DoesNotEndWith DoesNotEqual DoesNotStartWith Endswith Equals MatchRegex Startswith] The cookie value must include the specified value as a substring.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "DoesNotContain", "DoesNotEndWith", "DoesNotEqual", "DoesNotStartWith", "Endswith", "Equals", "MatchRegex", "Startswith" ] }, "DoesNotContain": { "type": "string", "description": "Exclusive with [Contains DoesNotEndWith DoesNotEqual DoesNotStartWith Endswith Equals MatchRegex Startswith]\nThe cookie value must not include the specified value as a substring.", "title": "Does Not Contain", "x-displayname": "Does Not Contain.", "x-f5xc-description-short": "Exclusive with [Contains DoesNotEndWith DoesNotEqual DoesNotStartWith Endswith Equals MatchRegex Startswith] The cookie value must not include the...", "x-f5xc-description-medium": "Exclusive with [Contains DoesNotEndWith DoesNotEqual DoesNotStartWith Endswith Equals MatchRegex Startswith] The cookie value must not include the specified value as a substring.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "Contains", "DoesNotEndWith", "DoesNotEqual", "DoesNotStartWith", "Endswith", "Equals", "MatchRegex", "Startswith" ] }, "DoesNotEndWith": { "type": "string", "description": "Exclusive with [Contains DoesNotContain DoesNotEqual DoesNotStartWith Endswith Equals MatchRegex Startswith]\nThe cookie value must not end with the specified value.", "title": "Does Not End With", "x-displayname": "Does Not End With.", "x-f5xc-description-short": "Exclusive with [Contains DoesNotContain DoesNotEqual DoesNotStartWith Endswith Equals MatchRegex Startswith] The cookie value must not end with...", "x-f5xc-description-medium": "Exclusive with [Contains DoesNotContain DoesNotEqual DoesNotStartWith Endswith Equals MatchRegex Startswith] The cookie value must not end with the specified value.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "Contains", "DoesNotContain", "DoesNotEqual", "DoesNotStartWith", "Endswith", "Equals", "MatchRegex", "Startswith" ] }, "DoesNotEqual": { "type": "string", "description": "Exclusive with [Contains DoesNotContain DoesNotEndWith DoesNotStartWith Endswith Equals MatchRegex Startswith]\nThe cookie value must not match the specified value.", "title": "Does Not Equal", "x-displayname": "Does Not Equal.", "x-f5xc-description-short": "Exclusive with [Contains DoesNotContain DoesNotEndWith DoesNotStartWith Endswith Equals MatchRegex Startswith] The cookie value must not match the...", "x-f5xc-description-medium": "Exclusive with [Contains DoesNotContain DoesNotEndWith DoesNotStartWith Endswith Equals MatchRegex Startswith] The cookie value must not match the specified value.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "Contains", "DoesNotContain", "DoesNotEndWith", "DoesNotStartWith", "Endswith", "Equals", "MatchRegex", "Startswith" ] }, "DoesNotStartWith": { "type": "string", "description": "Exclusive with [Contains DoesNotContain DoesNotEndWith DoesNotEqual Endswith Equals MatchRegex Startswith]\nThe cookie value must not begin with the specified value.", "title": "Does Not Start With", "x-displayname": "Does Not Start With.", "x-f5xc-description-short": "Exclusive with [Contains DoesNotContain DoesNotEndWith DoesNotEqual Endswith Equals MatchRegex Startswith] The cookie value must not begin with...", "x-f5xc-description-medium": "Exclusive with [Contains DoesNotContain DoesNotEndWith DoesNotEqual Endswith Equals MatchRegex Startswith] The cookie value must not begin with the specified value.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "Contains", "DoesNotContain", "DoesNotEndWith", "DoesNotEqual", "Endswith", "Equals", "MatchRegex", "Startswith" ] }, "Endswith": { "type": "string", "description": "Exclusive with [Contains DoesNotContain DoesNotEndWith DoesNotEqual DoesNotStartWith Equals MatchRegex Startswith]\nThe cookie value must end with the specified value.", "title": "Ends With", "x-displayname": "Ends With", "x-f5xc-description-short": "Exclusive with [Contains DoesNotContain DoesNotEndWith DoesNotEqual DoesNotStartWith Equals MatchRegex Startswith] The cookie value must end with...", "x-f5xc-description-medium": "Exclusive with [Contains DoesNotContain DoesNotEndWith DoesNotEqual DoesNotStartWith Equals MatchRegex Startswith] The cookie value must end with the specified value.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "Contains", "DoesNotContain", "DoesNotEndWith", "DoesNotEqual", "DoesNotStartWith", "Equals", "MatchRegex", "Startswith" ] }, "Equals": { "type": "string", "description": "Exclusive with [Contains DoesNotContain DoesNotEndWith DoesNotEqual DoesNotStartWith Endswith MatchRegex Startswith]\nThe cookie value must exactly match the specified value.", "title": "Equals", "x-displayname": "Equals", "x-f5xc-description-short": "Exclusive with [Contains DoesNotContain DoesNotEndWith DoesNotEqual DoesNotStartWith Endswith MatchRegex Startswith] The cookie value must exactly...", "x-f5xc-description-medium": "Exclusive with [Contains DoesNotContain DoesNotEndWith DoesNotEqual DoesNotStartWith Endswith MatchRegex Startswith] The cookie value must exactly match the specified value.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "Contains", "DoesNotContain", "DoesNotEndWith", "DoesNotEqual", "DoesNotStartWith", "Endswith", "MatchRegex", "Startswith" ] }, "MatchRegex": { "type": "string", "description": "Exclusive with [Contains DoesNotContain DoesNotEndWith DoesNotEqual DoesNotStartWith Endswith Equals Startswith]\nThe cookie value must match the specified regular expression pattern in PCRE format.", "title": "Matches Regex", "minLength": 1, "maxLength": 256, "x-displayname": "Matches Regex.", "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 [Contains DoesNotContain DoesNotEndWith DoesNotEqual DoesNotStartWith Endswith Equals Startswith] The cookie value must match the...", "x-f5xc-description-medium": "Exclusive with [Contains DoesNotContain DoesNotEndWith DoesNotEqual DoesNotStartWith Endswith Equals Startswith] The cookie value must match the specified regular expression pattern in PCRE format.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "minLength": 1, "maxLength": 256, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "Contains", "DoesNotContain", "DoesNotEndWith", "DoesNotEqual", "DoesNotStartWith", "Endswith", "Equals", "Startswith" ] }, "Startswith": { "type": "string", "description": "Exclusive with [Contains DoesNotContain DoesNotEndWith DoesNotEqual DoesNotStartWith Endswith Equals MatchRegex]\nThe cookie value must begin with the specified value.", "title": "Starts With", "x-displayname": "Starts With.", "x-f5xc-description-short": "Exclusive with [Contains DoesNotContain DoesNotEndWith DoesNotEqual DoesNotStartWith Endswith Equals MatchRegex] The cookie value must begin with...", "x-f5xc-description-medium": "Exclusive with [Contains DoesNotContain DoesNotEndWith DoesNotEqual DoesNotStartWith Endswith Equals MatchRegex] The cookie value must begin with the specified value.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "Contains", "DoesNotContain", "DoesNotEndWith", "DoesNotEqual", "DoesNotStartWith", "Endswith", "Equals", "MatchRegex" ] } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cdn_cache_ruleCookieMatcherCacheOperator", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cdn_cache_ruleCookieMatcherCacheOperator\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cdn", "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" } } }, "cdn_cache_ruleCreateRequest": { "type": "object", "description": "This is the input message of the 'Create' RPC.", "title": "CreateRequest is used to create an instance of cdn_cache_rule", "x-displayname": "Create Request.", "x-ves-proto-message": "ves.io.schema.cdn_cache_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/schemacdn_cache_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 cdn_cache_ruleCreateRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cdn_cache_ruleCreateRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cdn", "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" } } }, "cdn_cache_ruleCreateResponse": { "type": "object", "x-ves-proto-message": "ves.io.schema.cdn_cache_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/schemacdn_cache_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 cdn_cache_ruleCreateResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cdn_cache_ruleCreateResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cdn", "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" } } }, "cdn_cache_ruleDeleteRequest": { "type": "object", "description": "This is the input message of the 'DELETE' RPC.", "title": "DeleteRequest is used to delete a cdn_cache_rule", "x-displayname": "DELETE Request.", "x-ves-proto-message": "ves.io.schema.cdn_cache_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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cdn_cache_ruleDeleteRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cdn_cache_ruleDeleteRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cdn", "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" } } }, "cdn_cache_ruleGetResponse": { "type": "object", "description": "This is the output message of the 'GET' RPC.", "title": "GetResponse is the shape of a read cdn_cache_rule", "x-displayname": "GET Response.", "x-ves-proto-message": "ves.io.schema.cdn_cache_rule.GetResponse", "properties": { "create_form": { "allOf": [ { "$ref": "#/components/schemas/cdn_cache_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/cdn_cache_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/schemacdn_cache_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 } }, "resource_version": { "type": "string", "x-f5xc-concurrency-token": { "server_assigned": true, "echo_on_operations": [ "replace" ] } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cdn_cache_ruleGetResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cdn_cache_ruleGetResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cdn", "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" } } }, "cdn_cache_ruleHeaderCacheOperator": { "type": "object", "title": "Header Cache Operator", "x-displayname": "Operator", "x-ves-oneof-field-cache_operator": "[\"Contains\",\"DoesNotContain\",\"DoesNotEndWith\",\"DoesNotEqual\",\"DoesNotStartWith\",\"Endswith\",\"Equals\",\"MatchRegex\",\"Startswith\"]", "x-ves-proto-message": "ves.io.schema.cdn_cache_rule.HeaderCacheOperator", "properties": { "Contains": { "type": "string", "description": "Exclusive with [DoesNotContain DoesNotEndWith DoesNotEqual DoesNotStartWith Endswith Equals MatchRegex Startswith]\nThe header value must include the specified value as a substring.", "title": "Contains", "x-displayname": "Contains", "x-f5xc-description-short": "Exclusive with [DoesNotContain DoesNotEndWith DoesNotEqual DoesNotStartWith Endswith Equals MatchRegex Startswith] The header value must include...", "x-f5xc-description-medium": "Exclusive with [DoesNotContain DoesNotEndWith DoesNotEqual DoesNotStartWith Endswith Equals MatchRegex Startswith] The header value must include the specified value as a substring.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "DoesNotContain", "DoesNotEndWith", "DoesNotEqual", "DoesNotStartWith", "Endswith", "Equals", "MatchRegex", "Startswith" ] }, "DoesNotContain": { "type": "string", "description": "Exclusive with [Contains DoesNotEndWith DoesNotEqual DoesNotStartWith Endswith Equals MatchRegex Startswith]\nThe header value must not include the specified value as a substring.", "title": "Does Not Contain", "x-displayname": "Does Not Contain.", "x-f5xc-description-short": "Exclusive with [Contains DoesNotEndWith DoesNotEqual DoesNotStartWith Endswith Equals MatchRegex Startswith] The header value must not include the...", "x-f5xc-description-medium": "Exclusive with [Contains DoesNotEndWith DoesNotEqual DoesNotStartWith Endswith Equals MatchRegex Startswith] The header value must not include the specified value as a substring.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "Contains", "DoesNotEndWith", "DoesNotEqual", "DoesNotStartWith", "Endswith", "Equals", "MatchRegex", "Startswith" ] }, "DoesNotEndWith": { "type": "string", "description": "Exclusive with [Contains DoesNotContain DoesNotEqual DoesNotStartWith Endswith Equals MatchRegex Startswith]\nThe header value must not end with the specified value.", "title": "Does Not End With", "x-displayname": "Does Not End With.", "x-f5xc-description-short": "Exclusive with [Contains DoesNotContain DoesNotEqual DoesNotStartWith Endswith Equals MatchRegex Startswith] The header value must not end with...", "x-f5xc-description-medium": "Exclusive with [Contains DoesNotContain DoesNotEqual DoesNotStartWith Endswith Equals MatchRegex Startswith] The header value must not end with the specified value.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "Contains", "DoesNotContain", "DoesNotEqual", "DoesNotStartWith", "Endswith", "Equals", "MatchRegex", "Startswith" ] }, "DoesNotEqual": { "type": "string", "description": "Exclusive with [Contains DoesNotContain DoesNotEndWith DoesNotStartWith Endswith Equals MatchRegex Startswith]\nThe header value must not match the specified value.", "title": "Does Not Equal", "x-displayname": "Does Not Equal.", "x-f5xc-description-short": "Exclusive with [Contains DoesNotContain DoesNotEndWith DoesNotStartWith Endswith Equals MatchRegex Startswith] The header value must not match the...", "x-f5xc-description-medium": "Exclusive with [Contains DoesNotContain DoesNotEndWith DoesNotStartWith Endswith Equals MatchRegex Startswith] The header value must not match the specified value.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "Contains", "DoesNotContain", "DoesNotEndWith", "DoesNotStartWith", "Endswith", "Equals", "MatchRegex", "Startswith" ] }, "DoesNotStartWith": { "type": "string", "description": "Exclusive with [Contains DoesNotContain DoesNotEndWith DoesNotEqual Endswith Equals MatchRegex Startswith]\nThe header value must not begin with the specified value.", "title": "Does Not Start With", "x-displayname": "Does Not Start With.", "x-f5xc-description-short": "Exclusive with [Contains DoesNotContain DoesNotEndWith DoesNotEqual Endswith Equals MatchRegex Startswith] The header value must not begin with...", "x-f5xc-description-medium": "Exclusive with [Contains DoesNotContain DoesNotEndWith DoesNotEqual Endswith Equals MatchRegex Startswith] The header value must not begin with the specified value.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "Contains", "DoesNotContain", "DoesNotEndWith", "DoesNotEqual", "Endswith", "Equals", "MatchRegex", "Startswith" ] }, "Endswith": { "type": "string", "description": "Exclusive with [Contains DoesNotContain DoesNotEndWith DoesNotEqual DoesNotStartWith Equals MatchRegex Startswith]\nThe header value must end with the specified value.", "title": "Ends With", "x-displayname": "Ends With", "x-f5xc-description-short": "Exclusive with [Contains DoesNotContain DoesNotEndWith DoesNotEqual DoesNotStartWith Equals MatchRegex Startswith] The header value must end with...", "x-f5xc-description-medium": "Exclusive with [Contains DoesNotContain DoesNotEndWith DoesNotEqual DoesNotStartWith Equals MatchRegex Startswith] The header value must end with the specified value.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "Contains", "DoesNotContain", "DoesNotEndWith", "DoesNotEqual", "DoesNotStartWith", "Equals", "MatchRegex", "Startswith" ] }, "Equals": { "type": "string", "description": "Exclusive with [Contains DoesNotContain DoesNotEndWith DoesNotEqual DoesNotStartWith Endswith MatchRegex Startswith]\nThe header value must exactly match the specified value.", "title": "Equals", "x-displayname": "Equals", "x-f5xc-description-short": "Exclusive with [Contains DoesNotContain DoesNotEndWith DoesNotEqual DoesNotStartWith Endswith MatchRegex Startswith] The header value must exactly...", "x-f5xc-description-medium": "Exclusive with [Contains DoesNotContain DoesNotEndWith DoesNotEqual DoesNotStartWith Endswith MatchRegex Startswith] The header value must exactly match the specified value.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "Contains", "DoesNotContain", "DoesNotEndWith", "DoesNotEqual", "DoesNotStartWith", "Endswith", "MatchRegex", "Startswith" ] }, "MatchRegex": { "type": "string", "description": "Exclusive with [Contains DoesNotContain DoesNotEndWith DoesNotEqual DoesNotStartWith Endswith Equals Startswith]\nThe header value must match the specified regular expression pattern.", "title": "Matches Regex", "minLength": 1, "maxLength": 256, "x-displayname": "Matches Regex.", "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 [Contains DoesNotContain DoesNotEndWith DoesNotEqual DoesNotStartWith Endswith Equals Startswith] The header value must match the...", "x-f5xc-description-medium": "Exclusive with [Contains DoesNotContain DoesNotEndWith DoesNotEqual DoesNotStartWith Endswith Equals Startswith] The header value must match the specified regular expression pattern.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "minLength": 1, "maxLength": 256, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "Contains", "DoesNotContain", "DoesNotEndWith", "DoesNotEqual", "DoesNotStartWith", "Endswith", "Equals", "Startswith" ] }, "Startswith": { "type": "string", "description": "Exclusive with [Contains DoesNotContain DoesNotEndWith DoesNotEqual DoesNotStartWith Endswith Equals MatchRegex]\nThe header value must begin with the specified value.", "title": "Starts With", "x-displayname": "Starts With.", "x-f5xc-description-short": "Exclusive with [Contains DoesNotContain DoesNotEndWith DoesNotEqual DoesNotStartWith Endswith Equals MatchRegex] The header value must begin with...", "x-f5xc-description-medium": "Exclusive with [Contains DoesNotContain DoesNotEndWith DoesNotEqual DoesNotStartWith Endswith Equals MatchRegex] The header value must begin with the specified value.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "Contains", "DoesNotContain", "DoesNotEndWith", "DoesNotEqual", "DoesNotStartWith", "Endswith", "Equals", "MatchRegex" ] } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cdn_cache_ruleHeaderCacheOperator", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cdn_cache_ruleHeaderCacheOperator\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cdn", "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" } } }, "cdn_cache_ruleHeaderOptions": { "type": "string", "description": "- PROXY_HOST: Proxy Host\n\nName of the proxied server\n- REFERER: Referer\n\nThis is the address of the previous web page from which a link to the currently requested page was followed\n- SCHEME: Scheme\n\nThe HTTP scheme used: HTTP or HTTPS\n- USER_AGENT: User Agent\n\nThe user agent string of the user agent.", "title": "Header Options", "enum": [ "PROXY_HOST", "REFERER", "SCHEME", "USER_AGENT" ], "default": "PROXY_HOST", "x-displayname": "Header OPTIONS.", "x-ves-proto-enum": "ves.io.schema.cdn_cache_rule.HeaderOptions", "x-f5xc-description-short": "- PROXY_HOST: Proxy Host Name of the proxied server - REFERER: Referer This is the address of the previous web page from which a link to the...", "x-f5xc-description-medium": "- PROXY_HOST: Proxy Host Name of the proxied server - REFERER: Referer This is the address of the previous web page from which a link to the currently requested page was followed - SCHEME: Scheme The HTTP scheme used: HTTP or HTTPS - USER_AGENT: User Agent The user agent string of the user agent.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cdn_cache_ruleHeaderOptions", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cdn_cache_ruleHeaderOptions\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cdn", "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" } } }, "cdn_cache_ruleListResponse": { "type": "object", "description": "This is the output message of 'List' RPC.", "title": "ListResponse is the collection of cdn_cache_rule", "x-displayname": "List Response.", "x-ves-proto-message": "ves.io.schema.cdn_cache_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/cdn_cache_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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cdn_cache_ruleListResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cdn_cache_ruleListResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cdn", "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" } } }, "cdn_cache_ruleListResponseItem": { "type": "object", "description": "By default a summary of cdn_cache_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 cdn_cache_rule", "x-displayname": "List Item", "x-ves-proto-message": "ves.io.schema.cdn_cache_rule.ListResponseItem", "properties": { "annotations": { "type": "object", "description": "The set of annotations present on this cdn_cache_rule.", "title": "annotations", "x-displayname": "Annotations.", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "The set of annotations present on this cdn_cache_rule.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "description": { "type": "string", "description": "The description set for this cdn_cache_rule.", "title": "description", "x-displayname": "Description.", "x-f5xc-description-short": "The description set for this cdn_cache_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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "disabled": { "type": "boolean", "description": "A value of true indicates cdn_cache_rule is administratively disabled.", "title": "disabled", "format": "boolean", "x-displayname": "Disabled", "x-f5xc-example": "True", "x-f5xc-description-short": "Value of true indicates cdn_cache_rule is administratively disabled.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "get_spec": { "allOf": [ { "$ref": "#/components/schemas/schemacdn_cache_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 cdn_cache_rule.", "title": "labels", "x-displayname": "Labels", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "The set of labels present on this cdn_cache_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 cdn_cache_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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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" } ] }, "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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "uid": { "type": "string", "description": "The unique uid of this cdn_cache_rule.", "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-08-20T09:12:47+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-08-20T09:12:47+00:00" } }, "x-f5xc-description-short": "By default a summary of cdn_cache_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 cdn_cache_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 cdn_cache_ruleListResponseItem", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cdn_cache_ruleListResponseItem\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cdn", "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" } } }, "cdn_cache_ruleQueryParamCacheOperator": { "type": "object", "title": "Query Param Cache Operator", "x-displayname": "Operator", "x-ves-oneof-field-cache_operator": "[\"Contains\",\"DoesNotContain\",\"DoesNotEndWith\",\"DoesNotEqual\",\"DoesNotStartWith\",\"Endswith\",\"Equals\",\"MatchRegex\",\"Startswith\"]", "x-ves-proto-message": "ves.io.schema.cdn_cache_rule.QueryParamCacheOperator", "properties": { "Contains": { "type": "string", "description": "Exclusive with [DoesNotContain DoesNotEndWith DoesNotEqual DoesNotStartWith Endswith Equals MatchRegex Startswith]\nThe query parameter value must include the specified value as a substring.", "title": "Contains", "x-displayname": "Contains", "x-f5xc-description-short": "Exclusive with [DoesNotContain DoesNotEndWith DoesNotEqual DoesNotStartWith Endswith Equals MatchRegex Startswith] The query parameter value must...", "x-f5xc-description-medium": "Exclusive with [DoesNotContain DoesNotEndWith DoesNotEqual DoesNotStartWith Endswith Equals MatchRegex Startswith] The query parameter value must include the specified value as a substring.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "DoesNotContain", "DoesNotEndWith", "DoesNotEqual", "DoesNotStartWith", "Endswith", "Equals", "MatchRegex", "Startswith" ] }, "DoesNotContain": { "type": "string", "description": "Exclusive with [Contains DoesNotEndWith DoesNotEqual DoesNotStartWith Endswith Equals MatchRegex Startswith]\nThe query parameter value must not include the specified value as a substring.", "title": "Does Not Contain", "x-displayname": "Does Not Contain.", "x-f5xc-description-short": "Exclusive with [Contains DoesNotEndWith DoesNotEqual DoesNotStartWith Endswith Equals MatchRegex Startswith] The query parameter value must not...", "x-f5xc-description-medium": "Exclusive with [Contains DoesNotEndWith DoesNotEqual DoesNotStartWith Endswith Equals MatchRegex Startswith] The query parameter value must not include the specified value as a substring.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "Contains", "DoesNotEndWith", "DoesNotEqual", "DoesNotStartWith", "Endswith", "Equals", "MatchRegex", "Startswith" ] }, "DoesNotEndWith": { "type": "string", "description": "Exclusive with [Contains DoesNotContain DoesNotEqual DoesNotStartWith Endswith Equals MatchRegex Startswith]\nThe query parameter value must not end with the specified value.", "title": "Does Not End With", "x-displayname": "Does Not End With.", "x-f5xc-description-short": "Exclusive with [Contains DoesNotContain DoesNotEqual DoesNotStartWith Endswith Equals MatchRegex Startswith] The query parameter value must not...", "x-f5xc-description-medium": "Exclusive with [Contains DoesNotContain DoesNotEqual DoesNotStartWith Endswith Equals MatchRegex Startswith] The query parameter value must not end with the specified value.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "Contains", "DoesNotContain", "DoesNotEqual", "DoesNotStartWith", "Endswith", "Equals", "MatchRegex", "Startswith" ] }, "DoesNotEqual": { "type": "string", "description": "Exclusive with [Contains DoesNotContain DoesNotEndWith DoesNotStartWith Endswith Equals MatchRegex Startswith]\nThe query parameter value must not match the specified value.", "title": "Does Not Equal", "x-displayname": "Does Not Equal.", "x-f5xc-description-short": "Exclusive with [Contains DoesNotContain DoesNotEndWith DoesNotStartWith Endswith Equals MatchRegex Startswith] The query parameter value must not...", "x-f5xc-description-medium": "Exclusive with [Contains DoesNotContain DoesNotEndWith DoesNotStartWith Endswith Equals MatchRegex Startswith] The query parameter value must not match the specified value.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "Contains", "DoesNotContain", "DoesNotEndWith", "DoesNotStartWith", "Endswith", "Equals", "MatchRegex", "Startswith" ] }, "DoesNotStartWith": { "type": "string", "description": "Exclusive with [Contains DoesNotContain DoesNotEndWith DoesNotEqual Endswith Equals MatchRegex Startswith]\nThe query parameter value must not begin with the specified value.", "title": "Does Not Start With", "x-displayname": "Does Not Start With.", "x-f5xc-description-short": "Exclusive with [Contains DoesNotContain DoesNotEndWith DoesNotEqual Endswith Equals MatchRegex Startswith] The query parameter value must not...", "x-f5xc-description-medium": "Exclusive with [Contains DoesNotContain DoesNotEndWith DoesNotEqual Endswith Equals MatchRegex Startswith] The query parameter value must not begin with the specified value.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "Contains", "DoesNotContain", "DoesNotEndWith", "DoesNotEqual", "Endswith", "Equals", "MatchRegex", "Startswith" ] }, "Endswith": { "type": "string", "description": "Exclusive with [Contains DoesNotContain DoesNotEndWith DoesNotEqual DoesNotStartWith Equals MatchRegex Startswith]\nThe query parameter value must end with the specified value.", "title": "Ends With", "x-displayname": "Ends With", "x-f5xc-description-short": "Exclusive with [Contains DoesNotContain DoesNotEndWith DoesNotEqual DoesNotStartWith Equals MatchRegex Startswith] The query parameter value must...", "x-f5xc-description-medium": "Exclusive with [Contains DoesNotContain DoesNotEndWith DoesNotEqual DoesNotStartWith Equals MatchRegex Startswith] The query parameter value must end with the specified value.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "Contains", "DoesNotContain", "DoesNotEndWith", "DoesNotEqual", "DoesNotStartWith", "Equals", "MatchRegex", "Startswith" ] }, "Equals": { "type": "string", "description": "Exclusive with [Contains DoesNotContain DoesNotEndWith DoesNotEqual DoesNotStartWith Endswith MatchRegex Startswith]\nThe query parameter value must exactly match the specified value.", "title": "Equals", "x-displayname": "Equals", "x-f5xc-description-short": "Exclusive with [Contains DoesNotContain DoesNotEndWith DoesNotEqual DoesNotStartWith Endswith MatchRegex Startswith] The query parameter value...", "x-f5xc-description-medium": "Exclusive with [Contains DoesNotContain DoesNotEndWith DoesNotEqual DoesNotStartWith Endswith MatchRegex Startswith] The query parameter value must exactly match the specified value.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "Contains", "DoesNotContain", "DoesNotEndWith", "DoesNotEqual", "DoesNotStartWith", "Endswith", "MatchRegex", "Startswith" ] }, "MatchRegex": { "type": "string", "description": "Exclusive with [Contains DoesNotContain DoesNotEndWith DoesNotEqual DoesNotStartWith Endswith Equals Startswith]\nThe query parameter value must match the specified regular expression pattern in PCRE format.", "title": "Matches Regex", "minLength": 1, "maxLength": 256, "x-displayname": "Matches Regex.", "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 [Contains DoesNotContain DoesNotEndWith DoesNotEqual DoesNotStartWith Endswith Equals Startswith] The query parameter value must...", "x-f5xc-description-medium": "Exclusive with [Contains DoesNotContain DoesNotEndWith DoesNotEqual DoesNotStartWith Endswith Equals Startswith] The query parameter value must match the specified regular expression pattern in PCRE format.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "minLength": 1, "maxLength": 256, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "Contains", "DoesNotContain", "DoesNotEndWith", "DoesNotEqual", "DoesNotStartWith", "Endswith", "Equals", "Startswith" ] }, "Startswith": { "type": "string", "description": "Exclusive with [Contains DoesNotContain DoesNotEndWith DoesNotEqual DoesNotStartWith Endswith Equals MatchRegex]\nThe query parameter value must begin with the specified value.", "title": "Starts With", "x-displayname": "Starts With.", "x-f5xc-description-short": "Exclusive with [Contains DoesNotContain DoesNotEndWith DoesNotEqual DoesNotStartWith Endswith Equals MatchRegex] The query parameter value must...", "x-f5xc-description-medium": "Exclusive with [Contains DoesNotContain DoesNotEndWith DoesNotEqual DoesNotStartWith Endswith Equals MatchRegex] The query parameter value must begin with the specified value.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "Contains", "DoesNotContain", "DoesNotEndWith", "DoesNotEqual", "DoesNotStartWith", "Endswith", "Equals", "MatchRegex" ] } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cdn_cache_ruleQueryParamCacheOperator", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cdn_cache_ruleQueryParamCacheOperator\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cdn", "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" } } }, "cdn_cache_ruleReplaceRequest": { "type": "object", "description": "This is the input message of the 'Replace' RPC.", "title": "ReplaceRequest is used to replace contents of a cdn_cache_rule", "x-displayname": "Replace Request.", "x-ves-proto-message": "ves.io.schema.cdn_cache_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/schemacdn_cache_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 cdn_cache_ruleReplaceRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cdn_cache_ruleReplaceRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cdn", "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" } } }, "cdn_cache_ruleReplaceResponse": { "type": "object", "x-ves-proto-message": "ves.io.schema.cdn_cache_rule.ReplaceResponse", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cdn_cache_ruleReplaceResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cdn_cache_ruleReplaceResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cdn", "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" } } }, "schemacdn_cache_ruleCreateSpecType": { "type": "object", "description": "Shape of the CDN loadbalancer specification.", "title": "CreateSpecType", "x-displayname": "Create CDN cache rule.", "x-ves-proto-message": "ves.io.schema.cdn_cache_rule.CreateSpecType", "properties": { "cache_rules": { "allOf": [ { "$ref": "#/components/schemas/cdn_cache_ruleCDNCacheRule" } ], "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Shape of the CDN loadbalancer specification.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for schemacdn_cache_ruleCreateSpecType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemacdn_cache_ruleCreateSpecType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cdn", "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" } } }, "schemacdn_cache_ruleGetSpecType": { "type": "object", "description": "Shape of the CDN loadbalancer specification.", "title": "GetSpecType", "x-displayname": "GET CDN cache rule.", "x-ves-proto-message": "ves.io.schema.cdn_cache_rule.GetSpecType", "properties": { "cache_rules": { "allOf": [ { "$ref": "#/components/schemas/cdn_cache_ruleCDNCacheRule" } ], "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Shape of the CDN loadbalancer specification.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for schemacdn_cache_ruleGetSpecType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemacdn_cache_ruleGetSpecType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cdn", "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" } } }, "schemacdn_cache_ruleReplaceSpecType": { "type": "object", "description": "Shape of the CDN loadbalancer specification.", "title": "ReplaceSpecType", "x-displayname": "Replace CDN cache rule.", "x-ves-proto-message": "ves.io.schema.cdn_cache_rule.ReplaceSpecType", "properties": { "cache_rules": { "allOf": [ { "$ref": "#/components/schemas/cdn_cache_ruleCDNCacheRule" } ], "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Shape of the CDN loadbalancer specification.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for schemacdn_cache_ruleReplaceSpecType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemacdn_cache_ruleReplaceSpecType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cdn", "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" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for apiHttpBody\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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_yaml": "# Minimal example for app_typeAPIEPCategory\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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_yaml": "# Minimal example for app_typeAPIEPSecurityRisk\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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_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_yaml": "# Minimal example for app_typeRiskScore\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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_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_yaml": "# Minimal example for app_typeSensitiveDataType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for clusterCircuitBreaker\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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_yaml": "# Minimal example for clusterEndpointSelectionPolicy\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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-08-20T09:12:47+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_yaml": "# Minimal example for clusterEndpointSubsetSelectorType\nmetadata:\n name: example\n namespace: default\nspec:\n keys: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"keys\": \"value\"\n }\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" } } }, "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_yaml": "# Minimal example for clusterHttp2ProtocolOptions\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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_yaml": "# Minimal example for clusterLoadbalancerAlgorithm\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for clusterOutlierDetectionType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for common_cdnCDNControllerStatus\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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_yaml": "# Minimal example for common_cdnCDNLoadbalancerDeploymentStatus\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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_yaml": "# Minimal example for common_cdnCDNSiteDeploymentStatus\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for common_cdnCDNSiteStatus\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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_yaml": "# Minimal example for common_securityBotAdvancedMobileSDKConfigType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "certificates", "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" } } }, "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_yaml": "# Minimal example for common_securityBotDefenseAdvancedType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for common_securityMalwareProtectionPolicy\nmetadata:\n name: example\n namespace: default\nspec:\n malware_protection_rules: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"malware_protection_rules\": \"value\"\n }\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" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for common_securityMalwareProtectionRule\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for common_wafAPIEndpointProtectionRule\nmetadata:\n name: example\n namespace: default\nspec:\n api_endpoint_path: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"api_endpoint_path\": \"value\"\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for common_wafAPIGroupProtectionRule\nmetadata:\n name: example\n namespace: default\nspec:\n base_path: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"base_path\": \"value\"\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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_yaml": "# Minimal example for common_wafAPIProtectionRuleAction\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for common_wafAPIProtectionRules\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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": "application", "multi_tenant_pattern": "per-tenant" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for http_loadbalancerAPIGroupsApiep\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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_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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for http_loadbalancerAdvancedOptionsType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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_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_yaml": "# Minimal example for http_loadbalancerApiInventorySchemaQueryType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+00:00" } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for http_loadbalancerApiKey", "required_fields": [ "key" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for http_loadbalancerApiKey\nmetadata:\n name: example\n namespace: default\nspec:\n key: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"key\": \"value\"\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_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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for http_loadbalancerApiTesting\nmetadata:\n name: example\n namespace: default\nspec:\n domains: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"domains\": \"value\"\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_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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for http_loadbalancerAssignAPIDefinitionReq\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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_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_yaml": "# Minimal example for http_loadbalancerAssignAPIDefinitionResp\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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_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": "MySecureP@ssw0rd123!", "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-08-20T09:12:47+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_yaml": "# Minimal example for http_loadbalancerBasicAuthentication\nmetadata:\n name: example\n namespace: default\nspec:\n user: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"user\": \"value\"\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_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": "[REDACTED_API_TOKEN]", "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_yaml": "# Minimal example for http_loadbalancerBearer\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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_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_yaml": "# Minimal example for http_loadbalancerCachingPolicy\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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_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_yaml": "# Minimal example for http_loadbalancerCreateResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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_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-resource", "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-08-20T09:12:47+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_yaml": "# Minimal example for http_loadbalancerCredentials\nmetadata:\n name: example\n namespace: default\nspec:\n credential_name: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"credential_name\": \"value\"\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_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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for http_loadbalancerDeleteRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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_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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for http_loadbalancerGetAPIEndpointsForGroupsReq\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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_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-08-20T09:12:47+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_yaml": "# Minimal example for http_loadbalancerGetAPIEndpointsForGroupsRsp\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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_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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for http_loadbalancerGetAPIEndpointsSchemaUpdatesReq\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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_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_yaml": "# Minimal example for http_loadbalancerGetAPIEndpointsSchemaUpdatesResp\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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_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_yaml": "# Minimal example for http_loadbalancerGetDnsInfoResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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_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-08-20T09:12:47+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 http_loadbalancerGetResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for http_loadbalancerGetResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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_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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for http_loadbalancerGetSecurityConfigReq\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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_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-08-20T09:12:47+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_yaml": "# Minimal example for http_loadbalancerHTTPLoadBalancerList\nmetadata:\n name: example\n namespace: default\nspec:\n http_loadbalancer: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"http_loadbalancer\": \"value\"\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_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-08-20T09:12:47+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_yaml": "# Minimal example for http_loadbalancerHashPolicyListType\nmetadata:\n name: example\n namespace: default\nspec:\n hash_policy: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"hash_policy\": \"value\"\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_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-08-20T09:12:47+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_yaml": "# Minimal example for http_loadbalancerL7DDoSProtectionSettings\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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_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_yaml": "# Minimal example for http_loadbalancerListAvailableAPIDefinitionsResp\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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_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-08-20T09:12:47+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_yaml": "# Minimal example for http_loadbalancerListResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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_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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for http_loadbalancerListResponseItem\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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_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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for http_loadbalancerLoginEndpoint\nmetadata:\n name: example\n namespace: default\nspec:\n path: value\n token_response_key: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"path\": \"value\",\n \"token_response_key\": \"value\"\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_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-08-20T09:12:47+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_yaml": "# Minimal example for http_loadbalancerOriginServerSubsetRuleListType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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_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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for http_loadbalancerProxyTypeHttps\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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_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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for http_loadbalancerProxyTypeHttpsAutoCerts\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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_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": true, "create": true, "update": false, "read": false } }, "spec": { "allOf": [ { "$ref": "#/components/schemas/viewshttp_loadbalancerReplaceSpecType" } ], "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_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_yaml": "# Minimal example for http_loadbalancerReplaceResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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_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 = 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 = at route level, if it is configured at virtual-host level.", "x-f5xc-description-medium": "Disables append of x-F5 Distributed Cloud-location = 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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for http_loadbalancerRouteSimpleAdvancedOptions\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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_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_yaml": "# Minimal example for http_loadbalancerRouteTypeCustomRoute\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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_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-08-20T09:12:47+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_yaml": "# Minimal example for http_loadbalancerRouteTypeDirectResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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_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-08-20T09:12:47+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_yaml": "# Minimal example for http_loadbalancerRouteTypeRedirect\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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_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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for http_loadbalancerRouteTypeSimple\nmetadata:\n name: example\n namespace: default\nspec:\n origin_pools: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"origin_pools\": \"value\"\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_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-08-20T09:12:47+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_yaml": "# Minimal example for http_loadbalancerSensitiveDataDisclosureRules\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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_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_yaml": "# Minimal example for http_loadbalancerSensitiveDataTypes\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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_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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for http_loadbalancerSetL7DDoSRPSThresholdReq\nmetadata:\n name: example\n namespace: default\nspec:\n name: value\n namespace: value\n rps_threshold: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"name\": \"value\",\n \"namespace\": \"value\",\n \"rps_threshold\": \"value\"\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_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_yaml": "# Minimal example for http_loadbalancerSetL7DDoSRPSThresholdRsp\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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_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_yaml": "# Minimal example for http_loadbalancerSingleLoadBalancerAppSetting\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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_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_yaml": "# Minimal example for http_loadbalancerStatusObject\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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_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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for http_loadbalancerUpdateAPIEndpointsSchemasReq\nmetadata:\n name: example\n namespace: default\nspec:\n api_endpoints_schema_updates: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"api_endpoints_schema_updates\": \"value\"\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_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_yaml": "# Minimal example for http_loadbalancerUpdateAPIEndpointsSchemasResp\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for ioschemaPortMatcherType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for origin_poolOriginPoolAdvancedOptions\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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_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_yaml": "# Minimal example for origin_poolOriginPoolDefaultSubset\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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_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-08-20T09:12:47+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_yaml": "# Minimal example for origin_poolOriginPoolSubsets\nmetadata:\n name: example\n namespace: default\nspec:\n endpoint_subsets: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"endpoint_subsets\": \"value\"\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_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-08-20T09:12:47+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_yaml": "# Minimal example for origin_poolOriginServerCBIPService\nmetadata:\n name: example\n namespace: default\nspec:\n service_name: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"service_name\": \"value\"\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_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-08-20T09:12:47+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_yaml": "# Minimal example for origin_poolOriginServerConsulService\nmetadata:\n name: example\n namespace: default\nspec:\n service_name: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"service_name\": \"value\"\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_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_yaml": "# Minimal example for origin_poolOriginServerCustomEndpoint\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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_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-08-20T09:12:47+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_yaml": "# Minimal example for origin_poolOriginServerK8SService\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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_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-08-20T09:12:47+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_yaml": "# Minimal example for origin_poolOriginServerPrivateIP\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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_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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for origin_poolOriginServerPrivateName\nmetadata:\n name: example\n namespace: default\nspec:\n dns_name: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"dns_name\": \"value\"\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_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_yaml": "# Minimal example for origin_poolOriginServerType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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_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-08-20T09:12:47+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_yaml": "# Minimal example for origin_poolOriginServerVirtualNetworkIP\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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_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-08-20T09:12:47+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_yaml": "# Minimal example for origin_poolOriginServerVirtualNetworkName\nmetadata:\n name: example\n namespace: default\nspec:\n dns_name: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"dns_name\": \"value\"\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_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_yaml": "# Minimal example for origin_poolProtocolType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for policyOriginServerSubsetRule\nmetadata:\n name: example\n namespace: default\nspec:\n origin_server_subsets_action: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"origin_server_subsets_action\": \"value\"\n }\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" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for routeBotDefenseJavascriptInjectionType\nmetadata:\n name: example\n namespace: default\nspec:\n javascript_tags: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"javascript_tags\": \"value\"\n }\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" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for routeCookieForHashing\nmetadata:\n name: example\n namespace: default\nspec:\n name: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"name\": \"value\"\n }\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" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for routeHashPolicyType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for routeJavaScriptTag\nmetadata:\n name: example\n namespace: default\nspec:\n javascript_url: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"javascript_url\": \"value\"\n }\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" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for routeQueryParamsSimpleRoute\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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. \"

Access Denied

\". 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-08-20T09:12:47+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-08-20T09:12:47+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": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for routeRouteDirectResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for routeRouteRedirect\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for routeTagAttribute\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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_yaml": "# Minimal example for routeTagAttributeName\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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_yaml": "# Minimal example for routeWebsocketConfigType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for schemaBufferConfigType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "certificates", "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" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaCookieValueOption\nmetadata:\n name: example\n namespace: default\nspec:\n name: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"name\": \"value\"\n }\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" } } }, "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_yaml": "# Minimal example for schemaDenominatorType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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-08-20T09:12:47+00:00", "x-f5xc-conflicts-with": [ "any_domain" ] } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for schemaDomainMatcherType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemaDomainMatcherType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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_yaml": "# Minimal example for schemaFractionalPercent\nmetadata:\n name: example\n namespace: default\nspec:\n numerator: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"numerator\": \"value\"\n }\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" } } }, "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_yaml": "# Minimal example for schemaHeaderTransformationType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaRegexMatchRewrite\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for schemaRetryBackOff\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaRetryPolicyType\nmetadata:\n name: example\n namespace: default\nspec:\n retry_condition: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"retry_condition\": \"value\"\n }\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" } } }, "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_yaml": "# Minimal example for schemaRoutingPriority\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaSetCookieValueOption\nmetadata:\n name: example\n namespace: default\nspec:\n name: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"name\": \"value\"\n }\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" } } }, "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_yaml": "# Minimal example for schemaTLSCoalescingOptions\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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_yaml": "# Minimal example for schemaUpstreamConnPoolReuseType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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_yaml": "# Minimal example for schemaclusterHttp1ProtocolOptions\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "schemarouteJavaScriptLocation": { "type": "string", "description": "All inside networks.\n\nInsert JavaScript after tag\nInsert JavaScript after 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 tag Insert JavaScript after tag.", "x-f5xc-description-medium": "All inside networks. Insert JavaScript after tag Insert JavaScript after tag. Insert JavaScript before first tag.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for schemarouteJavaScriptLocation", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemarouteJavaScriptLocation\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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_yaml": "# Minimal example for schemavirtual_hostHttp1ProtocolOptions\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for schemavirtual_host_dns_infoGlobalSpecType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for viewsAdvertiseCustom\nmetadata:\n name: example\n namespace: default\nspec:\n advertise_where: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"advertise_where\": \"value\"\n }\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" } } }, "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_yaml": "# Minimal example for viewsAdvertisePublic\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for viewsApiEndpointWithSchema\nmetadata:\n name: example\n namespace: default\nspec:\n schema_json: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"schema_json\": \"value\"\n }\n}" }, "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-08-20T09:12:47+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_yaml": "# Minimal example for viewsApiOperation\nmetadata:\n name: example\n namespace: default\nspec:\n path: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"path\": \"value\"\n }\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" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+00:00" } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for viewsInternetVIPInfo", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for viewsInternetVIPInfo\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+00:00" } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for viewsInternetVIPListenerStatusType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for viewsInternetVIPListenerStatusType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for viewsInternetVIPStatus\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+00:00" } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for viewsInternetVIPTargetGroupStatusType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for viewsInternetVIPTargetGroupStatusType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for viewsOriginPoolListType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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": "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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for viewsOriginPoolWithWeight\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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": "networking", "multi_tenant_pattern": "per-tenant" } } }, "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_yaml": "# Minimal example for viewsSiteLocator\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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_yaml": "# Minimal example for viewsSiteNetwork\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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_yaml": "# Minimal example for viewsSiteNetworkSpecifiedVIP\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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_yaml": "# Minimal example for viewsSnatPoolConfiguration\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "certificates", "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" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for viewsWhereSite\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for viewsWhereType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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_yaml": "# Minimal example for viewsWhereVK8SService\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for viewsWhereVirtualNetwork\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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_yaml": "# Minimal example for viewsWhereVirtualSite\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for viewsWhereVirtualSiteSpecifiedVIP\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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 = 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)" } ] }, "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-08-20T09:12:47+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)" } ] }, "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 . 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-08-20T09:12:47+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)" } ] }, "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-08-20T09:12:47+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 } ] }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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)" } ] }, "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-08-20T09:12:47+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')" } ] }, "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-08-20T09:12:47+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" } ] }, "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-08-20T09:12:47+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)" } ] }, "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": "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-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-field-examples": { "spec.domains[]": "example.com" }, "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-08-20T09:12:47+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-08-20T09:12:47+00:00" } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for viewshttp_loadbalancerDomainConfiguration", "required_fields": [ "credentials", "domain" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for viewshttp_loadbalancerDomainConfiguration\nmetadata:\n name: example\n namespace: default\nspec:\n credentials: value\n domain: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"credentials\": \"value\",\n \"domain\": \"value\"\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" } } }, "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 = 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)" } ] }, "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-08-20T09:12:47+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)" } ] }, "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 . 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-08-20T09:12:47+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)" } ] }, "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-08-20T09:12:47+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 } ] }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-requires": [ { "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)" } ] }, "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-08-20T09:12:47+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')" } ] }, "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-08-20T09:12:47+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" } ] }, "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-08-20T09:12:47+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)" } ] }, "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": "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-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_yaml": "# Minimal example for viewshttp_loadbalancerMirrorPolicyType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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 = 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)" } ] }, "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-08-20T09:12:47+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)" } ] }, "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 . 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-08-20T09:12:47+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)" } ] }, "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-08-20T09:12:47+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 } ] }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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)" } ] }, "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-08-20T09:12:47+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')" } ] }, "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-08-20T09:12:47+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" } ] }, "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-08-20T09:12:47+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)" } ] }, "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": "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-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_yaml": "# Minimal example for viewshttp_loadbalancerRouteType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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.", "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-08-20T09:12:47+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 } ] }, "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_yaml": "# Minimal example for viewsorigin_poolGlobalSpecType\nmetadata:\n name: example\n namespace: default\nspec:\n origin_servers: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"origin_servers\": \"value\"\n }\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_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-08-20T09:12:47+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_yaml": "# Minimal example for virtual_hostClientIPHeaders\nmetadata:\n name: example\n namespace: default\nspec:\n client_ip_headers: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"client_ip_headers\": \"value\"\n }\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_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-08-20T09:12:47+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-08-20T09:12:47+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": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for virtual_hostCompressionType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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_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_yaml": "# Minimal example for virtual_hostHttpProtocolOptions\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } } }, "responses": {}, "parameters": {}, "requestBodies": {} } }, "ce_management": { "openapi": "3.0.3", "info": { "title": "Ce Management", "description": "Customer edge node lifecycle through secure enrollment tokens and downloadable deployment images. Network connectivity options span exclusive, common, and administrative pathways with DHCP address pools supporting both IPv4 and IPv6. Bulk grouping consolidates configuration across distributed locations. Compatibility verification runs before software updates, with rollout tracking for version progression across the infrastructure.", "version": "4.0.0", "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": "Customer edge node lifecycle through secure enrollment tokens and downloadable deployment images. Network connectivity options span exclusive, common, and administrative pathways with DHCP address pools supporting both IPv4 and IPv6. Bulk grouping consolidates configuration across distributed locations. Compatibility verification runs before software updates, with rollout tracking for version progression across the infrastructure.", "x-f5xc-summary": "Token-based provisioning with image downloads and pre-upgrade validation. Fleet grouping enables bulk operations across distributed locations.", "x-f5xc-cli-domain": "ce_management", "externalDocs": { "url": "https://docs.cloud.f5.com/docs/how-to/site-management", "description": "F5 XC Documentation - Customer Edge Management" }, "x-f5xc-api-reference-url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/ce_management/", "x-f5xc-best-practices": { "common_errors": [ { "code": 400, "message": "Invalid request body", "resolution": "Validate JSON structure and required fields before submission", "prevention": "Use schema validation from OpenAPI spec" }, { "code": 401, "message": "Authentication failed", "resolution": "Verify API token is valid and not expired", "prevention": "Use environment variables for token management" }, { "code": 403, "message": "Permission denied", "resolution": "Check user role and namespace permissions", "prevention": "Verify RBAC policies before operations" }, { "code": 404, "message": "Resource not found", "resolution": "Verify resource name and namespace exist", "prevention": "List resources before attempting operations" }, { "code": 409, "message": "Resource already exists", "resolution": "Use unique name or delete existing resource", "prevention": "Check existence before creation" }, { "code": 429, "message": "Rate limit exceeded", "resolution": "Implement exponential backoff and retry logic", "prevention": "Batch operations and add delays between requests" } ], "security_notes": [ "Always use HTTPS for all API communications", "Store API tokens securely, never in source code", "Rotate API tokens regularly following security policies" ], "performance_tips": [ "Use pagination for large result sets", "Batch related operations when possible", "Cache read-only responses appropriately" ] }, "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "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": "config" }, { "name": "data" }, { "name": "maurice" }, { "name": "register" } ], "paths": { "/api/config/namespaces/{metadata.namespace}/fleets": { "post": { "summary": "Create Fleet.", "description": "Create fleet will create a fleet object in 'system' namespace of the user.", "operationId": "ves.io.schema.fleet.API.Create", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/fleetCreateResponse" } } } }, "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/fleetCreateRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/ce_management/" }, "x-ves-proto-rpc": "ves.io.schema.fleet.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": [ "Fleet resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "fleet" ] }, "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": [ "fleet" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "Fleet", "x-ves-proto-service": "ves.io.schema.fleet.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{metadata.namespace}/fleets/{metadata.name}": { "put": { "summary": "Replace Fleet.", "description": "Replace fleet will replace the contents of given fleet object.", "operationId": "ves.io.schema.fleet.API.Replace", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/fleetReplaceResponse" } } } }, "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/fleetReplaceRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/ce_management/" }, "x-ves-proto-rpc": "ves.io.schema.fleet.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": [ "fleet" ] }, "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": [ "fleet" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 800, "p95_ms": 2500, "p99_ms": 6000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "Fleet", "x-ves-proto-service": "ves.io.schema.fleet.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{namespace}/fleets": { "get": { "summary": "List Fleet.", "description": "List the set of fleet in a namespace.", "operationId": "ves.io.schema.fleet.API.List", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/fleetListResponse" } } } }, "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 fleet.", "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/ce_management/" }, "x-ves-proto-rpc": "ves.io.schema.fleet.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": "Fleet", "x-ves-proto-service": "ves.io.schema.fleet.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{namespace}/fleets/{name}": { "get": { "summary": "GET Fleet", "description": "GET fleet will GET fleet object from system namespace.", "operationId": "ves.io.schema.fleet.API.Get", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/fleetGetResponse" } } } }, "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/ce_management/" }, "x-ves-proto-rpc": "ves.io.schema.fleet.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 Fleet.", "description": "DELETE the specified fleet.", "operationId": "ves.io.schema.fleet.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/fleetDeleteRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/ce_management/" }, "x-ves-proto-rpc": "ves.io.schema.fleet.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": [ "fleet", "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": [ "fleet", "contained_resources" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 500, "p95_ms": 1500, "p99_ms": 4000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "Fleet", "x-ves-proto-service": "ves.io.schema.fleet.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{namespace}/fleets/{name}/set-log-anonymization": { "post": { "summary": "Log Anonymization Mode.", "description": "Set log anonymization choice for the fleet Object.", "operationId": "ves.io.schema.fleet.CustomAPI.SetLogAnonymization", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/fleetSetLogAnonymizationResponse" } } } }, "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 of the Fleet object\n\nNamespace of the Fleet object.", "in": "path", "required": true, "x-displayname": "Fleet Namespace.", "schema": { "type": "string" } }, { "name": "name", "description": "Name of the Fleet object\n\nName of the Fleet object.", "in": "path", "required": true, "x-displayname": "Fleet Name.", "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/fleetSetLogAnonymizationRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/ce_management/" }, "x-ves-proto-rpc": "ves.io.schema.fleet.CustomAPI.SetLogAnonymization", "tags": [ "config" ], "x-f5xc-operation-metadata": { "purpose": "Logging configuration for audit and analysis", "required_fields": [ "metadata.name", "metadata.namespace", "path.name", "path.namespace" ], "optional_fields": [], "field_docs": {}, "conditions": { "prerequisites": [ "Active namespace" ], "postconditions": [ "Set-log-anonymization resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "set-log-anonymization" ] }, "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": [ "set-log-anonymization" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "Fleet", "x-ves-proto-service": "ves.io.schema.fleet.CustomAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/config/namespaces/{namespace}/module_management/settings": { "get": { "summary": "Module Management Settings.", "description": "Receive the module settings.", "operationId": "ves.io.schema.module_management.ModuleManagementAPI.GetModuleManagementSettings", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/module_managementModuleManagementResponse" } } } }, "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 this item belongs to.", "in": "path", "required": true, "x-displayname": "Namespace", "schema": { "type": "string" }, "x-f5xc-example": "ns1" } ], "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/ce_management/" }, "x-ves-proto-rpc": "ves.io.schema.module_management.ModuleManagementAPI.GetModuleManagementSettings", "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-discovered-response-time-ms": 167.53, "x-discovered-sample-size": 1, "x-f5xc-discovered-response-time": { "p50_ms": 167.53, "p95_ms": 335.06, "p99_ms": 502.59, "sample_count": 1, "source": "discovery", "last_measured": "2025-12-20T19:39:20.211392+00:00" } }, "x-displayname": "Module Management.", "x-ves-proto-service": "ves.io.schema.module_management.ModuleManagementAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/config/namespaces/{metadata.namespace}/network_interfaces": { "post": { "summary": "Create Network Interface.", "description": "Network interface represents configuration of a network device.\nIt is created by users in system namespace.", "operationId": "ves.io.schema.network_interface.API.Create", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/network_interfaceCreateResponse" } } } }, "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/network_interfaceCreateRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/ce_management/" }, "x-ves-proto-rpc": "ves.io.schema.network_interface.API.Create", "tags": [ "config" ], "x-f5xc-operation-metadata": { "purpose": "Network configuration for connectivity", "required_fields": [ "metadata.name", "metadata.namespace", "path.metadata.namespace" ], "optional_fields": [], "field_docs": {}, "conditions": { "prerequisites": [ "Active namespace" ], "postconditions": [ "Network-interface resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "network-interface" ] }, "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": [ "network-interface" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "Network Interface.", "x-ves-proto-service": "ves.io.schema.network_interface.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{metadata.namespace}/network_interfaces/{metadata.name}": { "put": { "summary": "Replace Network Interface.", "description": "Network interface represents configuration of a network device.\nReplace network interface will replace the contents of given network interface object.", "operationId": "ves.io.schema.network_interface.API.Replace", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/network_interfaceReplaceResponse" } } } }, "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/network_interfaceReplaceRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/ce_management/" }, "x-ves-proto-rpc": "ves.io.schema.network_interface.API.Replace", "tags": [ "config" ], "x-f5xc-operation-metadata": { "purpose": "Network configuration for connectivity", "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": [ "network-interface" ] }, "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": [ "network-interface" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 800, "p95_ms": 2500, "p99_ms": 6000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "Network Interface.", "x-ves-proto-service": "ves.io.schema.network_interface.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{namespace}/network_interfaces": { "get": { "summary": "List Network Interface.", "description": "List the set of network_interface in a namespace.", "operationId": "ves.io.schema.network_interface.API.List", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/network_interfaceListResponse" } } } }, "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 network_interface.", "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/ce_management/" }, "x-ves-proto-rpc": "ves.io.schema.network_interface.API.List", "tags": [ "config" ], "x-f5xc-operation-metadata": { "purpose": "Network configuration for connectivity", "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": "Network Interface.", "x-ves-proto-service": "ves.io.schema.network_interface.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{namespace}/network_interfaces/{name}": { "get": { "summary": "GET Network Interface.", "description": "GET network interface from system namespace.", "operationId": "ves.io.schema.network_interface.API.Get", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/network_interfaceGetResponse" } } } }, "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/ce_management/" }, "x-ves-proto-rpc": "ves.io.schema.network_interface.API.Get", "tags": [ "config" ], "x-f5xc-operation-metadata": { "purpose": "Network configuration for connectivity", "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 Network Interface.", "description": "DELETE the specified network_interface.", "operationId": "ves.io.schema.network_interface.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/network_interfaceDeleteRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/ce_management/" }, "x-ves-proto-rpc": "ves.io.schema.network_interface.API.Delete", "tags": [ "config" ], "x-f5xc-operation-metadata": { "purpose": "Network configuration for connectivity", "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": [ "network-interface", "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": [ "network-interface", "contained_resources" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 500, "p95_ms": 1500, "p99_ms": 4000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "Network Interface.", "x-ves-proto-service": "ves.io.schema.network_interface.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/register/namespaces/system/get-image-download-url": { "post": { "summary": "GET Image Download URL.", "description": "Returns image download URL for each provider.", "operationId": "ves.io.schema.registration.CustomAPI.GetImageDownloadUrl", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/registrationGetImageDownloadUrlResp" } } } }, "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/registrationGetImageDownloadUrlReq" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/ce_management/" }, "x-ves-proto-rpc": "ves.io.schema.registration.CustomAPI.GetImageDownloadUrl", "tags": [ "register" ], "x-f5xc-operation-metadata": { "purpose": "Retrieve signed Customer Edge image download URLs", "required_fields": [ "provider" ], "optional_fields": [], "field_docs": {}, "conditions": { "prerequisites": [ "Active namespace" ], "postconditions": [ "Requested data returned", "Tenant state unchanged" ] }, "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-operation-role": "query", "x-f5xc-terraform-name": "site_image", "x-f5xc-required-fields": [ "provider" ], "x-f5xc-danger-level": "low", "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "Registration.", "x-ves-proto-service": "ves.io.schema.registration.CustomAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/register/namespaces/system/get-registrations-by-token": { "post": { "summary": "GET Registration UID by Site Token.", "description": "Returns list of registration uids that are using particular site token.", "operationId": "ves.io.schema.registration.CustomAPI.GetRegistrationsBySiteToken", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/registrationGetRegistrationsBySiteTokenResp" } } } }, "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/registrationGetRegistrationsBySiteTokenReq" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/ce_management/" }, "x-ves-proto-rpc": "ves.io.schema.registration.CustomAPI.GetRegistrationsBySiteToken", "tags": [ "register" ], "x-f5xc-operation-metadata": { "purpose": "Authentication credential for access control", "required_fields": [ "metadata.name", "metadata.namespace" ], "optional_fields": [], "field_docs": {}, "conditions": { "prerequisites": [ "Active namespace" ], "postconditions": [ "Get-registrations-by-token resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "get-registrations-by-token" ] }, "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": [ "get-registrations-by-token" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "Registration.", "x-ves-proto-service": "ves.io.schema.registration.CustomAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/register/namespaces/system/suggest-values": { "post": { "summary": "Suggest Values.", "description": "Returns suggested values for the specified field in the given Create/Replace/Custom request.", "operationId": "ves.io.schema.registration.CustomAPI.SuggestValues", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/schemaregistrationSuggestValuesResp" } } } }, "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/registrationSuggestValuesReq" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/ce_management/" }, "x-ves-proto-rpc": "ves.io.schema.registration.CustomAPI.SuggestValues", "tags": [ "register" ], "x-f5xc-operation-metadata": { "purpose": "Resource creation operation", "required_fields": [ "metadata.name", "metadata.namespace" ], "optional_fields": [], "field_docs": {}, "conditions": { "prerequisites": [ "Active namespace" ], "postconditions": [ "Suggest-value resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "suggest-value" ] }, "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": [ "suggest-value" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "Registration.", "x-ves-proto-service": "ves.io.schema.registration.CustomAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/register/namespaces/{metadata.namespace}/registrations": { "post": { "summary": "Create Registration.", "description": "VPM creates registration using this message, never used by users.", "operationId": "ves.io.schema.registration.API.Create", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/registrationCreateResponse" } } } }, "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/registrationCreateRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/ce_management/" }, "x-ves-proto-rpc": "ves.io.schema.registration.API.Create", "tags": [ "register" ], "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": [ "Registration resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "registration" ] }, "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": [ "registration" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "Registration.", "x-ves-proto-service": "ves.io.schema.registration.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/register/namespaces/{metadata.namespace}/registrations/{metadata.name}": { "put": { "summary": "Replace Registration.", "description": "NO fields are allowed to be replaced.", "operationId": "ves.io.schema.registration.API.Replace", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/registrationReplaceResponse" } } } }, "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/registrationReplaceRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/ce_management/" }, "x-ves-proto-rpc": "ves.io.schema.registration.API.Replace", "tags": [ "register" ], "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": [ "registration" ] }, "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": [ "registration" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 800, "p95_ms": 2500, "p99_ms": 6000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "Registration.", "x-ves-proto-service": "ves.io.schema.registration.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/register/namespaces/{namespace}/listregistrationsbystate": { "post": { "summary": "List Registrations By State.", "description": "API endpoint for returning Registrations by status, e.g APPROVED, NEW, or RETIRED.", "operationId": "ves.io.schema.registration.CustomAPI.ListRegistrationsByState", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/registrationListResponse" } } } }, "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\nRegistration namespace, only \"system\" namespaces is accepted.", "in": "path", "required": true, "x-displayname": "Namespace", "schema": { "type": "string" }, "x-f5xc-example": "system" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/registrationListStateReq" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/ce_management/" }, "x-ves-proto-rpc": "ves.io.schema.registration.CustomAPI.ListRegistrationsByState", "tags": [ "register" ], "x-f5xc-operation-metadata": { "purpose": "List Customer Edge registrations by state", "required_fields": [ "namespace", "state" ], "optional_fields": [], "field_docs": {}, "conditions": { "prerequisites": [ "Active namespace" ], "postconditions": [ "Requested data returned", "Tenant state unchanged" ] }, "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-operation-role": "collection", "x-f5xc-terraform-name": "site_registrations_by_state", "x-f5xc-required-fields": [ "namespace", "state" ], "x-f5xc-danger-level": "low", "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "Registration.", "x-ves-proto-service": "ves.io.schema.registration.CustomAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/register/namespaces/{namespace}/registration/{name}/approve": { "post": { "summary": "Registration Approve.", "description": "RegistrationApprove approved pending registration and it can also decommission by changing state to RETIRED.", "operationId": "ves.io.schema.registration.CustomAPI.RegistrationApprove", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/registrationObjectChangeResp" } } } }, "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\nRegistration namespace, only \"system\" namespaces is accepted.", "in": "path", "required": true, "x-displayname": "Namespace", "schema": { "type": "string" }, "x-f5xc-example": "system" }, { "name": "name", "description": "Name\n\nx-required\nRegistration name (= \"r-\" + uid) to approve. Registration name is taken from listing pending registrations.", "in": "path", "required": true, "x-displayname": "Name", "schema": { "type": "string" }, "x-f5xc-example": "r-00000000-0000-4000-8000-946fdf7ca6a3" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/registrationApprovalReq" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/ce_management/" }, "x-ves-proto-rpc": "ves.io.schema.registration.CustomAPI.RegistrationApprove", "tags": [ "register" ], "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": [ "Approve resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "approve" ] }, "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": [ "approve" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "Registration.", "x-ves-proto-service": "ves.io.schema.registration.CustomAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/register/namespaces/{namespace}/registrations": { "get": { "summary": "List Registration.", "description": "List the set of registration in a namespace.", "operationId": "ves.io.schema.registration.CustomAPI.List", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/registrationListResponse" } } } }, "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 registration.", "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/ce_management/" }, "x-ves-proto-rpc": "ves.io.schema.registration.CustomAPI.List", "tags": [ "register" ], "x-f5xc-operation-metadata": { "purpose": "List Customer Edge registrations", "required_fields": [ "namespace" ], "optional_fields": [], "field_docs": {}, "conditions": { "prerequisites": [ "Active namespace" ], "postconditions": [ "Requested data returned", "Tenant state unchanged" ] }, "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-operation-role": "collection", "x-f5xc-terraform-name": "site_registrations", "x-f5xc-required-fields": [ "namespace" ], "x-f5xc-danger-level": "low", "x-discovered-response-time-ms": 149.92, "x-discovered-sample-size": 1, "x-f5xc-discovered-response-time": { "p50_ms": 149.92, "p95_ms": 299.84, "p99_ms": 449.76, "sample_count": 1, "source": "discovery", "last_measured": "2025-12-20T19:39:20.211392+00:00" } }, "x-displayname": "Registration.", "x-ves-proto-service": "ves.io.schema.registration.CustomAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/register/namespaces/{namespace}/registrations/{name}": { "get": { "summary": "GET Registration.", "description": "GET registration specification.", "operationId": "ves.io.schema.registration.CustomAPI.Get", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/registrationGetResponse" } } } }, "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/ce_management/" }, "x-ves-proto-rpc": "ves.io.schema.registration.CustomAPI.Get", "tags": [ "register" ], "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 Registration.", "description": "DELETE the specified registration.", "operationId": "ves.io.schema.registration.CustomAPI.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" }, { "name": "fail_if_referred", "description": "Fail the DELETE operation if this object is being referred by other objects.", "in": "query", "required": false, "x-displayname": "Fail-If-Referred.", "schema": { "type": "boolean", "format": "boolean" } } ], "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/ce_management/" }, "x-ves-proto-rpc": "ves.io.schema.registration.CustomAPI.Delete", "tags": [ "register" ], "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": [ "registration", "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": [ "registration", "contained_resources" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 500, "p95_ms": 1500, "p99_ms": 4000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "Registration.", "x-ves-proto-service": "ves.io.schema.registration.CustomAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/register/namespaces/{namespace}/registrations_by_site/{site_name}": { "get": { "summary": "List registrations by site.", "description": "List all registration in site.", "operationId": "ves.io.schema.registration.CustomAPI.ListRegistrationsBySite", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/registrationListResponse" } } } }, "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\nRegistration namespace, only \"system\" namespaces is accepted.", "in": "path", "required": true, "x-displayname": "Namespace", "schema": { "type": "string" }, "x-f5xc-example": "system" }, { "name": "site_name", "description": "SiteName\n\nx-required\nSite name to be used for registration filtering.", "in": "path", "required": true, "x-displayname": "Site name", "schema": { "type": "string" }, "x-f5xc-example": "ce02" } ], "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/ce_management/" }, "x-ves-proto-rpc": "ves.io.schema.registration.CustomAPI.ListRegistrationsBySite", "tags": [ "register" ], "x-f5xc-operation-metadata": { "purpose": "List registrations for a Customer Edge site", "required_fields": [ "namespace", "site_name" ], "optional_fields": [], "field_docs": {}, "conditions": { "prerequisites": [ "Active namespace" ], "postconditions": [ "Requested data returned", "Tenant state unchanged" ] }, "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-operation-role": "collection", "x-f5xc-terraform-name": "site_registrations_by_site", "x-f5xc-required-fields": [ "namespace", "site_name" ], "x-f5xc-danger-level": "low", "x-discovered-response-time-ms": 159.02, "x-discovered-sample-size": 1, "x-f5xc-discovered-response-time": { "p50_ms": 159.02, "p95_ms": 318.04, "p99_ms": 477.06, "sample_count": 1, "source": "discovery", "last_measured": "2025-12-20T19:39:20.211392+00:00" } }, "x-displayname": "Registration.", "x-ves-proto-service": "ves.io.schema.registration.CustomAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/register/registerBootstrap": { "post": { "summary": "Registration Create.", "description": "Registration request to create registration is sent by the node on first boot. User never creates registration on her own.", "operationId": "ves.io.schema.registration.CustomAPI.RegistrationCreate", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/registrationObject" } } } }, "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/registrationRegistrationCreateRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/ce_management/" }, "x-ves-proto-rpc": "ves.io.schema.registration.CustomAPI.RegistrationCreate", "tags": [ "register" ], "x-f5xc-operation-metadata": { "purpose": "Resource creation operation", "required_fields": [ "metadata.name", "metadata.namespace" ], "optional_fields": [], "field_docs": {}, "conditions": { "prerequisites": [], "postconditions": [ "Registerbootstrap resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "registerBootstrap" ] }, "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": [ "registerBootstrap" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "Registration.", "x-ves-proto-service": "ves.io.schema.registration.CustomAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/register/requestConfig": { "post": { "summary": "Registration Config.", "description": "API endpoint for returning configuration for admitted registrations.\nIt will fail with known error for non-ADMITTED registration.", "operationId": "ves.io.schema.registration.CustomAPI.RegistrationConfig", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/registrationConfigResp" } } } }, "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/registrationConfigReq" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/ce_management/" }, "x-ves-proto-rpc": "ves.io.schema.registration.CustomAPI.RegistrationConfig", "tags": [ "register" ], "x-f5xc-operation-metadata": { "purpose": "Resource creation operation", "required_fields": [ "metadata.name", "metadata.namespace" ], "optional_fields": [], "field_docs": {}, "conditions": { "prerequisites": [], "postconditions": [ "Requestconfig resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "requestConfig" ] }, "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": [ "requestConfig" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "Registration.", "x-ves-proto-service": "ves.io.schema.registration.CustomAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/config/namespaces/{metadata.namespace}/usb_policys": { "post": { "summary": "Create USB policy.", "description": "Creates a new USB policy object.", "operationId": "ves.io.schema.usb_policy.API.Create", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/usb_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/usb_policyCreateRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/ce_management/" }, "x-ves-proto-rpc": "ves.io.schema.usb_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": [ "Usb-policy resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "usb-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": [ "usb-policy" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "USB policy.", "x-ves-proto-service": "ves.io.schema.usb_policy.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{metadata.namespace}/usb_policys/{metadata.name}": { "put": { "summary": "Replace USB policy.", "description": "Replaces the content of an USB policy object.", "operationId": "ves.io.schema.usb_policy.API.Replace", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/usb_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/usb_policyReplaceRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/ce_management/" }, "x-ves-proto-rpc": "ves.io.schema.usb_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": [ "usb-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": [ "usb-policy" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 800, "p95_ms": 2500, "p99_ms": 6000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "USB policy.", "x-ves-proto-service": "ves.io.schema.usb_policy.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{namespace}/usb_policys": { "get": { "summary": "List USB policy.", "description": "List the set of usb_policy in a namespace.", "operationId": "ves.io.schema.usb_policy.API.List", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/usb_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 usb_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/ce_management/" }, "x-ves-proto-rpc": "ves.io.schema.usb_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-discovered-response-time-ms": 153.28, "x-discovered-sample-size": 1, "x-f5xc-discovered-response-time": { "p50_ms": 153.28, "p95_ms": 306.56, "p99_ms": 459.84, "sample_count": 1, "source": "discovery", "last_measured": "2025-12-20T19:39:20.211392+00:00" } }, "x-displayname": "USB policy.", "x-ves-proto-service": "ves.io.schema.usb_policy.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{namespace}/usb_policys/{name}": { "get": { "summary": "GET USB policy.", "description": "GET the USB policy object.", "operationId": "ves.io.schema.usb_policy.API.Get", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/usb_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/ce_management/" }, "x-ves-proto-rpc": "ves.io.schema.usb_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 USB policy.", "description": "DELETE the specified usb_policy.", "operationId": "ves.io.schema.usb_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/usb_policyDeleteRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/ce_management/" }, "x-ves-proto-rpc": "ves.io.schema.usb_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": [ "usb-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": [ "usb-policy", "contained_resources" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 500, "p95_ms": 1500, "p99_ms": 4000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "USB policy.", "x-ves-proto-service": "ves.io.schema.usb_policy.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/maurice/namespaces/{namespace}/sites/{name}/pre_upgrade_check": { "get": { "summary": "Pre upgrade check.", "description": "API to check if site is ready for upgrade.", "operationId": "ves.io.schema.upgrade_status.UpgradeStatusCustomApi.PreUpgradeCheck", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/upgrade_statusPreUpgradeCheckResponse" } } } }, "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 upgrade status for the given namespace.", "in": "path", "required": true, "x-displayname": "Namespace", "schema": { "type": "string" }, "x-f5xc-example": "shared" }, { "name": "name", "description": "Name\nFetch upgrade status for the name of site.", "in": "path", "required": true, "x-displayname": "Site Name", "schema": { "type": "string" }, "x-f5xc-example": "blogging-app" }, { "name": "sw_version", "description": "Software version to upgrade to.", "in": "query", "required": false, "x-displayname": "SW Version to upgrade to.", "schema": { "type": "string" }, "x-f5xc-example": "crt-20241107-1123" } ], "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/ce_management/" }, "x-ves-proto-rpc": "ves.io.schema.upgrade_status.UpgradeStatusCustomApi.PreUpgradeCheck", "tags": [ "maurice" ], "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-discovered-response-time-ms": 162.78, "x-discovered-sample-size": 1, "x-f5xc-discovered-response-time": { "p50_ms": 162.78, "p95_ms": 325.56, "p99_ms": 488.34, "sample_count": 1, "source": "discovery", "last_measured": "2025-12-20T19:39:20.211392+00:00" } }, "x-displayname": "Upgrade Status.", "x-ves-proto-service": "ves.io.schema.upgrade_status.UpgradeStatusCustomApi", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/maurice/namespaces/{namespace}/sites/{name}/upgrade_status": { "get": { "summary": "GET Upgrade Status.", "description": "API to GET upgrade status of a site.", "operationId": "ves.io.schema.upgrade_status.UpgradeStatusCustomApi.GetUpgradeStatus", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/upgrade_statusGetUpgradeStatusResponse" } } } }, "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 upgrade status for the given namespace.", "in": "path", "required": true, "x-displayname": "Namespace", "schema": { "type": "string" }, "x-f5xc-example": "shared" }, { "name": "name", "description": "Name\nFetch upgrade status for the name of site.", "in": "path", "required": true, "x-displayname": "Site 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/ce_management/" }, "x-ves-proto-rpc": "ves.io.schema.upgrade_status.UpgradeStatusCustomApi.GetUpgradeStatus", "tags": [ "maurice" ], "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": "Upgrade Status.", "x-ves-proto-service": "ves.io.schema.upgrade_status.UpgradeStatusCustomApi", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/maurice/upgradable_sw_versions": { "get": { "summary": "GET Upgradable SW Versions.", "description": "API to GET list of sw versions that can be upgraded to.", "operationId": "ves.io.schema.upgrade_status.UpgradeStatusCustomApi.GetUpgradableSWVersions", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/upgrade_statusGetUpgradableSWVersionsResponse" } } } }, "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": "current_os_version", "description": "Fetch upgradable sw versions for site.", "in": "query", "required": false, "x-displayname": "Current OS Version.", "schema": { "type": "string" }, "x-f5xc-example": "9.2023.23" }, { "name": "current_sw_version", "description": "Fetch upgradable sw versions for site.", "in": "query", "required": false, "x-displayname": "Current SW Version.", "schema": { "type": "string" }, "x-f5xc-example": "crt-20241107-1123" } ], "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/ce_management/" }, "x-ves-proto-rpc": "ves.io.schema.upgrade_status.UpgradeStatusCustomApi.GetUpgradableSWVersions", "tags": [ "maurice" ], "x-f5xc-operation-metadata": { "purpose": "Resource retrieval operation", "required_fields": [], "optional_fields": [], "field_docs": {}, "conditions": { "prerequisites": [], "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-danger-level": "low", "x-discovered-response-time-ms": 145.82, "x-discovered-sample-size": 1, "x-f5xc-discovered-response-time": { "p50_ms": 145.82, "p95_ms": 291.64, "p99_ms": 437.46, "sample_count": 1, "source": "discovery", "last_measured": "2025-12-20T19:39:20.211392+00:00" } }, "x-displayname": "Upgrade Status.", "x-ves-proto-service": "ves.io.schema.upgrade_status.UpgradeStatusCustomApi", "x-ves-proto-service-type": "CUSTOM_PUBLIC" } }, "components": { "securitySchemes": { "ApiToken": { "type": "apiKey", "name": "Authorization", "in": "header", "description": "API Token authentication. Format: 'APIToken '" }, "apiKeyAuth": { "type": "apiKey", "in": "header", "name": "Authorization", "description": "F5 XC API Token (format: APIToken )" } }, "schemas": { "maintenance_statusGetUpgradeStatusResponse": { "type": "object", "description": "Response message for Upgrade Status Request.\nResponse contain different states in upgrade process.", "title": "Upgrade Status Response", "x-displayname": "Upgrade Status Response.", "x-ves-oneof-field-upgrade_state": "[\"upgrade_in_progress\",\"upgrade_in_progress_with_config_downtime\",\"upgrade_not_in_progress\"]", "x-ves-proto-message": "ves.io.schema.maintenance_status.GetUpgradeStatusResponse", "properties": { "upgrade_in_progress": { "allOf": [ { "$ref": "#/components/schemas/schemaEmpty" } ], "x-f5xc-description-short": "Configuration parameter for upgrade in progress.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "upgrade_in_progress_with_config_downtime", "upgrade_not_in_progress" ] }, "upgrade_in_progress_with_config_downtime": { "allOf": [ { "$ref": "#/components/schemas/schemaEmpty" } ], "x-f5xc-description-short": "Configuration parameter for upgrade in progress with config downtime.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "upgrade_in_progress", "upgrade_not_in_progress" ] }, "upgrade_not_in_progress": { "allOf": [ { "$ref": "#/components/schemas/schemaEmpty" } ], "x-f5xc-description-short": "Configuration parameter for upgrade not in progress.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "upgrade_in_progress", "upgrade_in_progress_with_config_downtime" ] } }, "x-f5xc-description-short": "Response message for Upgrade Status Request. Response contain different states in upgrade process.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for maintenance_statusGetUpgradeStatusResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for maintenance_statusGetUpgradeStatusResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "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_yaml": "# Minimal example for schemaEmpty\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "fleetBlockedServices": { "type": "object", "description": "Disable a node local service on this site.", "title": "Disable Node Local Service", "x-displayname": "Disable Node Local Service.", "x-ves-oneof-field-blocked_services_value_type_choice": "[\"dns\",\"ssh\",\"web_user_interface\"]", "x-ves-proto-message": "ves.io.schema.fleet.BlockedServices", "properties": { "dns": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "ssh", "web_user_interface" ] }, "network_type": { "allOf": [ { "$ref": "#/components/schemas/schemaVirtualNetworkType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "ssh": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "dns", "web_user_interface" ] }, "web_user_interface": { "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": [ "dns", "ssh" ] } }, "x-f5xc-description-short": "Disable a node local service on this site.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for fleetBlockedServices", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for fleetBlockedServices\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "fleetBondLacpType": { "type": "object", "description": "LACP parameters for the bond device.", "title": "LACP parameters", "x-displayname": "LACP parameters.", "x-ves-proto-message": "ves.io.schema.fleet.BondLacpType", "properties": { "rate": { "type": "integer", "description": "Interval in seconds to transmit LACP packets.", "title": "Interval", "format": "int64", "x-displayname": "LACP Packet Interval.", "x-ves-example": "30", "x-ves-validation-rules": { "ves.io.schema.rules.uint32.gte": "1", "ves.io.schema.rules.uint32.lte": "30" }, "x-f5xc-example": "30", "x-validation-rules": { "ves.io.schema.rules.uint32.gte": "1", "ves.io.schema.rules.uint32.lte": "30" }, "x-f5xc-description-short": "Interval in seconds to transmit LACP packets.", "x-f5xc-constraints": { "constraintType": "number", "category": "discovery", "minimum": 1, "maximum": 30, "deterministic": true, "metadata": { "source": "api-probed", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for fleetBondLacpType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for fleetBondLacpType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "fleetCreateRequest": { "type": "object", "description": "This is the input message of the 'Create' RPC.", "title": "CreateRequest is used to create an instance of fleet", "x-displayname": "Create Request.", "x-ves-proto-message": "ves.io.schema.fleet.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/schemafleetCreateSpecType" } ], "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 fleetCreateRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for fleetCreateRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "fleetCreateResponse": { "type": "object", "x-ves-proto-message": "ves.io.schema.fleet.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/schemafleetGetSpecType" } ], "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 fleetCreateResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for fleetCreateResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "fleetDeleteRequest": { "type": "object", "description": "This is the input message of the 'DELETE' RPC.", "title": "DeleteRequest is used to delete a fleet", "x-displayname": "DELETE Request.", "x-ves-proto-message": "ves.io.schema.fleet.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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for fleetDeleteRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for fleetDeleteRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "fleetDeviceInstanceType": { "type": "object", "description": "Device Instance describes a single device in fleet\nA device can be of type network interface, camera, scanner etc. A device instance is created for each instance of device.\nIf there are 2 network interfaces(eth0, eth1...), then 2 DeviceInstanceType are created one for eth0 and another for eth1.", "title": "Device Instance", "x-displayname": "Device Instance.", "x-ves-oneof-field-device_instance": "[\"network_device\"]", "x-ves-proto-message": "ves.io.schema.fleet.DeviceInstanceType", "properties": { "name": { "type": "string", "description": "Name of the device including the unit number (e.g. Eth0 or disk1). The name must match name of device in host-OS of node.", "title": "Name", "x-displayname": "Device Name.", "x-ves-example": "Eth0", "x-f5xc-example": "eth0", "x-f5xc-description-short": "Name of the device including the unit number (e.g. Eth0 or disk1).", "x-f5xc-description-medium": "Name of the device including the unit number (e.g. Eth0 or disk1). The name must match name of device in host-OS of node.", "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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" }, "network_device": { "allOf": [ { "$ref": "#/components/schemas/fleetNetworkingDeviceInstanceType" } ], "x-f5xc-description-short": "Configuration parameter for network device.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "owner": { "allOf": [ { "$ref": "#/components/schemas/fleetDeviceOwnerType" } ], "x-f5xc-example": "team-platform", "x-f5xc-description-short": "Owner or responsible party for the resource.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Device Instance describes a single device in fleet A device can be of type network interface, camera, scanner etc.", "x-f5xc-description-medium": "Device Instance describes a single device in fleet A device can be of type network interface, camera, scanner etc. A device instance is created for each instance of device. If there are 2 network interfaces(eth0, eth1...), then 2 DeviceInstanceType are created one for eth0 and another for eth1.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for fleetDeviceInstanceType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for fleetDeviceInstanceType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "fleetDeviceNetappBackendOntapSanChapType": { "type": "object", "description": "Device NetApp Backend ONTAP SAN CHAP configuration OPTIONS for enabled CHAP.", "title": "Device NetApp Backend ONTAP SAN CHAP configuration", "x-displayname": "Device NetApp Backend ONTAP SAN CHAP Configuration.", "x-ves-proto-message": "ves.io.schema.fleet.DeviceNetappBackendOntapSanChapType", "properties": { "chap_initiator_secret": { "allOf": [ { "$ref": "#/components/schemas/schemaSecretType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "chap_target_initiator_secret": { "allOf": [ { "$ref": "#/components/schemas/schemaSecretType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "chap_target_username": { "type": "string", "description": "Target username. Required if useCHAP=true.", "title": "CHAP Target Username", "minLength": 1, "maxLength": 256, "x-displayname": "CHAP Target Username.", "x-ves-example": "Bob", "x-ves-validation-rules": { "ves.io.schema.rules.string.max_len": "256", "ves.io.schema.rules.string.min_len": "1" }, "x-f5xc-example": "bob", "x-validation-rules": { "ves.io.schema.rules.string.max_len": "256", "ves.io.schema.rules.string.min_len": "1" }, "x-f5xc-description-short": "Target username. Required if useCHAP=true.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "minLength": 1, "maxLength": 256, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "chap_username": { "type": "string", "description": "Inbound username. Required if useCHAP=true.", "title": "CHAP Username", "minLength": 1, "maxLength": 256, "x-displayname": "CHAP Username.", "x-ves-example": "Alice", "x-ves-validation-rules": { "ves.io.schema.rules.string.max_len": "256", "ves.io.schema.rules.string.min_len": "1" }, "x-f5xc-example": "alice", "x-validation-rules": { "ves.io.schema.rules.string.max_len": "256", "ves.io.schema.rules.string.min_len": "1" }, "x-f5xc-description-short": "Inbound username. Required if useCHAP=true.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "minLength": 1, "maxLength": 256, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Device NetApp Backend ONTAP SAN CHAP configuration OPTIONS for enabled CHAP.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for fleetDeviceNetappBackendOntapSanChapType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for fleetDeviceNetappBackendOntapSanChapType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "fleetDeviceOwnerType": { "type": "string", "description": "Defines ownership for a device.\n\nDevice owner is invalid\nDevice is owned by VER pod. Usually it will be network interface device or accelerator like crypto engine.\nDevice is available to be owned by vK8s workload on the site, like camera GPU etc.\nDevice is not available to be owned by vK8s or VER. Can be exposed via some other service. Like TPM.", "title": "Device Owner Type", "enum": [ "DEVICE_OWNER_INVALID", "DEVICE_OWNER_VER", "DEVICE_OWNER_VK8S_WORK_LOAD", "DEVICE_OWNER_HOST" ], "default": "DEVICE_OWNER_INVALID", "x-displayname": "Device Owner Type.", "x-ves-proto-enum": "ves.io.schema.fleet.DeviceOwnerType", "x-f5xc-description-short": "Defines ownership for a device. Device owner is invalid Device is owned by VER pod.", "x-f5xc-description-medium": "Defines ownership for a device. Device owner is invalid Device is owned by VER pod. Usually it will be network interface device or accelerator like crypto engine.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for fleetDeviceOwnerType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for fleetDeviceOwnerType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "fleetFlashArrayEndpoint": { "type": "object", "description": "For FlashArrays you must set the \"mgmt_endpoint\" and \"api_token\"", "title": "Flash Array Endpoint", "x-displayname": "Flash Array Endpoint.", "x-ves-oneof-field-mgmt_endpoint": "[\"mgmt_dns_name\",\"mgmt_ip\"]", "x-ves-proto-message": "ves.io.schema.fleet.FlashArrayEndpoint", "properties": { "api_token": { "allOf": [ { "$ref": "#/components/schemas/schemaSecretType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "labels": { "type": "object", "description": "The labels are optional, and can be any key-value pair for use with the PSO \"fleet\" provisioner.", "title": "Labels", "x-displayname": "Labels", "x-ves-example": "{\"rack\": \"22\"}", "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": "20", "ves.io.schema.rules.map.values.string.max_len": "128", "ves.io.schema.rules.map.values.string.min_len": "1" }, "x-f5xc-example": "\"{\"rack\"\"22\"}\"", "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": "20", "ves.io.schema.rules.map.values.string.max_len": "128", "ves.io.schema.rules.map.values.string.min_len": "1" }, "x-f5xc-description-short": "Specifies labels optional, and can be any key-value pair for use with the PSO \"fleet\" provisioner.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "mgmt_dns_name": { "type": "string", "description": "Exclusive with [mgmt_ip]\nManagement Endpoint's IP address is discovered using DNS name resolution. The name given here is fully qualified domain name.", "title": "dns_name", "maxLength": 256, "x-displayname": "Management Endpoint Name.", "x-ves-example": "storage.local.", "x-ves-validation-rules": { "ves.io.schema.rules.string.hostname": "true", "ves.io.schema.rules.string.max_len": "256" }, "x-f5xc-example": "storage.local", "x-validation-rules": { "ves.io.schema.rules.string.hostname": "true", "ves.io.schema.rules.string.max_len": "256" }, "x-f5xc-description-short": "Exclusive with [mgmt_ip] Management Endpoint's IP address is discovered using DNS name resolution.", "x-f5xc-description-medium": "Exclusive with [mgmt_ip] Management Endpoint's IP address is discovered using DNS name resolution. The name given here is fully qualified domain name.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 256, "format": "hostname", "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "mgmt_ip" ] }, "mgmt_ip": { "type": "string", "description": "Exclusive with [mgmt_dns_name]\nManagement Endpoint is reachable at the given IP address.", "title": "Management Endpoint IP Address", "x-displayname": "Management Endpoint IP Address.", "x-ves-example": "192.0.2.103.", "x-ves-validation-rules": { "ves.io.schema.rules.string.ip": "true" }, "x-f5xc-example": "192.0.2.103", "x-validation-rules": { "ves.io.schema.rules.string.ip": "true" }, "x-f5xc-description-short": "Exclusive with [mgmt_dns_name] Management Endpoint is reachable at the given IP address.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 1024, "format": "ip", "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "mgmt_dns_name" ] } }, "x-f5xc-description-short": "For FlashArrays you must set the \"mgmt_endpoint\" and \"api_token\".", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for fleetFlashArrayEndpoint", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for fleetFlashArrayEndpoint\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "fleetFlashArrayType": { "type": "object", "description": "Specify what storage flash arrays should be managed the plugin.", "title": "Flash Arrays", "x-displayname": "Flash Arrays.", "x-ves-proto-message": "ves.io.schema.fleet.FlashArrayType", "properties": { "default_fs_opt": { "type": "string", "description": "Block volume default mkfs OPTIONS. Not recommended to change!", "title": "Default Filesystem Options", "minLength": 1, "maxLength": 128, "x-displayname": "Default Filesystem OPTIONS.", "x-ves-example": "-q", "x-ves-validation-rules": { "ves.io.schema.rules.string.max_len": "128", "ves.io.schema.rules.string.min_len": "1" }, "x-f5xc-example": "-q", "x-validation-rules": { "ves.io.schema.rules.string.max_len": "128", "ves.io.schema.rules.string.min_len": "1" }, "x-f5xc-description-short": "Block volume default mkfs OPTIONS. Not recommended to change!", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "minLength": 1, "maxLength": 128, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "default_fs_type": { "type": "string", "description": "Block volume default filesystem type. Not recommended to change!", "title": "Default Filesystem Type", "x-displayname": "Default Filesystem Type.", "x-ves-example": "Xfs", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.string.in": "[\\\"xfs\\\",\\\"ext4\\\"]" }, "x-f5xc-example": "xfs", "x-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.string.in": "[\\\"xfs\\\",\\\"ext4\\\"]" }, "x-f5xc-description-short": "Block volume default filesystem type. Not recommended to change!", "maxLength": 1024, "enum": [ "xfs", "ext4" ], "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "default_mount_opts": { "type": "array", "description": "Block volume default filesystem mount OPTIONS. Not recommended to change!", "title": "Default Mount Options", "maxItems": 4, "items": { "type": "string" }, "x-displayname": "Default Mount OPTIONS.", "x-ves-example": "[- discart]", "x-ves-validation-rules": { "ves.io.schema.rules.repeated.max_items": "4", "ves.io.schema.rules.repeated.unique": "true" }, "x-f5xc-example": "[- discart]", "x-validation-rules": { "ves.io.schema.rules.repeated.max_items": "4", "ves.io.schema.rules.repeated.unique": "true" }, "x-f5xc-description-short": "Block volume default filesystem mount OPTIONS. Not recommended to change!", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 4, "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "disable_preempt_attachments": { "type": "boolean", "description": "Enable/Disable attachment preemption!", "title": "Disable Preempt Attachments", "format": "boolean", "x-displayname": "Disable Preempt Attachments.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "flash_arrays": { "type": "array", "description": "For FlashArrays you must set the \"mgmt_endpoint\" and \"api_token\"", "title": "Flash Arrays", "minItems": 1, "maxItems": 8, "items": { "$ref": "#/components/schemas/fleetFlashArrayEndpoint" }, "x-displayname": "Flash Arrays.", "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": "For FlashArrays you must set the \"mgmt_endpoint\" and \"api_token\".", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "minItems": 1, "maxItems": 8, "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "iscsi_login_timeout": { "type": "integer", "description": "ISCSI login timeout in seconds. Not recommended to change!", "title": "iSCSI Login Timeout", "format": "int32", "x-displayname": "ISCSI Login Timeout.", "x-ves-example": "20", "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": "100" }, "x-f5xc-example": "20", "x-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.uint32.gte": "1", "ves.io.schema.rules.uint32.lte": "100" }, "x-f5xc-description-short": "ISCSI login timeout in seconds. Not recommended to change!", "x-f5xc-constraints": { "constraintType": "number", "category": "discovery", "minimum": 1, "maximum": 100, "deterministic": true, "metadata": { "source": "api-probed", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "san_type": { "type": "string", "description": "Block volume access protocol, either ISCSI or FC.", "title": "SAN Type", "x-displayname": "SAN Type", "x-ves-example": "ISCSI", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.string.in": "[\\\"ISCSI\\\",\\\"FC\\\"]" }, "x-f5xc-example": "ISCSI", "x-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.string.in": "[\\\"ISCSI\\\",\\\"FC\\\"]" }, "x-f5xc-description-short": "Block volume access protocol, either ISCSI or FC.", "maxLength": 1024, "enum": [ "ISCSI", "FC" ], "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } } }, "x-f5xc-description-short": "Specify what storage flash arrays should be managed the plugin.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for fleetFlashArrayType", "required_fields": [ "default_fs_type", "flash_arrays", "iscsi_login_timeout", "san_type" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for fleetFlashArrayType\nmetadata:\n name: example\n namespace: default\nspec:\n default_fs_type: value\n flash_arrays: value\n iscsi_login_timeout: value\n san_type: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"default_fs_type\": \"value\",\n \"flash_arrays\": \"value\",\n \"iscsi_login_timeout\": \"value\",\n \"san_type\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "fleetFlashBladeEndpoint": { "type": "object", "description": "For FlashBlades you must set the \"mgmt_endpoint\", \"api_token\" and nfs_endpoint.", "title": "Flash Blade Endpoint", "x-displayname": "Flash Blade Endpoint.", "x-ves-oneof-field-mgmt_endpoint": "[\"mgmt_dns_name\",\"mgmt_ip\"]", "x-ves-oneof-field-nfs_endpoint": "[\"nfs_endpoint_dns_name\",\"nfs_endpoint_ip\"]", "x-ves-proto-message": "ves.io.schema.fleet.FlashBladeEndpoint", "properties": { "api_token": { "allOf": [ { "$ref": "#/components/schemas/schemaSecretType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "labels": { "type": "object", "description": "The labels are optional, and can be any key-value pair for use with the PSO \"fleet\" provisioner.", "title": "Labels", "x-displayname": "Labels", "x-ves-example": "{\"rack\": \"22\"}", "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": "20", "ves.io.schema.rules.map.values.string.max_len": "128", "ves.io.schema.rules.map.values.string.min_len": "1" }, "x-f5xc-example": "\"{\"rack\"\"22\"}\"", "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": "20", "ves.io.schema.rules.map.values.string.max_len": "128", "ves.io.schema.rules.map.values.string.min_len": "1" }, "x-f5xc-description-short": "Specifies labels optional, and can be any key-value pair for use with the PSO \"fleet\" provisioner.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "mgmt_dns_name": { "type": "string", "description": "Exclusive with [mgmt_ip]\nManagement Endpoint's IP address is discovered using DNS name resolution. The name given here is fully qualified domain name.", "title": "dns_name", "maxLength": 256, "x-displayname": "Management Endpoint Name.", "x-ves-example": "storage.local.", "x-ves-validation-rules": { "ves.io.schema.rules.string.hostname": "true", "ves.io.schema.rules.string.max_len": "256" }, "x-f5xc-example": "storage.local", "x-validation-rules": { "ves.io.schema.rules.string.hostname": "true", "ves.io.schema.rules.string.max_len": "256" }, "x-f5xc-description-short": "Exclusive with [mgmt_ip] Management Endpoint's IP address is discovered using DNS name resolution.", "x-f5xc-description-medium": "Exclusive with [mgmt_ip] Management Endpoint's IP address is discovered using DNS name resolution. The name given here is fully qualified domain name.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 256, "format": "hostname", "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "mgmt_ip" ] }, "mgmt_ip": { "type": "string", "description": "Exclusive with [mgmt_dns_name]\nManagement Endpoint is reachable at the given IP address.", "title": "Management Endpoint IP Address", "x-displayname": "Management Endpoint IP Address.", "x-ves-example": "192.0.2.103.", "x-ves-validation-rules": { "ves.io.schema.rules.string.ip": "true" }, "x-f5xc-example": "192.0.2.103", "x-validation-rules": { "ves.io.schema.rules.string.ip": "true" }, "x-f5xc-description-short": "Exclusive with [mgmt_dns_name] Management Endpoint is reachable at the given IP address.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 1024, "format": "ip", "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "mgmt_dns_name" ] }, "nfs_endpoint_dns_name": { "type": "string", "description": "Exclusive with [nfs_endpoint_ip]\nEndpoint's IP address is discovered using DNS name resolution. The name given here is fully qualified domain name.", "title": "NFS DNS Name", "maxLength": 256, "x-displayname": "NFS DNS Name.", "x-ves-example": "nfs.storage.local.", "x-ves-validation-rules": { "ves.io.schema.rules.string.hostname": "true", "ves.io.schema.rules.string.max_len": "256" }, "x-f5xc-example": "nfs.storage.local", "x-validation-rules": { "ves.io.schema.rules.string.hostname": "true", "ves.io.schema.rules.string.max_len": "256" }, "x-f5xc-description-short": "Exclusive with [nfs_endpoint_ip] Endpoint's IP address is discovered using DNS name resolution.", "x-f5xc-description-medium": "Exclusive with [nfs_endpoint_ip] Endpoint's IP address is discovered using DNS name resolution. The name given here is fully qualified domain name.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 256, "format": "hostname", "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "nfs_endpoint_ip" ] }, "nfs_endpoint_ip": { "type": "string", "description": "Exclusive with [nfs_endpoint_dns_name]\nEndpoint is reachable at the given IP address.", "title": "NFS IP Address", "x-displayname": "NFS IP Address.", "x-ves-example": "192.0.2.103.", "x-ves-validation-rules": { "ves.io.schema.rules.string.ip": "true" }, "x-f5xc-example": "192.0.2.103", "x-validation-rules": { "ves.io.schema.rules.string.ip": "true" }, "x-f5xc-description-short": "Exclusive with [nfs_endpoint_dns_name] Endpoint is reachable at the given IP address.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 1024, "format": "ip", "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "nfs_endpoint_dns_name" ] } }, "x-f5xc-description-short": "For FlashBlades you must set the \"mgmt_endpoint\", \"api_token\" and nfs_endpoint.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for fleetFlashBladeEndpoint", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for fleetFlashBladeEndpoint\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "fleetFlashBladeType": { "type": "object", "description": "Specify what storage flash blades should be managed the plugin.", "title": "Flash Blades", "x-displayname": "Flash Blades.", "x-ves-proto-message": "ves.io.schema.fleet.FlashBladeType", "properties": { "enable_snapshot_directory": { "type": "boolean", "description": "Enable/Disable FlashBlade snapshots.", "title": "Enable Snapshot Directory", "format": "boolean", "x-displayname": "Enable Snapshot Directory.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "export_rules": { "type": "string", "description": "NFS Export rules.", "title": "NFS Export Rules", "minLength": 1, "maxLength": 250, "x-displayname": "NFS Export Rules.", "x-ves-example": "*(rw,no_root_squash)", "x-ves-validation-rules": { "ves.io.schema.rules.string.max_len": "250", "ves.io.schema.rules.string.min_len": "1" }, "x-f5xc-example": "*(rw,no_root_squash)", "x-validation-rules": { "ves.io.schema.rules.string.max_len": "250", "ves.io.schema.rules.string.min_len": "1" }, "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "minLength": 1, "maxLength": 250, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "flash_blades": { "type": "array", "description": "For FlashBlades you must set the \"mgmt_endpoint\", \"api_token\" and nfs_endpoint.", "title": "Flash Blades", "minItems": 1, "maxItems": 8, "items": { "$ref": "#/components/schemas/fleetFlashBladeEndpoint" }, "x-displayname": "Flash Blades.", "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": "For FlashBlades you must set the \"mgmt_endpoint\", \"api_token\" and nfs_endpoint.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "minItems": 1, "maxItems": 8, "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } } }, "x-f5xc-description-short": "Specify what storage flash blades should be managed the plugin.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for fleetFlashBladeType", "required_fields": [ "flash_blades" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for fleetFlashBladeType\nmetadata:\n name: example\n namespace: default\nspec:\n flash_blades: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"flash_blades\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "fleetFleetBondDeviceType": { "type": "object", "description": "Bond devices configuration for fleet.", "title": "Bond Device", "x-displayname": "Bond Device.", "x-ves-oneof-field-lacp_choice": "[\"active_backup\",\"lacp\"]", "x-ves-proto-message": "ves.io.schema.fleet.FleetBondDeviceType", "properties": { "active_backup": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-description-short": "Configuration parameter for active backup.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "lacp" ] }, "devices": { "type": "array", "description": "Ethernet devices that will make up this bond.", "title": "Member Ethernet Devices", "minItems": 1, "maxItems": 8, "items": { "type": "string", "maxLength": 64 }, "x-displayname": "Member Ethernet Devices.", "x-ves-example": "Eth0", "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.max_items": "8", "ves.io.schema.rules.repeated.min_items": "1", "ves.io.schema.rules.repeated.unique": "true" }, "x-f5xc-example": "eth0", "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.max_items": "8", "ves.io.schema.rules.repeated.min_items": "1", "ves.io.schema.rules.repeated.unique": "true" }, "x-f5xc-description-short": "Ethernet devices that will make up this bond.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "minItems": 1, "maxItems": 8, "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "lacp": { "allOf": [ { "$ref": "#/components/schemas/fleetBondLacpType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "active_backup" ] }, "link_polling_interval": { "type": "integer", "description": "Link polling interval in milliseconds.", "title": "Link Polling Interval", "format": "int64", "x-displayname": "Link Polling Interval.", "x-ves-example": "1000", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.uint32.gte": "500", "ves.io.schema.rules.uint32.lte": "5000" }, "x-f5xc-example": "1000", "x-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.uint32.gte": "500", "ves.io.schema.rules.uint32.lte": "5000" }, "x-f5xc-constraints": { "constraintType": "number", "category": "discovery", "minimum": 500, "maximum": 5000, "deterministic": true, "metadata": { "source": "api-probed", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "link_up_delay": { "type": "integer", "description": "Milliseconds wait before link is declared up.", "title": "Link Up Delay", "format": "int64", "x-displayname": "Link Up Delay.", "x-ves-example": "200", "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": "1000" }, "x-f5xc-example": "200", "x-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.uint32.gte": "0", "ves.io.schema.rules.uint32.lte": "1000" }, "x-f5xc-description-short": "Milliseconds wait before link is declared up.", "x-f5xc-constraints": { "constraintType": "number", "category": "discovery", "minimum": 0, "maximum": 1000, "deterministic": true, "metadata": { "source": "api-probed", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "name": { "type": "string", "description": "Name for the Bond. Ex 'bond0'", "title": "Bond Device", "maxLength": 64, "x-displayname": "Bond Device Name.", "x-ves-example": "Bond0", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.string.max_len": "64" }, "x-f5xc-example": "bond0", "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-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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for fleetFleetBondDeviceType", "required_fields": [ "devices", "link_polling_interval", "link_up_delay", "name" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for fleetFleetBondDeviceType\nmetadata:\n name: example\n namespace: default\nspec:\n devices: value\n link_polling_interval: value\n link_up_delay: value\n name: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"devices\": \"value\",\n \"link_polling_interval\": \"value\",\n \"link_up_delay\": \"value\",\n \"name\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "fleetFleetBondDevicesListType": { "type": "object", "description": "List of bond devices for this fleet.", "title": "Bond Devices List", "x-displayname": "Bond Devices List.", "x-ves-proto-message": "ves.io.schema.fleet.FleetBondDevicesListType", "properties": { "bond_devices": { "type": "array", "description": "List of bond devices.", "title": "Bond Devices List", "minItems": 1, "maxItems": 4, "items": { "$ref": "#/components/schemas/fleetFleetBondDeviceType" }, "x-displayname": "Bond Devices.", "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-constraints": { "constraintType": "array", "category": "discovery", "minItems": 1, "maxItems": 4, "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for fleetFleetBondDevicesListType", "required_fields": [ "bond_devices" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for fleetFleetBondDevicesListType\nmetadata:\n name: example\n namespace: default\nspec:\n bond_devices: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"bond_devices\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "fleetFleetDeviceListType": { "type": "object", "description": "Add device for all interfaces belonging to this fleet.", "title": "List of Devices", "x-displayname": "List of Devices.", "x-ves-proto-message": "ves.io.schema.fleet.FleetDeviceListType", "properties": { "devices": { "type": "array", "description": "Configuration for all devices in the fleet.\nExamples of devices are - network interfaces, cameras, scanners etc.\nConfiguration a device is applied on VER node if the VER node is member of this fleet and\nhas an corresponding interface/device. The mapping from device configured in fleet with\ninterface/device in VER node depends on the type of device and is documented in\ndevice instance specific sections.", "title": "Add device for all interfaces belonging to this fleet", "maxItems": 8, "items": { "$ref": "#/components/schemas/fleetDeviceInstanceType" }, "x-displayname": "Devices", "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": "Configuration for all devices in the fleet. Examples of devices are - network interfaces, cameras, scanners etc.", "x-f5xc-description-medium": "Configuration for all devices in the fleet. Examples of devices are - network interfaces, cameras, scanners etc. Configuration a device is applied on VER node if the VER node is member of this fleet and has an corresponding interface/device.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 8, "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Add device for all interfaces belonging to this fleet.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for fleetFleetDeviceListType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for fleetFleetDeviceListType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "fleetFleetInterfaceListType": { "type": "object", "description": "Add all interfaces belonging to this fleet.", "title": "List of Interfaces", "x-displayname": "List of Interfaces.", "x-ves-proto-message": "ves.io.schema.fleet.FleetInterfaceListType", "properties": { "interfaces": { "type": "array", "description": "Add all interfaces belonging to this fleet.", "title": "List of Interfaces", "minItems": 1, "maxItems": 256, "items": { "$ref": "#/components/schemas/schemaviewsObjectRefType" }, "x-displayname": "List of Interfaces.", "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.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": "256", "ves.io.schema.rules.repeated.min_items": "1", "ves.io.schema.rules.repeated.unique": "true" }, "x-f5xc-description-short": "Add all interfaces belonging to this fleet.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "minItems": 1, "maxItems": 256, "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } } }, "x-f5xc-description-short": "Add all interfaces belonging to this fleet.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for fleetFleetInterfaceListType", "required_fields": [ "interfaces" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for fleetFleetInterfaceListType\nmetadata:\n name: example\n namespace: default\nspec:\n interfaces: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"interfaces\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "fleetFleetStatus": { "type": "object", "description": "Current status of fleet.", "title": "Fleet Status", "x-displayname": "Fleet Status.", "x-ves-proto-message": "ves.io.schema.fleet.FleetStatus", "properties": { "available_software_version": { "type": "string", "description": "Current software version used by the site.", "title": "Software Version", "x-displayname": "Software Version.", "x-f5xc-description-short": "Current software version used by the site.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for fleetFleetStatus", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for fleetFleetStatus\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "fleetFleetStorageClassListType": { "type": "object", "description": "Add additional custom storage classes in Kubernetes for this fleet.", "title": "Custom Storage Class List", "x-displayname": "Custom Storage Class List.", "x-ves-proto-message": "ves.io.schema.fleet.FleetStorageClassListType", "properties": { "storage_classes": { "type": "array", "description": "List of custom storage classes.", "title": "List of Storage Classes", "maxItems": 4, "items": { "$ref": "#/components/schemas/fleetFleetStorageClassType" }, "x-displayname": "List of Storage Classes.", "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-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 4, "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Add additional custom storage classes in Kubernetes for this fleet.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for fleetFleetStorageClassListType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for fleetFleetStorageClassListType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "fleetFleetStorageClassType": { "type": "object", "description": "Configuration of custom storage class.", "title": "Custom Storage Class", "x-displayname": "Custom Storage Class.", "x-ves-oneof-field-device_choice": "[\"custom_storage\",\"hpe_storage\",\"netapp_trident\",\"pure_service_orchestrator\"]", "x-ves-proto-message": "ves.io.schema.fleet.FleetStorageClassType", "properties": { "advanced_storage_parameters": { "type": "object", "description": "Map of parameter name and string value.", "title": "Advanced Parameters", "x-displayname": "Advanced Parameters.", "x-ves-example": "Value", "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": "64", "ves.io.schema.rules.map.values.string.max_len": "128", "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": "128", "ves.io.schema.rules.map.keys.string.min_len": "1", "ves.io.schema.rules.map.max_pairs": "64", "ves.io.schema.rules.map.values.string.max_len": "128", "ves.io.schema.rules.map.values.string.min_len": "1" }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "allow_volume_expansion": { "type": "boolean", "description": "Allow volume expansion.", "title": "Allow Volume Expansion", "format": "boolean", "x-displayname": "Allow Volume Expansion.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "custom_storage": { "allOf": [ { "$ref": "#/components/schemas/fleetStorageClassCustomType" } ], "x-f5xc-description-short": "Configuration parameter for custom storage.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "hpe_storage", "netapp_trident", "pure_service_orchestrator" ] }, "default_storage_class": { "type": "boolean", "description": "Make this storage class default storage class for the K8s cluster.", "title": "Default Storage Class", "format": "boolean", "x-displayname": "Default Storage Class.", "x-f5xc-description-short": "Make this storage class default storage class for the K8s cluster.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "description": { "type": "string", "description": "Description for this storage class.", "title": "Storage Class Description", "maxLength": 256, "x-displayname": "Storage Class Description.", "x-ves-example": "Volume from example fast storage.", "x-ves-validation-rules": { "ves.io.schema.rules.string.max_len": "256" }, "x-f5xc-example": "Volume from example fast storage", "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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "hpe_storage": { "allOf": [ { "$ref": "#/components/schemas/fleetStorageClassHpeStorageType" } ], "x-f5xc-description-short": "Configuration parameter for hpe storage.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "custom_storage", "netapp_trident", "pure_service_orchestrator" ] }, "netapp_trident": { "allOf": [ { "$ref": "#/components/schemas/fleetStorageClassNetappTridentType" } ], "x-f5xc-description-short": "Configuration parameter for netapp trident.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "custom_storage", "hpe_storage", "pure_service_orchestrator" ] }, "pure_service_orchestrator": { "allOf": [ { "$ref": "#/components/schemas/fleetStorageClassPureServiceOrchestratorType" } ], "x-f5xc-description-short": "Configuration parameter for pure service orchestrator.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "custom_storage", "hpe_storage", "netapp_trident" ] }, "reclaim_policy": { "type": "string", "description": "Reclaim Policy.", "title": "Reclaim Policy", "maxLength": 16, "x-displayname": "Reclaim Policy.", "x-ves-example": "DELETE", "x-ves-validation-rules": { "ves.io.schema.rules.string.max_len": "16" }, "x-f5xc-example": "Delete", "x-validation-rules": { "ves.io.schema.rules.string.max_len": "16" }, "x-f5xc-description-short": "Policy configuration for this feature.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 16, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "storage_class_name": { "type": "string", "description": "Name of the storage class as it will appear in K8s.", "title": "Storage Class Name", "x-displayname": "Storage Class Name.", "x-ves-example": "Premium", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.string.ves_object_name": "true" }, "x-f5xc-example": "premium", "x-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.string.ves_object_name": "true" }, "x-f5xc-description-short": "Name of the storage class as it will appear in K8s.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 1024, "format": "dns-label", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$", "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false }, "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" }, "storage_device": { "type": "string", "description": "Storage device that this class will use. The Device name defined at previous step.", "title": "Storage Device", "minLength": 1, "maxLength": 64, "x-displayname": "Storage Device.", "x-ves-example": "DellEMC-isilon_F800-0.", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.string.max_bytes": "64", "ves.io.schema.rules.string.min_bytes": "1" }, "x-f5xc-example": "DellEMC-isilon_F800-0", "x-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.string.max_bytes": "64", "ves.io.schema.rules.string.min_bytes": "1" }, "x-f5xc-description-short": "Storage device that this class will use. The Device name defined at previous step.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "minLength": 1, "maxLength": 64, "byteLength": { "max": 64, "min": 1 }, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for fleetFleetStorageClassType", "required_fields": [ "storage_class_name", "storage_device" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for fleetFleetStorageClassType\nmetadata:\n name: example\n namespace: default\nspec:\n storage_class_name: value\n storage_device: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"storage_class_name\": \"value\",\n \"storage_device\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "fleetFleetStorageDeviceListType": { "type": "object", "description": "Add additional custom storage classes in Kubernetes for this fleet.", "title": "Custom Storage Device List", "x-displayname": "Custom Storage Device List.", "x-ves-proto-message": "ves.io.schema.fleet.FleetStorageDeviceListType", "properties": { "storage_devices": { "type": "array", "description": "List of custom storage devices.", "title": "List of Storage Devices", "maxItems": 4, "items": { "$ref": "#/components/schemas/fleetFleetStorageDeviceType" }, "x-displayname": "List of Storage Devices.", "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-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 4, "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Add additional custom storage classes in Kubernetes for this fleet.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for fleetFleetStorageDeviceListType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for fleetFleetStorageDeviceListType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "fleetFleetStorageDeviceType": { "type": "object", "description": "Configuration of storage device.", "title": "Storage Device", "x-displayname": "Storage Device.", "x-ves-oneof-field-device_choice": "[\"custom_storage\",\"hpe_storage\",\"netapp_trident\",\"pure_service_orchestrator\"]", "x-ves-proto-message": "ves.io.schema.fleet.FleetStorageDeviceType", "properties": { "advanced_advanced_parameters": { "type": "object", "description": "Map of parameter name and string value.", "title": "Advanced Parameters", "x-displayname": "Advanced Parameters.", "x-ves-example": "Value", "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": "64", "ves.io.schema.rules.map.values.string.max_len": "128", "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": "128", "ves.io.schema.rules.map.keys.string.min_len": "1", "ves.io.schema.rules.map.max_pairs": "64", "ves.io.schema.rules.map.values.string.max_len": "128", "ves.io.schema.rules.map.values.string.min_len": "1" }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "custom_storage": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-description-short": "Configuration parameter for custom storage.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "hpe_storage", "netapp_trident", "pure_service_orchestrator" ] }, "hpe_storage": { "allOf": [ { "$ref": "#/components/schemas/fleetStorageDeviceHpeStorageType" } ], "x-f5xc-description-short": "Configuration parameter for hpe storage.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "custom_storage", "netapp_trident", "pure_service_orchestrator" ] }, "netapp_trident": { "allOf": [ { "$ref": "#/components/schemas/fleetStorageDeviceNetappTridentType" } ], "x-f5xc-description-short": "Configuration parameter for netapp trident.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "custom_storage", "hpe_storage", "pure_service_orchestrator" ] }, "pure_service_orchestrator": { "allOf": [ { "$ref": "#/components/schemas/fleetStorageDevicePureStorageServiceOrchestratorType" } ], "x-f5xc-description-short": "Configuration parameter for pure service orchestrator.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "custom_storage", "hpe_storage", "netapp_trident" ] }, "storage_device": { "type": "string", "description": "Storage device and device unit.", "title": "Storage Device", "maxLength": 64, "x-displayname": "Storage Device.", "x-ves-example": "DellEMC-isilon-F800-0.", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.string.max_len": "64" }, "x-f5xc-example": "DellEMC-isilon-F800-0", "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, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for fleetFleetStorageDeviceType", "required_fields": [ "storage_device" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for fleetFleetStorageDeviceType\nmetadata:\n name: example\n namespace: default\nspec:\n storage_device: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"storage_device\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "fleetFleetStorageStaticRoutesListType": { "type": "object", "description": "List of storage static routes.", "title": "Storage Static Routes List", "x-displayname": "Storage Static Routes List.", "x-ves-proto-message": "ves.io.schema.fleet.FleetStorageStaticRoutesListType", "properties": { "storage_routes": { "type": "array", "description": "List of storage static routes.", "title": "List of Static Routes", "minItems": 1, "maxItems": 8, "items": { "$ref": "#/components/schemas/schemaStaticRouteType" }, "x-displayname": "List of Static Routes.", "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-constraints": { "constraintType": "array", "category": "discovery", "minItems": 1, "maxItems": 8, "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for fleetFleetStorageStaticRoutesListType", "required_fields": [ "storage_routes" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for fleetFleetStorageStaticRoutesListType\nmetadata:\n name: example\n namespace: default\nspec:\n storage_routes: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"storage_routes\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "fleetGetResponse": { "type": "object", "description": "This is the output message of the 'GET' RPC.", "title": "GetResponse is the shape of a read fleet", "x-displayname": "GET Response.", "x-ves-proto-message": "ves.io.schema.fleet.GetResponse", "properties": { "create_form": { "allOf": [ { "$ref": "#/components/schemas/fleetCreateRequest" } ], "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/fleetReplaceRequest" } ], "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/schemafleetGetSpecType" } ], "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/fleetStatusObject" }, "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-08-20T09:12:47+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 fleetGetResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for fleetGetResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "fleetListResponse": { "type": "object", "description": "This is the output message of 'List' RPC.", "title": "ListResponse is the collection of fleet", "x-displayname": "List Response.", "x-ves-proto-message": "ves.io.schema.fleet.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/fleetListResponseItem" }, "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for fleetListResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for fleetListResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "fleetListResponseItem": { "type": "object", "description": "By default a summary of fleet 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 fleet", "x-displayname": "List Item", "x-ves-proto-message": "ves.io.schema.fleet.ListResponseItem", "properties": { "annotations": { "type": "object", "description": "The set of annotations present on this fleet.", "title": "annotations", "x-displayname": "Annotations.", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "The set of annotations present on this fleet.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "description": { "type": "string", "description": "The description set for this fleet.", "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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "disabled": { "type": "boolean", "description": "A value of true indicates fleet is administratively disabled.", "title": "disabled", "format": "boolean", "x-displayname": "Disabled", "x-f5xc-example": "True", "x-f5xc-description-short": "Value of true indicates fleet is administratively disabled.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "get_spec": { "allOf": [ { "$ref": "#/components/schemas/schemafleetGetSpecType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "labels": { "type": "object", "description": "The set of labels present on this fleet.", "title": "labels", "x-displayname": "Labels", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "The set of labels present on this fleet.", "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 fleet.", "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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/fleetStatusObject" }, "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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "uid": { "type": "string", "description": "The unique uid of this fleet.", "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-08-20T09:12:47+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-08-20T09:12:47+00:00" } }, "x-f5xc-description-short": "By default a summary of fleet 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 fleet 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 fleetListResponseItem", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for fleetListResponseItem\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "fleetNetworkingDeviceInstanceType": { "type": "object", "description": "Represents physical network interface.\nThe 'interface' reference points to a Network Interface object. Attributes such as Labels, MTU from\nNetwork Interface must be applied to the device.\n\nDevice mapping to nodes\n\nA fleet can have many devices and nodes in VER customer edge site can have many interfaces.\nAn interface in node inherits configuration from a device by matching,\n - device_name in Network Interface for the device\n - device name for physical-interface in the node.", "title": "Network Device Type", "x-displayname": "Network Device Type.", "x-ves-proto-message": "ves.io.schema.fleet.NetworkingDeviceInstanceType", "properties": { "interface": { "type": "array", "description": "Network Interface attributes for the device.\nUser network interface configuration for this network device.\nAttributes like labels, MTU from the 'interface' are applied to corresponding interface in VER node\nIf network interface refers to a virtual-network, the virtual-netowrk type must be consistent with use attribute given below\nIf use is NETWORK_INTERFACE_USE_REGULAR, the virtual-network must be of type VIRTUAL_NETWORK_SITE_LOCAL or VIRTUAL_NETWORK_SITE_LOCAL_INSIDE\nif use is NETWORK_INTERFACE_USE_OUTSIDE, the virtual-network must of type VIRTUAL_NETWORK_SITE_LOCAL\nif use is NETWORK_INTERFACE_USE_INSIDE, the virtual-network must of type VIRTUAL_NETWORK_SITE_LOCAL_INSIDE.", "title": "Network Interface", "maxItems": 1, "items": { "$ref": "#/components/schemas/ioschemaObjectRefType" }, "x-displayname": "Network Interface.", "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": "Network Interface attributes for the device. User network interface configuration for this network device.", "x-f5xc-description-medium": "Network Interface attributes for the device. User network interface configuration for this network device. Attributes like labels, MTU from the 'interface' are applied to corresponding interface in VER node If network interface refers to a virtual-network, the virtual-netowrk type must be...", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 1, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "use": { "allOf": [ { "$ref": "#/components/schemas/fleetNetworkingDeviceInstanceUseType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Represents physical network interface. The 'interface' reference points to a Network Interface object.", "x-f5xc-description-medium": "Represents physical network interface. The 'interface' reference points to a Network Interface object. Attributes such as Labels, MTU from Network Interface must be applied to the device.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for fleetNetworkingDeviceInstanceType", "required_fields": [ "interface" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for fleetNetworkingDeviceInstanceType\nmetadata:\n name: example\n namespace: default\nspec:\n interface: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"interface\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "fleetNetworkingDeviceInstanceUseType": { "type": "string", "description": "Defines how the device is used\n\nIf networking device is owned by VER, it is available for users to configure as required\nIf networking device is owned by VER, it is included in bootstrap config and member of outside network.\nIf networking device is owned by VER, it is included in bootstrap config and member of inside network.", "title": "Network Device Use", "enum": [ "NETWORK_INTERFACE_USE_REGULAR", "NETWORK_INTERFACE_USE_OUTSIDE", "NETWORK_INTERFACE_USE_INSIDE" ], "default": "NETWORK_INTERFACE_USE_REGULAR", "x-displayname": "Network Device Use.", "x-ves-proto-enum": "ves.io.schema.fleet.NetworkingDeviceInstanceUseType", "x-f5xc-description-short": "Defines how the device is used If networking device is owned by VER, it is available for users to configure as required If networking device is...", "x-f5xc-description-medium": "Defines how the device is used If networking device is owned by VER, it is available for users to configure as required If networking device is owned by VER, it is included in bootstrap config and member of outside network. If networking device is owned by VER, it is included in bootstrap config...", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for fleetNetworkingDeviceInstanceUseType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for fleetNetworkingDeviceInstanceUseType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "fleetOntapVirtualStoragePoolType": { "type": "object", "description": "ONTAP Virtual Storage Pool definition.", "title": "Backend ONTAP Virtual Storage Pool", "x-displayname": "Backend ONTAP Virtual Storage Pool.", "x-ves-proto-message": "ves.io.schema.fleet.OntapVirtualStoragePoolType", "properties": { "labels": { "type": "object", "description": "List of labels for Storage Device used in NetApp ONTAP. It is used for storage class label match selection.", "title": "Storage Pool Labels", "x-displayname": "Storage Pool Labels.", "x-ves-example": "{\"department\":\"finance\", \"creditpoints\":\"6000\"}", "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": "20", "ves.io.schema.rules.map.values.string.max_len": "128", "ves.io.schema.rules.map.values.string.min_len": "1" }, "x-f5xc-example": "\"{\"department\":\"finance\", \"creditpoints\":\"6000\"}\"", "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": "20", "ves.io.schema.rules.map.values.string.max_len": "128", "ves.io.schema.rules.map.values.string.min_len": "1" }, "x-f5xc-description-short": "List of labels for Storage Device used in NetApp ONTAP. It is used for storage class label match selection.", "x-f5xc-description-medium": "List of labels for Storage Device used in NetApp ONTAP. It is used for storage class label match selection.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "volume_defaults": { "allOf": [ { "$ref": "#/components/schemas/fleetOntapVolumeDefaults" } ], "x-f5xc-description-short": "Configuration parameter for volume defaults.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "zone": { "type": "string", "description": "Virtual Storage Pool zone definition.", "title": "Pool Zone", "x-displayname": "Virtual Pool Zone.", "x-ves-example": "Us_east_1b.", "x-f5xc-example": "us_east_1b", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for fleetOntapVirtualStoragePoolType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for fleetOntapVirtualStoragePoolType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "fleetOntapVolumeDefaults": { "type": "object", "description": "It controls how each volume is provisioned by default using these OPTIONS in a special section of the configuration.", "title": "Backend OnTap Volume Defaults", "x-displayname": "Backend OnTap Volume Defaults.", "x-ves-oneof-field-qos_policy_choice": "[\"adaptive_qos_policy\",\"no_qos\",\"qos_policy\"]", "x-ves-proto-message": "ves.io.schema.fleet.OntapVolumeDefaults", "properties": { "adaptive_qos_policy": { "type": "string", "description": "Exclusive with [no_qos qos_policy]\nEnter Adaptive QoS Policy Name.", "title": "Storage Server IP address", "minLength": 1, "maxLength": 128, "x-displayname": "Adaptive QoS Policy name.", "x-ves-validation-rules": { "ves.io.schema.rules.string.max_len": "128", "ves.io.schema.rules.string.min_len": "1" }, "x-validation-rules": { "ves.io.schema.rules.string.max_len": "128", "ves.io.schema.rules.string.min_len": "1" }, "x-f5xc-description-short": "Policy configuration for this feature.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "minLength": 1, "maxLength": 128, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "no_qos", "qos_policy" ] }, "encryption": { "type": "boolean", "description": "Enable NetApp volume encryption.", "title": "Enable Encryption", "format": "boolean", "x-displayname": "Enable Encryption.", "x-ves-example": "False", "x-f5xc-example": "false", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "export_policy": { "type": "string", "description": "Export policy to use.", "title": "Export Policy", "x-displayname": "Export Policy.", "x-ves-example": "Default", "x-f5xc-example": "default", "x-f5xc-description-short": "Policy configuration for this feature.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "no_qos": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "adaptive_qos_policy", "qos_policy" ] }, "qos_policy": { "type": "string", "description": "Exclusive with [adaptive_qos_policy no_qos]\nEnter QoS Policy Name.", "title": "QoS Policy Name", "minLength": 1, "maxLength": 128, "x-displayname": "QoS Policy Name.", "x-ves-validation-rules": { "ves.io.schema.rules.string.max_len": "128", "ves.io.schema.rules.string.min_len": "1" }, "x-validation-rules": { "ves.io.schema.rules.string.max_len": "128", "ves.io.schema.rules.string.min_len": "1" }, "x-f5xc-description-short": "Policy configuration for this feature.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "minLength": 1, "maxLength": 128, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "adaptive_qos_policy", "no_qos" ] }, "security_style": { "type": "string", "description": "Security style for new volumes.", "title": "Security Style", "x-displayname": "Security Style.", "x-ves-example": "Unix", "x-f5xc-example": "unix", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "snapshot_dir": { "type": "boolean", "description": "Access to the .snapshot directory.", "title": "Access to Snapshot Directory", "format": "boolean", "x-displayname": "Access to Snapshot Directory.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "snapshot_policy": { "type": "string", "description": "Snapshot policy to use.", "title": "Snapshot Policy", "x-displayname": "Snapshot Policy.", "x-ves-example": "None", "x-f5xc-example": "none", "x-f5xc-description-short": "Policy configuration for this feature.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "snapshot_reserve": { "type": "string", "description": "Percentage of volume reserved for snapshots. \"0\" if snapshot policy is \"none\", else \"\"", "title": "Snapshot Rerserved", "x-displayname": "Snapshot Reserved.", "x-ves-example": "10", "x-f5xc-example": "10", "x-f5xc-description-short": "Percentage of volume reserved for snapshots. \"0\" if snapshot policy is \"none\", else \"\".", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "space_reserve": { "type": "string", "description": "Space reservation mode; β€œnone” (thin) or β€œvolume” (thick)", "title": "Space Reservation Mode", "x-displayname": "Space Reservation Mode.", "x-ves-example": "Thick", "x-ves-validation-rules": { "ves.io.schema.rules.string.in": "[\\\"none\\\",\\\"thick\\\"]" }, "x-f5xc-example": "thick", "x-validation-rules": { "ves.io.schema.rules.string.in": "[\\\"none\\\",\\\"thick\\\"]" }, "x-f5xc-description-short": "Space reservation mode; β€œnone” (thin) or β€œvolume” (thick).", "maxLength": 1024, "enum": [ "none", "thick" ], "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "split_on_clone": { "type": "boolean", "description": "Split a clone from its parent upon creation.", "title": "Split on Clone", "format": "boolean", "x-displayname": "Split on Clone.", "x-ves-example": "False", "x-f5xc-example": "false", "x-f5xc-description-short": "Split a clone from its parent upon creation.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "tiering_policy": { "type": "string", "description": "Tiering policy to use. \"none\" is default.", "title": "Tiering Policy", "x-displayname": "Tiering Policy.", "x-ves-example": "Snapshot-only.", "x-f5xc-example": "snapshot-only", "x-f5xc-description-short": "Policy configuration for this feature.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "unix_permissions": { "type": "integer", "description": "Unix permission mode for new volumes. All allowed 777.", "title": "Unix Mode Permissions", "format": "int32", "x-displayname": "Unix Mode Permissions.", "x-ves-example": "777", "x-f5xc-example": "777", "x-f5xc-description-short": "Unix permission mode for new volumes. All allowed 777.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "It controls how each volume is provisioned by default using these OPTIONS in a special section of the configuration.", "x-f5xc-description-medium": "It controls how each volume is provisioned by default using these OPTIONS in a special section of the configuration.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for fleetOntapVolumeDefaults", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for fleetOntapVolumeDefaults\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "fleetPsoArrayConfiguration": { "type": "object", "description": "Device configuration for PSO Arrays.", "title": "Arrays Configuration", "x-displayname": "Arrays Configuration.", "x-ves-proto-message": "ves.io.schema.fleet.PsoArrayConfiguration", "properties": { "flash_array": { "allOf": [ { "$ref": "#/components/schemas/fleetFlashArrayType" } ], "x-f5xc-description-short": "Configuration parameter for flash array.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "flash_blade": { "allOf": [ { "$ref": "#/components/schemas/fleetFlashBladeType" } ], "x-f5xc-description-short": "Configuration parameter for flash blade.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for fleetPsoArrayConfiguration", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for fleetPsoArrayConfiguration\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "fleetReplaceRequest": { "type": "object", "description": "This is the input message of the 'Replace' RPC.", "title": "ReplaceRequest is used to replace contents of a fleet", "x-displayname": "Replace Request.", "x-ves-proto-message": "ves.io.schema.fleet.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/schemafleetReplaceSpecType" } ], "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 fleetReplaceRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for fleetReplaceRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "fleetReplaceResponse": { "type": "object", "x-ves-proto-message": "ves.io.schema.fleet.ReplaceResponse", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for fleetReplaceResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for fleetReplaceResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "fleetSetLogAnonymizationRequest": { "type": "object", "description": "Request message for setting log anonymization choice for the fleet Object.", "title": "LogAnonymizationRequest", "x-displayname": "Log Anonymization Request.", "x-ves-proto-message": "ves.io.schema.fleet.SetLogAnonymizationRequest", "properties": { "enabled": { "type": "boolean", "description": "Log anonymization enablement for the fleet Object, false to disable and true to enable.", "title": "Anonymization enablement", "format": "boolean", "x-displayname": "Anonymization Enabled.", "x-f5xc-example": "True", "x-f5xc-description-short": "Log anonymization enablement for the fleet Object, false to disable and true to enable.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "name": { "type": "string", "description": "Name of the Fleet object.", "title": "Name of the Fleet object", "x-displayname": "Fleet 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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" }, "namespace": { "type": "string", "description": "Namespace of the Fleet object.", "title": "Namespace of the Fleet object", "x-displayname": "Fleet Namespace.", "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", "validation": { "rfc": "RFC 1035", "standard": "DNS-1035 label (alpha-first)" }, "metadata": { "source": "inferred", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" } }, "x-f5xc-description-short": "Request message for setting log anonymization choice for the fleet Object.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for fleetSetLogAnonymizationRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for fleetSetLogAnonymizationRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "fleetSetLogAnonymizationResponse": { "type": "object", "description": "Response message for setting log anonymization for the fleet Object.", "title": "LogAnonymizationResponse", "x-displayname": "Log Anonymization Response.", "x-ves-proto-message": "ves.io.schema.fleet.SetLogAnonymizationResponse", "x-f5xc-description-short": "Response message for setting log anonymization for the fleet Object.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for fleetSetLogAnonymizationResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for fleetSetLogAnonymizationResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "fleetSriovInterface": { "type": "object", "description": "Single Root I/O Virtualization interfaces configured explicitly\nBy default no SR-IOV interface is assigned to the fleet.", "title": "SriovInterface specifies the configuration for SR-IOV interfaces and how many virtual functions it has", "x-displayname": "SR-IOV Interfaces.", "x-ves-proto-message": "ves.io.schema.fleet.SriovInterface", "properties": { "interface_name": { "type": "string", "description": "Name of SR-IOV physical interface.", "title": "interface_name", "x-displayname": "Name of physical interface.", "x-ves-example": "Eth0", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true" }, "x-f5xc-example": "eth0", "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "number_of_vfio_vfs": { "type": "integer", "description": "Number of virtual functions reserved for VNFs and DPDK-based CNFs.", "title": "number_of_vfio_vfs", "format": "int64", "x-displayname": "Number of virtual functions reserved for vfio.", "x-ves-example": "2", "x-f5xc-example": "2", "x-f5xc-description-short": "Number of virtual functions reserved for VNFs and DPDK-based CNFs.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "number_of_vfs": { "type": "integer", "description": "Total number of virtual functions.", "title": "number_of_vfs", "format": "int64", "x-displayname": "Total number of virtual functions.", "x-ves-example": "3", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true" }, "x-f5xc-example": "3", "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": "Single Root I/O Virtualization interfaces configured explicitly By default no SR-IOV interface is assigned to the fleet.", "x-f5xc-description-medium": "Single Root I/O Virtualization interfaces configured explicitly By default no SR-IOV interface is assigned to the fleet.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for fleetSriovInterface", "required_fields": [ "interface_name", "number_of_vfs" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for fleetSriovInterface\nmetadata:\n name: example\n namespace: default\nspec:\n interface_name: value\n number_of_vfs: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"interface_name\": \"value\",\n \"number_of_vfs\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "fleetSriovInterfacesListType": { "type": "object", "description": "List of all custom SR-IOV interfaces configuration.", "title": "Custom SR-IOV interfaces Configuration List", "x-displayname": "Custom SR-IOV interfaces Configuration List.", "x-ves-proto-message": "ves.io.schema.fleet.SriovInterfacesListType", "properties": { "sriov_interface": { "type": "array", "description": "Use custom SR-IOV interfaces Configuration.", "title": "Custom SR-IOV interfaces Configuration", "items": { "$ref": "#/components/schemas/fleetSriovInterface" }, "x-displayname": "Custom SR-IOV interfaces Configuration.", "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": "Use custom SR-IOV interfaces Configuration.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "List of all custom SR-IOV interfaces configuration.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for fleetSriovInterfacesListType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for fleetSriovInterfacesListType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "fleetStatusObject": { "type": "object", "description": "Most recently observed status of fleet object.", "title": "Fleet Status", "x-displayname": "Status Object.", "x-ves-proto-message": "ves.io.schema.fleet.StatusObject", "properties": { "conditions": { "type": "array", "description": "Conditions reported by various components of the system.", "title": "conditions", "items": { "$ref": "#/components/schemas/schemaConditionType" }, "x-displayname": "Conditions.", "x-f5xc-description-short": "Conditions reported by various components 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 } }, "status": { "allOf": [ { "$ref": "#/components/schemas/fleetFleetStatus" } ], "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-08-20T09:12:47+00:00" } }, "x-f5xc-description-short": "Most recently observed status of fleet object.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for fleetStatusObject", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for fleetStatusObject\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "fleetStorageClassCustomType": { "type": "object", "description": "Custom Storage Class allows to insert Kubernetes storageclass definition which will be applied into given site.", "title": "Custom StorageClass", "x-displayname": "Custom StorageClass.", "x-ves-proto-message": "ves.io.schema.fleet.StorageClassCustomType", "properties": { "yaml": { "type": "string", "description": "K8s YAML for StorageClass.", "title": "Storage Class YAML", "maxLength": 4096, "x-displayname": "Storage Class YAML.", "x-ves-example": "Value", "x-ves-validation-rules": { "ves.io.schema.rules.string.max_len": "4096", "ves.io.schema.rules.string.uri_ref": "true" }, "x-f5xc-example": "value", "x-validation-rules": { "ves.io.schema.rules.string.max_len": "4096", "ves.io.schema.rules.string.uri_ref": "true" }, "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 4096, "minLength": 1, "formatDescription": "Valid parseable YAML", "validation": { "customRule": "Must be valid YAML" }, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" }, "deterministic": true, "format": "uri" }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Custom Storage Class allows to insert Kubernetes storageclass definition which will be applied into given site.", "x-f5xc-description-medium": "Custom Storage Class allows to insert Kubernetes storageclass definition which will be applied into given site.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for fleetStorageClassCustomType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for fleetStorageClassCustomType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "fleetStorageClassHpeStorageType": { "type": "object", "description": "Storage class Device configuration for HPE Storage.", "title": "HPE Storage", "x-displayname": "HPE Storage.", "x-ves-proto-message": "ves.io.schema.fleet.StorageClassHpeStorageType", "properties": { "allow_mutations": { "type": "string", "description": "Mutation can override specified parameters.", "title": "allowMutations", "maxLength": 256, "x-displayname": "AllowMutations.", "x-ves-example": "Description,limitIops.", "x-ves-validation-rules": { "ves.io.schema.rules.string.max_len": "256" }, "x-f5xc-example": "description,limitIops", "x-validation-rules": { "ves.io.schema.rules.string.max_len": "256" }, "x-f5xc-description-short": "Mutation can override specified parameters.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 256, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "allow_overrides": { "type": "string", "description": "PVC can override specified parameters.", "title": "allowOverrides", "maxLength": 256, "x-displayname": "AllowOverrides.", "x-ves-example": "Description,limitIops.", "x-ves-validation-rules": { "ves.io.schema.rules.string.max_len": "256" }, "x-f5xc-example": "description,limitIops", "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "dedupe_enabled": { "type": "boolean", "description": "Indicates that the volume should enable deduplication.", "title": "dedupeEnabled", "format": "boolean", "x-displayname": "DedupeEnabled.", "x-ves-example": "True", "x-f5xc-example": "true", "x-f5xc-description-short": "Indicates that the volume should enable deduplication.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "description": { "type": "string", "description": "The SecretName parameter is used to identify name of secret to identify backend storage's auth information.", "title": "Description", "maxLength": 512, "x-displayname": "Description.", "x-ves-example": "Volume created by using a default Secret with the HPE CSI Driver for Kubernetes.", "x-ves-validation-rules": { "ves.io.schema.rules.string.max_len": "512" }, "x-f5xc-example": "Volume created by using a default Secret with the HPE CSI Driver for Kubernetes", "x-validation-rules": { "ves.io.schema.rules.string.max_len": "512" }, "x-f5xc-description-short": "The SecretName parameter is used to identify name of secret to identify backend storage's auth information.", "x-f5xc-description-medium": "The SecretName parameter is used to identify name of secret to identify backend storage's auth information.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 512, "minLength": 0, "characterSet": { "description": "Free text with UTF-8 support" }, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "destroy_on_delete": { "type": "boolean", "description": "Indicates the backing Nimble volume (including snapshots) should be destroyed when the PVC is deleted.", "title": "destroyOnDelete", "format": "boolean", "x-displayname": "DestroyOnDelete.", "x-ves-example": "False", "x-f5xc-example": "false", "x-f5xc-description-short": "Indicates the backing Nimble volume (including snapshots) should be destroyed when the PVC is deleted.", "x-f5xc-description-medium": "Indicates the backing Nimble volume (including snapshots) should be destroyed when the PVC is deleted.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "encrypted": { "type": "boolean", "description": "Indicates that the volume should be encrypted.", "title": "encrypted", "format": "boolean", "x-displayname": "Encrypted", "x-ves-example": "False", "x-f5xc-example": "false", "x-f5xc-description-short": "Indicates that the volume should be encrypted.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "folder": { "type": "string", "description": "The name of the folder in which to place the volume.", "title": "folder", "maxLength": 128, "x-displayname": "Folder", "x-ves-example": "Default", "x-ves-validation-rules": { "ves.io.schema.rules.string.max_len": "128" }, "x-f5xc-example": "default", "x-validation-rules": { "ves.io.schema.rules.string.max_len": "128" }, "x-f5xc-description-short": "The name of the folder in which to place the volume.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 128, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "limit_iops": { "type": "string", "description": "The IOPS limit of the volume.", "title": "limitIops", "format": "int64", "x-displayname": "LimitIops", "x-ves-example": "-1", "x-f5xc-example": "-1", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "format": "int64", "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "limit_mbps": { "type": "string", "description": "The IOPS limit of the volume.", "title": "limitMbps", "format": "int64", "x-displayname": "LimitMbps", "x-ves-example": "-1", "x-f5xc-example": "-1", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "format": "int64", "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "performance_policy": { "type": "string", "description": "The name of the performance policy to assign to the volume.", "title": "performancePolicy", "maxLength": 128, "x-displayname": "PerformancePolicy.", "x-ves-example": "Default", "x-ves-validation-rules": { "ves.io.schema.rules.string.max_len": "128" }, "x-f5xc-example": "default", "x-validation-rules": { "ves.io.schema.rules.string.max_len": "128" }, "x-f5xc-description-short": "Policy configuration for this feature.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 128, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "pool": { "type": "string", "description": "The name of the pool in which to place the volume.", "title": "pool", "maxLength": 128, "x-displayname": "Pool", "x-ves-example": "Default", "x-ves-validation-rules": { "ves.io.schema.rules.string.max_len": "128" }, "x-f5xc-example": "default", "x-validation-rules": { "ves.io.schema.rules.string.max_len": "128" }, "x-f5xc-description-short": "The name of the pool in which to place the volume.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 128, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "protection_template": { "type": "string", "description": "The name of the performance policy to assign to the volume.", "title": "protectionTemplate", "maxLength": 128, "x-displayname": "ProtectionTemplate.", "x-ves-example": "Retain-30Daily.", "x-ves-validation-rules": { "ves.io.schema.rules.string.max_len": "128" }, "x-f5xc-example": "Retain-30Daily", "x-validation-rules": { "ves.io.schema.rules.string.max_len": "128" }, "x-f5xc-description-short": "The name of the performance policy to assign to the volume.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 128, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "secret_name": { "type": "string", "description": "The SecretName parameter is used to identify name of secret to identify backend storage's auth information.", "title": "Secret Name", "maxLength": 256, "x-displayname": "Secret Name.", "x-ves-example": "Hpe-backend.", "x-ves-validation-rules": { "ves.io.schema.rules.string.max_len": "256" }, "x-f5xc-example": "hpe-backend", "x-validation-rules": { "ves.io.schema.rules.string.max_len": "256" }, "x-f5xc-description-short": "The SecretName parameter is used to identify name of secret to identify backend storage's auth information.", "x-f5xc-description-medium": "The SecretName parameter is used to identify name of secret to identify backend storage's auth information.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 256, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "secret_namespace": { "type": "string", "description": "The SecretNamespace parameter is used to identify name of namespace where secret resides.", "title": "Secret Namespace", "maxLength": 256, "x-displayname": "Secret Namespace.", "x-ves-example": "Hpe-storage.", "x-ves-validation-rules": { "ves.io.schema.rules.string.max_len": "256" }, "x-f5xc-example": "hpe-storage", "x-validation-rules": { "ves.io.schema.rules.string.max_len": "256" }, "x-f5xc-description-short": "The SecretNamespace parameter is used to identify name of namespace where secret resides.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 256, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "sync_on_detach": { "type": "boolean", "description": "Indicates that a snapshot of the volume should be synced to the replication partner each time it is detached from a node.", "title": "syncOnDetach", "format": "boolean", "x-displayname": "SyncOnDetach.", "x-ves-example": "False", "x-f5xc-example": "false", "x-f5xc-description-short": "Indicates that a snapshot of the volume should be synced to the replication partner each time it is detached from a node.", "x-f5xc-description-medium": "Indicates that a snapshot of the volume should be synced to the replication partner each time it is detached from a node.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "thick": { "type": "boolean", "description": "Indicates that the volume should be thick provisioned.", "title": "thick", "format": "boolean", "x-displayname": "Thick", "x-ves-example": "False", "x-f5xc-example": "false", "x-f5xc-description-short": "Indicates that the volume should be thick provisioned.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Storage class Device configuration for HPE Storage.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for fleetStorageClassHpeStorageType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for fleetStorageClassHpeStorageType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "fleetStorageClassNetappTridentType": { "type": "object", "description": "Storage class Device configuration for NetApp Trident.", "title": "NetApp Trident Storage", "x-displayname": "NetApp Trident Storage.", "x-ves-proto-message": "ves.io.schema.fleet.StorageClassNetappTridentType", "properties": { "selector": { "type": "object", "description": "Using the Selector field, each StorageClass calls out which virtual pool(s) may be used to host a volume.\nThe volume will have the aspects defined in the chosen virtual pool.", "title": "Selector", "x-displayname": "Selector", "x-ves-example": "Protection=silver; creditpoints=20000.", "x-f5xc-example": "protection=silver; creditpoints=20000", "x-f5xc-description-short": "Using the Selector field, each StorageClass calls out which virtual pool(s) may be used to host a volume.", "x-f5xc-description-medium": "Using the Selector field, each StorageClass calls out which virtual pool(s) may be used to host a volume. The volume will have the aspects defined in the chosen virtual pool.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "storage_pools": { "type": "string", "description": "The storagePools parameter is used to further restrict the set of pools that match any specified attributes.", "title": "Storage Pools", "maxLength": 512, "x-displayname": "Storage Pools.", "x-ves-example": "Backend-name1:.*;backend-name2:storagePoolListName.", "x-ves-validation-rules": { "ves.io.schema.rules.string.max_len": "512" }, "x-f5xc-example": "backend-name1:.*;backend-name2:storagePoolListName", "x-validation-rules": { "ves.io.schema.rules.string.max_len": "512" }, "x-f5xc-description-short": "The storagePools parameter is used to further restrict the set of pools that match any specified attributes.", "x-f5xc-description-medium": "The storagePools parameter is used to further restrict the set of pools that match any specified attributes.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 512, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Storage class Device configuration for NetApp Trident.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for fleetStorageClassNetappTridentType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for fleetStorageClassNetappTridentType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "fleetStorageClassPureServiceOrchestratorType": { "type": "object", "description": "Storage class Device configuration for Pure Service Orchestrator.", "title": "Pure Storage Service Orchestrator", "x-displayname": "Pure Storage Service Orchestrator.", "x-ves-proto-message": "ves.io.schema.fleet.StorageClassPureServiceOrchestratorType", "properties": { "backend": { "type": "string", "description": "Defines type of Pure storage backend block or file.\nThe volume will have the aspects defined in the chosen virtual pool.", "title": "Backend", "x-displayname": "Backend", "x-ves-example": "Block", "x-ves-validation-rules": { "ves.io.schema.rules.string.in": "[\\\"block\\\",\\\"file\\\"]" }, "x-f5xc-example": "block", "x-validation-rules": { "ves.io.schema.rules.string.in": "[\\\"block\\\",\\\"file\\\"]" }, "x-f5xc-description-short": "Defines type of Pure storage backend block or file. The volume will have the aspects defined in the chosen virtual pool.", "x-f5xc-description-medium": "Defines type of Pure storage backend block or file. The volume will have the aspects defined in the chosen virtual pool.", "maxLength": 1024, "enum": [ "block", "file" ], "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "bandwidth_limit": { "type": "string", "description": "It must be between 1 MB/s and 512 GB/s. Enter the size as a number (bytes must be multiple of 512) or number with a single character unit symbol.\nValid unit symbols are K, M, G, representing KiB, MiB, and GiB.", "title": "Bandwidth Limit", "maxLength": 12, "x-displayname": "Bandwidth Limit.", "x-ves-example": "1G", "x-ves-validation-rules": { "ves.io.schema.rules.string.max_len": "12" }, "x-f5xc-example": "1G", "x-validation-rules": { "ves.io.schema.rules.string.max_len": "12" }, "x-f5xc-description-short": "It must be between 1 MB/s and 512 GB/s. Enter the size as a number (bytes must be multiple of 512) or number with a single character unit symbol.", "x-f5xc-description-medium": "It must be between 1 MB/s and 512 GB/s. Enter the size as a number (bytes must be multiple of 512) or number with a single character unit symbol. Valid unit symbols are K, M, G, representing KiB, MiB, and GiB.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 12, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "iops_limit": { "type": "integer", "description": "Enable IOPS limitation. It must be between 100 and 100 million. If value is 0, IOPS limit is not defined.", "title": "IOPS Limit", "format": "int64", "x-displayname": "IOPS Limit.", "x-ves-example": "3000", "x-ves-validation-rules": { "ves.io.schema.rules.uint32.ranges": "0,100-100000000" }, "x-f5xc-example": "3000", "x-validation-rules": { "ves.io.schema.rules.uint32.ranges": "0,100-100000000" }, "x-f5xc-description-short": "Enable IOPS limitation. It must be between 100 and 100 million.", "x-f5xc-description-medium": "Enable IOPS limitation. It must be between 100 and 100 million. If value is 0, IOPS limit is not defined.", "x-f5xc-constraints": { "constraintType": "number", "category": "discovery", "maximum": 100000000, "deterministic": true, "metadata": { "source": "api-probed", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Storage class Device configuration for Pure Service Orchestrator.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for fleetStorageClassPureServiceOrchestratorType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for fleetStorageClassPureServiceOrchestratorType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "fleetStorageDeviceHpeStorageType": { "type": "object", "description": "Device configuration for HPE Storage.", "title": "HPE Storage", "x-displayname": "HPE Storage.", "x-ves-proto-message": "ves.io.schema.fleet.StorageDeviceHpeStorageType", "properties": { "api_server_port": { "type": "integer", "description": "Enter Storage Server Port.", "title": "Storage server Port", "format": "int64", "x-displayname": "Storage server Port.", "x-ves-example": "8080", "x-ves-validation-rules": { "ves.io.schema.rules.uint32.gte": "1", "ves.io.schema.rules.uint32.lte": "65535" }, "x-f5xc-example": "8080", "x-validation-rules": { "ves.io.schema.rules.uint32.gte": "1", "ves.io.schema.rules.uint32.lte": "65535" }, "x-f5xc-constraints": { "constraintType": "number", "category": "discovery", "minimum": 1, "maximum": 65535, "deterministic": true, "metadata": { "source": "api-probed", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "iscsi_chap_password": { "allOf": [ { "$ref": "#/components/schemas/schemaSecretType" } ], "x-f5xc-description-short": "Configuration parameter for iscsi chap password.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "iscsi_chap_user": { "type": "string", "description": "Chap Username to connect to the HPE storage.", "title": "iscsi chapUser", "maxLength": 256, "x-displayname": "Iscsi chapUser.", "x-ves-example": "Admin", "x-ves-validation-rules": { "ves.io.schema.rules.string.max_len": "256" }, "x-f5xc-example": "admin", "x-validation-rules": { "ves.io.schema.rules.string.max_len": "256" }, "x-f5xc-description-short": "Chap Username to connect to the HPE storage.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 256, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "password": { "allOf": [ { "$ref": "#/components/schemas/schemaSecretType" } ], "x-f5xc-example": "MySecureP@ssw0rd123!", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "storage_server_ip_address": { "type": "string", "description": "Enter storage server IP address.", "title": "Storage Server IP address", "x-displayname": "Storage Server IP address.", "x-ves-example": "192.0.2.108.", "x-ves-validation-rules": { "ves.io.schema.rules.string.ipv4": "true" }, "x-f5xc-example": "192.0.2.108", "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "storage_server_name": { "type": "string", "description": "Enter storage server Name.", "title": "Storage Server Name", "x-displayname": "Storage Server Name.", "x-ves-example": "Hpe-backend.", "x-ves-validation-rules": { "ves.io.schema.rules.string.hostname": "true" }, "x-f5xc-example": "hpe-backend", "x-validation-rules": { "ves.io.schema.rules.string.hostname": "true" }, "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 1024, "format": "hostname", "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "username": { "type": "string", "description": "Username to connect to the HPE storage management IP.", "title": "Username", "minLength": 1, "maxLength": 256, "x-displayname": "Username", "x-ves-example": "Admin", "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": "admin", "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": "Username to connect to the HPE storage management IP.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "minLength": 1, "maxLength": 256, "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-08-20T09:12:47+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 fleetStorageDeviceHpeStorageType", "required_fields": [ "username" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for fleetStorageDeviceHpeStorageType\nmetadata:\n name: example\n namespace: default\nspec:\n username: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"username\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "fleetStorageDeviceNetappBackendOntapNasType": { "type": "object", "description": "Configuration of storage backend for NetApp ONTAP NAS.", "title": "Storage Backend NetApp ONTAP NAS", "x-displayname": "Storage Backend NetApp ONTAP NAS.", "x-ves-oneof-field-data_lif": "[\"data_lif_dns_name\",\"data_lif_ip\"]", "x-ves-oneof-field-management_lif": "[\"management_lif_dns_name\",\"management_lif_ip\"]", "x-ves-proto-message": "ves.io.schema.fleet.StorageDeviceNetappBackendOntapNasType", "properties": { "auto_export_cidrs": { "allOf": [ { "$ref": "#/components/schemas/viewsPrefixStringListType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "auto_export_policy": { "type": "boolean", "description": "Enable automatic export policy creation and updating.", "title": "Auto Export Policy", "format": "boolean", "x-displayname": "Auto Export Policy.", "x-f5xc-description-short": "Policy configuration for this feature.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "backend_name": { "type": "string", "description": "Configuration of Backend Name. Driver is name + \"_\" + dataLIF.", "title": "Storage Backend Name", "minLength": 1, "maxLength": 50, "x-displayname": "Storage Backend Name.", "x-ves-example": "Value", "x-ves-validation-rules": { "ves.io.schema.rules.string.max_len": "50", "ves.io.schema.rules.string.min_len": "1" }, "x-f5xc-example": "value", "x-validation-rules": { "ves.io.schema.rules.string.max_len": "50", "ves.io.schema.rules.string.min_len": "1" }, "x-f5xc-description-short": "Configuration of Backend Name. Driver is name + \"_\" + dataLIF.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "minLength": 1, "maxLength": 50, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "client_certificate": { "type": "string", "description": "Please Enter Base64-encoded value of client certificate. Used for certificate-based auth.", "title": "Client Certificate", "maxLength": 8192, "x-displayname": "Client Certificate.", "x-ves-example": "Value", "x-ves-validation-rules": { "ves.io.schema.rules.string.max_len": "8192" }, "x-f5xc-example": "value", "x-validation-rules": { "ves.io.schema.rules.string.max_len": "8192" }, "x-f5xc-description-short": "Please Enter Base64-encoded value of client certificate. Used for certificate-based auth.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 8192, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "client_private_key": { "allOf": [ { "$ref": "#/components/schemas/schemaSecretType" } ], "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "data_lif_dns_name": { "type": "string", "description": "Exclusive with [data_lif_ip]\nBackend Data LIF IP Address's IP address is discovered using DNS name resolution. The name given here is fully qualified domain name.", "title": "Backend Data LIF Name", "maxLength": 256, "x-displayname": "Backend Data LIF Name.", "x-ves-example": "storage.local.", "x-ves-validation-rules": { "ves.io.schema.rules.string.hostname": "true", "ves.io.schema.rules.string.max_len": "256" }, "x-f5xc-example": "storage.local", "x-validation-rules": { "ves.io.schema.rules.string.hostname": "true", "ves.io.schema.rules.string.max_len": "256" }, "x-f5xc-description-short": "Exclusive with [data_lif_ip] Backend Data LIF IP Address's IP address is discovered using DNS name resolution.", "x-f5xc-description-medium": "Exclusive with [data_lif_ip] Backend Data LIF IP Address's IP address is discovered using DNS name resolution. The name given here is fully qualified domain name.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 256, "format": "hostname", "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "data_lif_ip" ] }, "data_lif_ip": { "type": "string", "description": "Exclusive with [data_lif_dns_name]\nBackend Data LIF IP Address is reachable at the given IP address.", "title": "Backend Data LIF IP Address", "x-displayname": "Backend Data LIF IP Address.", "x-ves-example": "192.0.2.103.", "x-ves-validation-rules": { "ves.io.schema.rules.string.ip": "true" }, "x-f5xc-example": "192.0.2.103", "x-validation-rules": { "ves.io.schema.rules.string.ip": "true" }, "x-f5xc-description-short": "Exclusive with [data_lif_dns_name] Backend Data LIF IP Address is reachable at the given IP address.", "x-f5xc-description-medium": "Exclusive with [data_lif_dns_name] Backend Data LIF IP Address is reachable at the given IP address.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 1024, "format": "ip", "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "data_lif_dns_name" ] }, "labels": { "type": "object", "description": "List of labels for Storage Device used in NetApp ONTAP. It is used for storage class selection.", "title": "Backend Labels", "x-displayname": "Backend Labels.", "x-ves-example": "{\"store\":\"nas_store\"}", "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": "20", "ves.io.schema.rules.map.values.string.max_len": "128", "ves.io.schema.rules.map.values.string.min_len": "1" }, "x-f5xc-example": "\"{\"store\":\"nas_store\"}\"", "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": "20", "ves.io.schema.rules.map.values.string.max_len": "128", "ves.io.schema.rules.map.values.string.min_len": "1" }, "x-f5xc-description-short": "List of labels for Storage Device used in NetApp ONTAP. It is used for storage class selection.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "limit_aggregate_usage": { "type": "string", "description": "Fail provisioning if usage is above this percentage. Not enforced by default.", "title": "Limit Aggregate Usage", "x-displayname": "Limit Aggregate Usage.", "x-ves-example": "80%", "x-f5xc-example": "80%", "x-f5xc-description-short": "Fail provisioning if usage is above this percentage. Not enforced by default.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "limit_volume_size": { "type": "string", "description": "Fail provisioning if requested volume size is above this value. Not enforced by default.", "title": "Limit Volume Size", "x-displayname": "Limit Volume Size.", "x-ves-example": "50Gi", "x-f5xc-example": "50Gi", "x-f5xc-description-short": "Fail provisioning if requested volume size is above this value. Not enforced by default.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "management_lif_dns_name": { "type": "string", "description": "Exclusive with [management_lif_ip]\nBackend Management LIF IP Address's IP address is discovered using DNS name resolution. The name given here is fully qualified domain name.", "title": "Backend Management LIF Name", "maxLength": 256, "x-displayname": "Backend Management LIF Name.", "x-ves-example": "storage.local.", "x-ves-validation-rules": { "ves.io.schema.rules.string.hostname": "true", "ves.io.schema.rules.string.max_len": "256" }, "x-f5xc-example": "storage.local", "x-validation-rules": { "ves.io.schema.rules.string.hostname": "true", "ves.io.schema.rules.string.max_len": "256" }, "x-f5xc-description-short": "Exclusive with [management_lif_ip] Backend Management LIF IP Address's IP address is discovered using DNS name resolution.", "x-f5xc-description-medium": "Exclusive with [management_lif_ip] Backend Management LIF IP Address's IP address is discovered using DNS name resolution. The name given here is fully qualified domain name.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 256, "format": "hostname", "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "management_lif_ip" ] }, "management_lif_ip": { "type": "string", "description": "Exclusive with [management_lif_dns_name]\nBackend Management LIF IP Address is reachable at the given IP address.", "title": "Backend Management LIF IP Address", "x-displayname": "Backend Management LIF IP Address.", "x-ves-example": "192.0.2.103.", "x-ves-validation-rules": { "ves.io.schema.rules.string.ip": "true" }, "x-f5xc-example": "192.0.2.103", "x-validation-rules": { "ves.io.schema.rules.string.ip": "true" }, "x-f5xc-description-short": "Exclusive with [management_lif_dns_name] Backend Management LIF IP Address is reachable at the given IP address.", "x-f5xc-description-medium": "Exclusive with [management_lif_dns_name] Backend Management LIF IP Address is reachable at the given IP address.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 1024, "format": "ip", "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "management_lif_dns_name" ] }, "nfs_mount_options": { "type": "string", "description": "Comma-separated list of NFS mount OPTIONS. Not enforced by default.", "title": "NFS Mount Options", "x-displayname": "NFS Mount OPTIONS.", "x-ves-example": "Nfsvers=4", "x-f5xc-example": "nfsvers=4", "x-f5xc-description-short": "Comma-separated list of NFS mount OPTIONS. Not enforced by default.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "password": { "allOf": [ { "$ref": "#/components/schemas/schemaSecretType" } ], "x-f5xc-example": "MySecureP@ssw0rd123!", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "region": { "type": "string", "description": "Virtual Pool Region.", "title": "Backend Region", "x-displayname": "Backend Region.", "x-ves-example": "Us_east_1b.", "x-f5xc-example": "us_east_1b", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "storage": { "type": "array", "description": "List of Virtual Storage Pool definitions which are referred back by Storage Class label match selection.", "title": "Virtual Storage Pools", "maxItems": 8, "items": { "$ref": "#/components/schemas/fleetOntapVirtualStoragePoolType" }, "x-displayname": "Virtual Storage 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": "List of Virtual Storage Pool definitions which are referred back by Storage Class label match selection.", "x-f5xc-description-medium": "List of Virtual Storage Pool definitions which are referred back by Storage Class label match selection.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 8, "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "storage_driver_name": { "type": "string", "description": "Configuration of Backend Name.", "title": "Storage Backend Driver", "x-displayname": "Storage Backend Driver.", "x-ves-example": "Ontap-nas", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.string.in": "[\\\"ontap-nas\\\",\\\"ontap-nas-economy\\\",\\\"ontap-nas-flexgroup\\\"]" }, "x-f5xc-example": "ontap-nas", "x-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.string.in": "[\\\"ontap-nas\\\",\\\"ontap-nas-economy\\\",\\\"ontap-nas-flexgroup\\\"]" }, "maxLength": 1024, "enum": [ "ontap-nas", "ontap-nas-economy", "ontap-nas-flexgroup" ], "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "storage_prefix": { "type": "string", "description": "Prefix used when provisioning new volumes in the SVM. Once set this cannot be updated.", "title": "Storage Prefix", "x-displayname": "Storage Prefix.", "x-ves-example": "Trident", "x-f5xc-example": "trident", "x-f5xc-description-short": "Prefix used when provisioning new volumes in the SVM. Once set this cannot be updated.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "svm": { "type": "string", "description": "Storage virtual machine to use. Derived if an SVM managementLIF is specified.", "title": "Backend SVM", "minLength": 1, "maxLength": 256, "x-displayname": "Backend SVM.", "x-ves-example": "Trident_svm.", "x-ves-validation-rules": { "ves.io.schema.rules.string.max_len": "256", "ves.io.schema.rules.string.min_len": "1" }, "x-f5xc-example": "trident_svm", "x-validation-rules": { "ves.io.schema.rules.string.max_len": "256", "ves.io.schema.rules.string.min_len": "1" }, "x-f5xc-description-short": "Storage virtual machine to use. Derived if an SVM managementLIF is specified.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "minLength": 1, "maxLength": 256, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "trusted_ca_certificate": { "type": "string", "description": "Please Enter Base64-encoded value of trusted CA certificate. Optional. Used for certificate-based auth..", "title": "Trusted CA Certificate", "maxLength": 8192, "x-displayname": "Trusted CA Certificate.", "x-ves-example": "Value", "x-ves-validation-rules": { "ves.io.schema.rules.string.max_len": "8192" }, "x-f5xc-example": "value", "x-validation-rules": { "ves.io.schema.rules.string.max_len": "8192" }, "x-f5xc-description-short": "Please Enter Base64-encoded value of trusted CA certificate. Optional.", "x-f5xc-description-medium": "Please Enter Base64-encoded value of trusted CA certificate. Optional. Used for certificate-based auth..", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 8192, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "username": { "type": "string", "description": "Username to connect to the cluster/SVM.", "title": "Username", "minLength": 1, "maxLength": 256, "x-displayname": "Username", "x-ves-example": "Cluster-admin.", "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": "cluster-admin", "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-constraints": { "constraintType": "string", "category": "discovery", "minLength": 1, "maxLength": 256, "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-08-20T09:12:47+00:00" }, "deterministic": true }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "volume_defaults": { "allOf": [ { "$ref": "#/components/schemas/fleetOntapVolumeDefaults" } ], "x-f5xc-description-short": "Configuration parameter for volume defaults.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Configuration of storage backend for NetApp ONTAP NAS.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for fleetStorageDeviceNetappBackendOntapNasType", "required_fields": [ "storage_driver_name", "username" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for fleetStorageDeviceNetappBackendOntapNasType\nmetadata:\n name: example\n namespace: default\nspec:\n storage_driver_name: value\n username: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"storage_driver_name\": \"value\",\n \"username\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "fleetStorageDeviceNetappBackendOntapSanType": { "type": "object", "description": "Configuration of storage backend for NetApp ONTAP SAN.", "title": "Storage Backend NetApp ONTAP SAN", "x-displayname": "Storage Backend NetApp ONTAP SAN.", "x-ves-oneof-field-chap_choice": "[\"no_chap\",\"use_chap\"]", "x-ves-oneof-field-data_lif": "[\"data_lif_dns_name\",\"data_lif_ip\"]", "x-ves-oneof-field-management_lif": "[\"management_lif_dns_name\",\"management_lif_ip\"]", "x-ves-proto-message": "ves.io.schema.fleet.StorageDeviceNetappBackendOntapSanType", "properties": { "client_certificate": { "type": "string", "description": "Please Enter Base64-encoded value of client certificate. Used for certificate-based auth.", "title": "Client Certificate", "maxLength": 8192, "x-displayname": "Client Certificate.", "x-ves-example": "Value", "x-ves-validation-rules": { "ves.io.schema.rules.string.max_len": "8192" }, "x-f5xc-example": "value", "x-validation-rules": { "ves.io.schema.rules.string.max_len": "8192" }, "x-f5xc-description-short": "Please Enter Base64-encoded value of client certificate. Used for certificate-based auth.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 8192, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "client_private_key": { "allOf": [ { "$ref": "#/components/schemas/schemaSecretType" } ], "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "data_lif_dns_name": { "type": "string", "description": "Exclusive with [data_lif_ip]\nBackend Data LIF IP Address's IP address is discovered using DNS name resolution. The name given here is fully qualified domain name.", "title": "Backend Data LIF Name", "maxLength": 256, "x-displayname": "Backend Data LIF Name.", "x-ves-example": "storage.local.", "x-ves-validation-rules": { "ves.io.schema.rules.string.hostname": "true", "ves.io.schema.rules.string.max_len": "256" }, "x-f5xc-example": "storage.local", "x-validation-rules": { "ves.io.schema.rules.string.hostname": "true", "ves.io.schema.rules.string.max_len": "256" }, "x-f5xc-description-short": "Exclusive with [data_lif_ip] Backend Data LIF IP Address's IP address is discovered using DNS name resolution.", "x-f5xc-description-medium": "Exclusive with [data_lif_ip] Backend Data LIF IP Address's IP address is discovered using DNS name resolution. The name given here is fully qualified domain name.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 256, "format": "hostname", "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "data_lif_ip" ] }, "data_lif_ip": { "type": "string", "description": "Exclusive with [data_lif_dns_name]\nBackend Data LIF IP Address is reachable at the given IP address.", "title": "Backend Data LIF IP Address", "x-displayname": "Backend Data LIF IP Address.", "x-ves-example": "192.0.2.103.", "x-ves-validation-rules": { "ves.io.schema.rules.string.ip": "true" }, "x-f5xc-example": "192.0.2.103", "x-validation-rules": { "ves.io.schema.rules.string.ip": "true" }, "x-f5xc-description-short": "Exclusive with [data_lif_dns_name] Backend Data LIF IP Address is reachable at the given IP address.", "x-f5xc-description-medium": "Exclusive with [data_lif_dns_name] Backend Data LIF IP Address is reachable at the given IP address.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 1024, "format": "ip", "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "data_lif_dns_name" ] }, "igroup_name": { "type": "string", "description": "Name of the igroup for SAN volumes to use.", "title": "iGroup Name", "minLength": 1, "maxLength": 256, "x-displayname": "IGroup Name.", "x-ves-example": "Value", "x-ves-validation-rules": { "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.string.max_len": "256", "ves.io.schema.rules.string.min_len": "1" }, "x-f5xc-description-short": "Name of the igroup for SAN volumes to use.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "minLength": 1, "maxLength": 256, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "labels": { "type": "object", "description": "List of labels for Storage Device used in NetApp ONTAP. It is used for storage class selection.", "title": "Backend Labels", "x-displayname": "Backend Labels.", "x-ves-example": "{\"store\":\"nas_store\"}", "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": "20", "ves.io.schema.rules.map.values.string.max_len": "128", "ves.io.schema.rules.map.values.string.min_len": "1" }, "x-f5xc-example": "\"{\"store\":\"nas_store\"}\"", "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": "20", "ves.io.schema.rules.map.values.string.max_len": "128", "ves.io.schema.rules.map.values.string.min_len": "1" }, "x-f5xc-description-short": "List of labels for Storage Device used in NetApp ONTAP. It is used for storage class selection.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "limit_aggregate_usage": { "type": "integer", "description": "Fail provisioning if usage is above this percentage. Not enforced by default.", "title": "Limit Aggregate Usage", "format": "int64", "x-displayname": "Limit Aggregate Usage.", "x-ves-example": "80", "x-ves-validation-rules": { "ves.io.schema.rules.uint32.gte": "0", "ves.io.schema.rules.uint32.lte": "100" }, "x-f5xc-example": "80", "x-validation-rules": { "ves.io.schema.rules.uint32.gte": "0", "ves.io.schema.rules.uint32.lte": "100" }, "x-f5xc-description-short": "Fail provisioning if usage is above this percentage. Not enforced by default.", "x-f5xc-constraints": { "constraintType": "number", "category": "discovery", "minimum": 0, "maximum": 100, "deterministic": true, "metadata": { "source": "api-probed", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "limit_volume_size": { "type": "integer", "description": "Fail provisioning if requested volume size in GBi is above this value. Not enforced by default.", "title": "Limit Volume Size", "format": "int32", "x-displayname": "Limit Volume Size.", "x-ves-example": "50", "x-f5xc-example": "50", "x-f5xc-description-short": "Fail provisioning if requested volume size in GBi is above this value. Not enforced by default.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "management_lif_dns_name": { "type": "string", "description": "Exclusive with [management_lif_ip]\nBackend Management LIF IP Address's IP address is discovered using DNS name resolution. The name given here is fully qualified domain name.", "title": "Backend Management LIF Name", "maxLength": 256, "x-displayname": "Backend Management LIF Name.", "x-ves-example": "storage.local.", "x-ves-validation-rules": { "ves.io.schema.rules.string.hostname": "true", "ves.io.schema.rules.string.max_len": "256" }, "x-f5xc-example": "storage.local", "x-validation-rules": { "ves.io.schema.rules.string.hostname": "true", "ves.io.schema.rules.string.max_len": "256" }, "x-f5xc-description-short": "Exclusive with [management_lif_ip] Backend Management LIF IP Address's IP address is discovered using DNS name resolution.", "x-f5xc-description-medium": "Exclusive with [management_lif_ip] Backend Management LIF IP Address's IP address is discovered using DNS name resolution. The name given here is fully qualified domain name.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 256, "format": "hostname", "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "management_lif_ip" ] }, "management_lif_ip": { "type": "string", "description": "Exclusive with [management_lif_dns_name]\nBackend Management LIF IP Address is reachable at the given IP address.", "title": "Backend Management LIF IP Address", "x-displayname": "Backend Management LIF IP Address.", "x-ves-example": "192.0.2.103.", "x-ves-validation-rules": { "ves.io.schema.rules.string.ip": "true" }, "x-f5xc-example": "192.0.2.103", "x-validation-rules": { "ves.io.schema.rules.string.ip": "true" }, "x-f5xc-description-short": "Exclusive with [management_lif_dns_name] Backend Management LIF IP Address is reachable at the given IP address.", "x-f5xc-description-medium": "Exclusive with [management_lif_dns_name] Backend Management LIF IP Address is reachable at the given IP address.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 1024, "format": "ip", "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "management_lif_dns_name" ] }, "no_chap": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "use_chap" ] }, "password": { "allOf": [ { "$ref": "#/components/schemas/schemaSecretType" } ], "x-f5xc-example": "MySecureP@ssw0rd123!", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "region": { "type": "string", "description": "Virtual Pool Region.", "title": "Backend Region", "x-displayname": "Backend Region.", "x-ves-example": "Us_east_1b.", "x-f5xc-example": "us_east_1b", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "storage": { "type": "array", "description": "List of Virtual Storage Pool definitions which are referred back by Storage Class label match selection.", "title": "Virtual Storage Pools", "maxItems": 8, "items": { "$ref": "#/components/schemas/fleetOntapVirtualStoragePoolType" }, "x-displayname": "Virtual Storage 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": "List of Virtual Storage Pool definitions which are referred back by Storage Class label match selection.", "x-f5xc-description-medium": "List of Virtual Storage Pool definitions which are referred back by Storage Class label match selection.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 8, "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "storage_driver_name": { "type": "string", "description": "Configuration of Backend Name.", "title": "Storage Backend Driver", "x-displayname": "Storage Backend Driver.", "x-ves-example": "Ontap-nas", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.string.in": "[\\\"ontap-san\\\",\\\"ontap-san-economy\\\",\\\"ontap-nas-flexgroup\\\"]" }, "x-f5xc-example": "ontap-nas", "x-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.string.in": "[\\\"ontap-san\\\",\\\"ontap-san-economy\\\",\\\"ontap-nas-flexgroup\\\"]" }, "maxLength": 1024, "enum": [ "ontap-san", "ontap-san-economy", "ontap-nas-flexgroup" ], "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "storage_prefix": { "type": "string", "description": "Prefix used when provisioning new volumes in the SVM. Once set this cannot be updated.", "title": "Storage Prefix", "minLength": 1, "maxLength": 80, "x-displayname": "Storage Prefix.", "x-ves-example": "Trident", "x-ves-validation-rules": { "ves.io.schema.rules.string.max_len": "80", "ves.io.schema.rules.string.min_len": "1" }, "x-f5xc-example": "trident", "x-validation-rules": { "ves.io.schema.rules.string.max_len": "80", "ves.io.schema.rules.string.min_len": "1" }, "x-f5xc-description-short": "Prefix used when provisioning new volumes in the SVM. Once set this cannot be updated.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "minLength": 1, "maxLength": 80, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "svm": { "type": "string", "description": "Storage virtual machine to use. Derived if an SVM managementLIF is specified.", "title": "Backend SVM", "minLength": 1, "maxLength": 256, "x-displayname": "Backend SVM.", "x-ves-example": "Trident_svm.", "x-ves-validation-rules": { "ves.io.schema.rules.string.max_len": "256", "ves.io.schema.rules.string.min_len": "1" }, "x-f5xc-example": "trident_svm", "x-validation-rules": { "ves.io.schema.rules.string.max_len": "256", "ves.io.schema.rules.string.min_len": "1" }, "x-f5xc-description-short": "Storage virtual machine to use. Derived if an SVM managementLIF is specified.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "minLength": 1, "maxLength": 256, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "trusted_ca_certificate": { "type": "string", "description": "Please Enter Base64-encoded value of trusted CA certificate. Optional. Used for certificate-based auth..", "title": "Trusted CA Certificate", "maxLength": 8192, "x-displayname": "Trusted CA Certificate.", "x-ves-example": "Value", "x-ves-validation-rules": { "ves.io.schema.rules.string.max_len": "8192" }, "x-f5xc-example": "value", "x-validation-rules": { "ves.io.schema.rules.string.max_len": "8192" }, "x-f5xc-description-short": "Please Enter Base64-encoded value of trusted CA certificate. Optional.", "x-f5xc-description-medium": "Please Enter Base64-encoded value of trusted CA certificate. Optional. Used for certificate-based auth..", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 8192, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "use_chap": { "allOf": [ { "$ref": "#/components/schemas/fleetDeviceNetappBackendOntapSanChapType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "no_chap" ] }, "username": { "type": "string", "description": "Username to connect to the cluster/SVM.", "title": "Username", "minLength": 1, "maxLength": 256, "x-displayname": "Username", "x-ves-example": "Cluster-admin.", "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": "cluster-admin", "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-constraints": { "constraintType": "string", "category": "discovery", "minLength": 1, "maxLength": 256, "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-08-20T09:12:47+00:00" }, "deterministic": true }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "volume_defaults": { "allOf": [ { "$ref": "#/components/schemas/fleetOntapVolumeDefaults" } ], "x-f5xc-description-short": "Configuration parameter for volume defaults.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Configuration of storage backend for NetApp ONTAP SAN.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for fleetStorageDeviceNetappBackendOntapSanType", "required_fields": [ "storage_driver_name", "username" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for fleetStorageDeviceNetappBackendOntapSanType\nmetadata:\n name: example\n namespace: default\nspec:\n storage_driver_name: value\n username: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"storage_driver_name\": \"value\",\n \"username\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "fleetStorageDeviceNetappTridentType": { "type": "object", "description": "Device configuration for NetApp Trident Storage.", "title": "NetApp Trident", "x-displayname": "NetApp Trident.", "x-ves-oneof-field-backend_choice": "[\"netapp_backend_ontap_nas\",\"netapp_backend_ontap_san\"]", "x-ves-proto-message": "ves.io.schema.fleet.StorageDeviceNetappTridentType", "properties": { "netapp_backend_ontap_nas": { "allOf": [ { "$ref": "#/components/schemas/fleetStorageDeviceNetappBackendOntapNasType" } ], "x-f5xc-description-short": "Configuration parameter for netapp backend ontap nas.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "netapp_backend_ontap_san" ] }, "netapp_backend_ontap_san": { "allOf": [ { "$ref": "#/components/schemas/fleetStorageDeviceNetappBackendOntapSanType" } ], "x-f5xc-description-short": "Configuration parameter for netapp backend ontap san.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "netapp_backend_ontap_nas" ] } }, "x-f5xc-description-short": "Device configuration for NetApp Trident Storage.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for fleetStorageDeviceNetappTridentType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for fleetStorageDeviceNetappTridentType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "fleetStorageDevicePureStorageServiceOrchestratorType": { "type": "object", "description": "Device configuration for Pure Storage Service Orchestrator.", "title": "Pure Storage Service Orchestrator", "x-displayname": "Pure Storage Service Orchestrator.", "x-ves-proto-message": "ves.io.schema.fleet.StorageDevicePureStorageServiceOrchestratorType", "properties": { "arrays": { "allOf": [ { "$ref": "#/components/schemas/fleetPsoArrayConfiguration" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "cluster_id": { "type": "string", "description": "ClusterID is added as a prefix for all volumes created by this PSO installation.\nClusterID is also used to identify the volumes used by the datastore, pso-db.\nClusterID MUST BE UNIQUE for multiple K8s clusters running on top of the same storage arrays.\nCharacters allowed: alphanumeric and underscores.", "title": "Cluster ID", "minLength": 1, "maxLength": 22, "x-displayname": "Cluster ID.", "x-ves-example": "Cluster1", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.string.max_len": "22", "ves.io.schema.rules.string.min_len": "1", "ves.io.schema.rules.string.pattern": "^[a-z0-9_]*$" }, "x-f5xc-example": "cluster1", "x-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.string.max_len": "22", "ves.io.schema.rules.string.min_len": "1", "ves.io.schema.rules.string.pattern": "^[a-z0-9_]*$" }, "x-f5xc-description-short": "ClusterID is added as a prefix for all volumes created by this PSO installation.", "x-f5xc-description-medium": "ClusterID is added as a prefix for all volumes created by this PSO installation. ClusterID is also used to identify the volumes used by the datastore, pso-db. ClusterID MUST BE UNIQUE for multiple K8s clusters running on top of the same storage arrays.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "minLength": 1, "maxLength": 22, "pattern": "^[a-z0-9_]*$", "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false }, "x-field-mutability": "read-only" }, "enable_storage_topology": { "type": "boolean", "description": "This option is to enable/disable the csi topology feature for pso-csi.", "title": "Enable Storage Topology", "format": "boolean", "x-displayname": "Enable Storage Topology.", "x-f5xc-description-short": "Option is to enable/disable the csi topology feature for pso-csi.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "enable_strict_topology": { "type": "boolean", "description": "This option is to enable/disable the strict csi topology feature for pso-csi.", "title": "Enable Strict Topology", "format": "boolean", "x-displayname": "Enable Strict Topology.", "x-f5xc-description-short": "Option is to enable/disable the strict csi topology feature for pso-csi.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Device configuration for Pure Storage Service Orchestrator.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for fleetStorageDevicePureStorageServiceOrchestratorType", "required_fields": [ "cluster_id" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for fleetStorageDevicePureStorageServiceOrchestratorType\nmetadata:\n name: example\n namespace: default\nspec:\n cluster_id: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"cluster_id\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "fleetVGPUConfiguration": { "type": "object", "description": "Licensing configuration for NVIDIA vGPU.", "title": "vGPU Configuration", "x-displayname": "VGPU Configuration.", "x-ves-proto-message": "ves.io.schema.fleet.VGPUConfiguration", "properties": { "feature_type": { "allOf": [ { "$ref": "#/components/schemas/fleetVGPUFeatureType" } ], "x-f5xc-example": "True", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "server_address": { "type": "string", "description": "Set License Server Address.", "title": "License Server Address", "x-displayname": "License Server Address.", "x-ves-example": "gridlicense1.example.com.", "x-ves-validation-rules": { "ves.io.schema.rules.string.hostname_or_ip": "true" }, "x-f5xc-example": "gridlicense1.example.com", "x-validation-rules": { "ves.io.schema.rules.string.hostname_or_ip": "true" }, "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "server_port": { "type": "integer", "description": "Set License Server port number.", "title": "License Server Port Number", "format": "int64", "x-displayname": "License Server Port Number.", "x-ves-example": "7070", "x-ves-validation-rules": { "ves.io.schema.rules.uint32.gte": "1", "ves.io.schema.rules.uint32.lte": "65535" }, "x-f5xc-example": "7070", "x-validation-rules": { "ves.io.schema.rules.uint32.gte": "1", "ves.io.schema.rules.uint32.lte": "65535" }, "x-f5xc-constraints": { "constraintType": "number", "category": "discovery", "minimum": 1, "maximum": 65535, "deterministic": true, "metadata": { "source": "api-probed", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } } }, "x-f5xc-description-short": "Licensing configuration for NVIDIA vGPU.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for fleetVGPUConfiguration", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for fleetVGPUConfiguration\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "fleetVGPUFeatureType": { "type": "string", "description": "Set feature to be enabled\n\nOperate with a degraded vGPU performance\nEnable NVIDIA vGPU\nEnable NVIDIA RTX Virtual Workstation\nEnable NVIDIA Virtual Compute Server.", "title": "vGPU Feature Type", "enum": [ "UNLICENSED", "VGPU", "VWS", "VCS" ], "default": "UNLICENSED", "x-displayname": "Feature Type.", "x-ves-proto-enum": "ves.io.schema.fleet.VGPUFeatureType", "x-f5xc-description-short": "Set feature to be enabled Operate with a degraded vGPU performance Enable NVIDIA vGPU Enable NVIDIA RTX Virtual Workstation Enable NVIDIA Virtual...", "x-f5xc-description-medium": "Set feature to be enabled Operate with a degraded vGPU performance Enable NVIDIA vGPU Enable NVIDIA RTX Virtual Workstation Enable NVIDIA Virtual Compute Server.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for fleetVGPUFeatureType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for fleetVGPUFeatureType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "fleetVMConfiguration": { "type": "object", "description": "VMs support configuration.", "title": "VM Configuration", "x-displayname": "VM Configuration.", "x-ves-proto-message": "ves.io.schema.fleet.VMConfiguration", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for fleetVMConfiguration", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for fleetVMConfiguration\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "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_yaml": "# Minimal example for ioschemaEmpty\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for ioschemaObjectRefType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "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\": ,\n\"lastName\": \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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for protobufAny\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "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-08-20T09:12:47+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, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaBlindfoldSecretInfoType\nmetadata:\n name: example\n namespace: default\nspec:\n location: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"location\": \"value\"\n }\n}" }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaClearSecretInfoType\nmetadata:\n name: example\n namespace: default\nspec:\n url: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"url\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaConditionType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "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_yaml": "# Minimal example for schemaErrorCode\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for schemaErrorType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaInitializerType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "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_yaml": "# Minimal example for schemaInitializersType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "schemaIpAddressType": { "type": "object", "description": "IP Address used to specify an IPv4 or IPv6 address.", "title": "IP Address", "x-displayname": "IP Address.", "x-ves-displayorder": "3", "x-ves-oneof-field-ver": "[\"ipv4\",\"ipv6\"]", "x-ves-proto-message": "ves.io.schema.IpAddressType", "properties": { "ipv4": { "allOf": [ { "$ref": "#/components/schemas/schemaIpv4AddressType" } ], "x-f5xc-example": "192.0.2.1", "x-f5xc-description-short": "IPv4 address in dotted decimal notation (e.g., 192.0.2.1).", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "ipv6" ] }, "ipv6": { "allOf": [ { "$ref": "#/components/schemas/schemaIpv6AddressType" } ], "x-f5xc-example": "2001:db8::1", "x-f5xc-description-short": "IPv6 address in colon-separated hexadecimal format.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "ipv4" ] } }, "x-f5xc-description-short": "IP Address used to specify an IPv4 or IPv6 address.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for schemaIpAddressType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemaIpAddressType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "schemaIpSubnetType": { "type": "object", "description": "IP Address used to specify an IPv4 or IPv6 subnet addresses.", "title": "IP Subnet", "x-displayname": "IP Subnet", "x-ves-displayorder": "3", "x-ves-oneof-field-ver": "[\"ipv4\",\"ipv6\"]", "x-ves-proto-message": "ves.io.schema.IpSubnetType", "properties": { "ipv4": { "allOf": [ { "$ref": "#/components/schemas/schemaIpv4SubnetType" } ], "x-f5xc-example": "192.0.2.1", "x-f5xc-description-short": "IPv4 address in dotted decimal notation (e.g., 192.0.2.1).", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "ipv6" ] }, "ipv6": { "allOf": [ { "$ref": "#/components/schemas/schemaIpv6SubnetType" } ], "x-f5xc-example": "2001:db8::1", "x-f5xc-description-short": "IPv6 address in colon-separated hexadecimal format.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "ipv4" ] } }, "x-f5xc-description-short": "IP Address used to specify an IPv4 or IPv6 subnet addresses.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for schemaIpSubnetType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemaIpSubnetType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "network", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "schemaIpv4AddressType": { "type": "object", "description": "IPv4 Address in dot-decimal notation.", "title": "IPv4 Address", "x-displayname": "IPv4 Address.", "x-ves-proto-message": "ves.io.schema.Ipv4AddressType", "properties": { "addr": { "type": "string", "description": "IPv4 Address in string form with dot-decimal notation.", "title": "IPv4 Address", "x-displayname": "IPv4 Address.", "x-ves-example": "192.0.2.198.", "x-ves-validation-rules": { "ves.io.schema.rules.string.ipv4": "true" }, "x-f5xc-example": "192.0.2.198", "x-validation-rules": { "ves.io.schema.rules.string.ipv4": "true" }, "x-f5xc-description-short": "IPv4 Address in string form with dot-decimal notation.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 1024, "format": "ipv4", "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for schemaIpv4AddressType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemaIpv4AddressType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "schemaIpv4SubnetType": { "type": "object", "description": "IPv4 subnets specified as prefix and prefix-length. Prefix length must be <= 32.", "title": "IPv4 Subnet", "x-displayname": "IPv4 Subnet.", "x-ves-proto-message": "ves.io.schema.Ipv4SubnetType", "properties": { "plen": { "type": "integer", "description": "Prefix-length of the IPv4 subnet. Must be <= 32.", "title": "Prefix Length", "format": "int64", "x-displayname": "Prefix Length.", "x-ves-example": "24", "x-ves-validation-rules": { "ves.io.schema.rules.uint32.lte": "32" }, "x-f5xc-example": "24", "x-validation-rules": { "ves.io.schema.rules.uint32.lte": "32" }, "x-f5xc-description-short": "Prefix-length of the IPv4 subnet. Must be <= 32.", "x-f5xc-constraints": { "constraintType": "number", "category": "discovery", "maximum": 32, "deterministic": true, "metadata": { "source": "api-probed", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "prefix": { "type": "string", "description": "Prefix part of the IPv4 subnet in string form with dot-decimal notation.", "title": "Prefix", "x-displayname": "Prefix", "x-ves-example": "192.0.2.104.", "x-ves-validation-rules": { "ves.io.schema.rules.string.ipv4": "true" }, "x-f5xc-example": "192.0.2.104", "x-validation-rules": { "ves.io.schema.rules.string.ipv4": "true" }, "x-f5xc-description-short": "Prefix part of the IPv4 subnet in string form with dot-decimal notation.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 1024, "format": "ipv4", "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "IPv4 subnets specified as prefix and prefix-length. Prefix length must be <= 32.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for schemaIpv4SubnetType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemaIpv4SubnetType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "network", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "schemaIpv6AddressType": { "type": "object", "description": "IPv6 Address specified as hexadecimal numbers separated by ':'", "title": "IPv6 Address", "x-displayname": "IPv6 Address.", "x-ves-proto-message": "ves.io.schema.Ipv6AddressType", "properties": { "addr": { "type": "string", "description": "IPv6 Address in form of string. IPv6 address must be specified as hexadecimal numbers separated by ':'\nThe address can be compacted by suppressing zeros\ne.g. '2001:db8:0:0:0:0:2:1' becomes '2001:db8::2:1' or '2001:db8:0:0:0:2:0:0' becomes '2001:db8::2::'", "title": "IPv6 Address", "x-displayname": "IPv6 Address.", "x-ves-example": "2001:db8:0:0:0:0:2:1.", "x-ves-validation-rules": { "ves.io.schema.rules.string.ipv6": "true" }, "x-f5xc-example": "2001:db8:0:0:0:0:2:1", "x-validation-rules": { "ves.io.schema.rules.string.ipv6": "true" }, "x-f5xc-description-medium": "IPv6 Address in form of string. IPv6 address must be specified as hexadecimal numbers separated by ':' The address can be compacted by suppressing zeros e.g. '2001:db8:0:0:0:0:2:1' becomes '2001:db8::2:1' or '2001:db8:0:0:0:2:0:0' becomes '2001:db8::2::'.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 1024, "format": "ipv6", "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "IPv6 Address specified as hexadecimal numbers separated by ':'.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for schemaIpv6AddressType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemaIpv6AddressType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "schemaIpv6SubnetType": { "type": "object", "description": "IPv6 subnets specified as prefix and prefix-length. Prefix-legnth must be <= 128.", "title": "IPv6 Subnet", "x-displayname": "IPv6 Subnet.", "x-ves-proto-message": "ves.io.schema.Ipv6SubnetType", "properties": { "plen": { "type": "integer", "description": "Prefix length of the IPv6 subnet. Must be <= 128.", "title": "Prefix length", "format": "int64", "x-displayname": "Prefix Length.", "x-ves-example": "38", "x-ves-validation-rules": { "ves.io.schema.rules.uint32.lte": "128" }, "x-f5xc-example": "38", "x-validation-rules": { "ves.io.schema.rules.uint32.lte": "128" }, "x-f5xc-description-short": "Prefix length of the IPv6 subnet. Must be <= 128.", "x-f5xc-constraints": { "constraintType": "number", "category": "discovery", "maximum": 128, "deterministic": true, "metadata": { "source": "api-probed", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "prefix": { "type": "string", "description": "Prefix part of the IPv6 subnet given in form of string.\nIPv6 address must be specified as hexadecimal numbers separated by ':'\ne.g. \"2001:db8:0:0:0:2:0:0\"\nThe address can be compacted by suppressing zeros\ne.g. \"2001:db8::2::\"", "title": "Prefix", "x-displayname": "Prefix", "x-ves-example": "2001:db8:0:0:0:0:2:0.", "x-ves-validation-rules": { "ves.io.schema.rules.string.ipv6": "true" }, "x-f5xc-example": "2001:db8:0:0:0:0:2:0", "x-validation-rules": { "ves.io.schema.rules.string.ipv6": "true" }, "x-f5xc-description-short": "Prefix part of the IPv6 subnet given in form of string.", "x-f5xc-description-medium": "Prefix part of the IPv6 subnet given in form of string. IPv6 address must be specified as hexadecimal numbers separated by ':' e.g. \"2001:db8:0:0:0:2:0:0\" The address can be compacted by suppressing zeros e.g. \"2001:db8::2::\".", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 1024, "format": "ipv6", "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "IPv6 subnets specified as prefix and prefix-length. Prefix-legnth must be <= 128.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for schemaIpv6SubnetType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemaIpv6SubnetType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "network", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "schemaNextHopType": { "type": "object", "description": "Identifies the next-hop for a route.", "title": "Nexthop", "x-displayname": "Nexthop", "x-ves-proto-message": "ves.io.schema.NextHopType", "properties": { "interface": { "type": "array", "description": "Nexthop is network interface when type is \"Network-Interface\"", "title": "Network Interface", "maxItems": 1, "items": { "$ref": "#/components/schemas/ioschemaObjectRefType" }, "x-displayname": "Network Interface.", "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": "Nexthop is network interface when type is \"Network-Interface\".", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 1, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "nexthop_address": { "allOf": [ { "$ref": "#/components/schemas/schemaIpAddressType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "type": { "allOf": [ { "$ref": "#/components/schemas/schemaNextHopTypes" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for schemaNextHopType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemaNextHopType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "schemaNextHopTypes": { "type": "string", "description": "Defines types of next-hop\n\nUse default gateway on the local interface as gateway for route.\nAssumes there is only one local interface on the virtual network.\nUse the specified address as nexthop\nUse the network interface as nexthop\nDiscard nexthop, used when attr type is Advertise\nUsed in VoltADN private virtual network.", "title": "Nexthop Types", "enum": [ "NEXT_HOP_DEFAULT_GATEWAY", "NEXT_HOP_USE_CONFIGURED", "NEXT_HOP_NETWORK_INTERFACE" ], "default": "NEXT_HOP_DEFAULT_GATEWAY", "x-displayname": "Nexthop Types.", "x-ves-proto-enum": "ves.io.schema.NextHopTypes", "x-f5xc-description-short": "Defines types of next-hop Use default gateway on the local interface as gateway for route.", "x-f5xc-description-medium": "Defines types of next-hop Use default gateway on the local interface as gateway for route. Assumes there is only one local interface on the virtual network. Use the specified address as nexthop Use the network interface as nexthop Discard nexthop, used when attr type is Advertise Used in VoltADN...", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for schemaNextHopTypes", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemaNextHopTypes\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaObjectCreateMetaType\nmetadata:\n name: example\n namespace: default\nspec:\n name: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"name\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaObjectGetMetaType\nmetadata:\n name: example\n namespace: default\nspec:\n name: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"name\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemaObjectReplaceMetaType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "schemaRouteAttrType": { "type": "string", "description": "Defines attributes associated with route\n\nIgnore attribute\nAdvertise route in all supported routing protocols\nAdd route into host OS - route in host OS will point to interface corresponding to the virtual network.\nHost OS must have an interface in the virtual network.\nUse the route for forwarding decision - adds route into data plane\nmodules with configured next-hop\nMerge Route if they already exist.", "title": "Route Attribute", "enum": [ "ROUTE_ATTR_NO_OP", "ROUTE_ATTR_ADVERTISE", "ROUTE_ATTR_INSTALL_HOST", "ROUTE_ATTR_INSTALL_FORWARDING", "ROUTE_ATTR_MERGE_ONLY" ], "default": "ROUTE_ATTR_NO_OP", "x-displayname": "Route Attribute.", "x-ves-proto-enum": "ves.io.schema.RouteAttrType", "x-f5xc-description-short": "Defines attributes associated with route Ignore attribute Advertise route in all supported routing protocols Add route into host OS - route in...", "x-f5xc-description-medium": "Defines attributes associated with route Ignore attribute Advertise route in all supported routing protocols Add route into host OS - route in host OS will point to interface corresponding to the virtual network. Host OS must have an interface in the virtual network. Use the route for forwarding...", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for schemaRouteAttrType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemaRouteAttrType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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_yaml": "# Minimal example for schemaSecretType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "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" } } }, "schemaStaticRouteType": { "type": "object", "description": "Defines a static route, configuring a list of prefixes and a next-hop to be used for them.", "title": "Static Route", "x-displayname": "Static Route.", "x-ves-displayorder": "2,10,11,1", "x-ves-proto-message": "ves.io.schema.StaticRouteType", "properties": { "attrs": { "type": "array", "description": "List of route attributes associated with the static route.", "title": "Attributes", "maxItems": 4, "items": { "$ref": "#/components/schemas/schemaRouteAttrType" }, "x-displayname": "Attributes.", "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 route attributes associated with the static route.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 4, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "labels": { "type": "object", "description": "Add Labels for this Static Route, these labels can be used in network policy.", "title": "Static Route labels", "x-displayname": "Static Route Labels.", "x-ves-example": "Value", "x-f5xc-example": "value", "x-f5xc-description-short": "Add Labels for this Static Route, these labels can be used in network policy.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "nexthop": { "allOf": [ { "$ref": "#/components/schemas/schemaNextHopType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "subnets": { "type": "array", "description": "List of route prefixes.", "title": "Subnets", "maxItems": 256, "items": { "$ref": "#/components/schemas/schemaIpSubnetType" }, "x-displayname": "Subnets", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.repeated.max_items": "256" }, "x-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.repeated.max_items": "256" }, "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 256, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } } }, "x-f5xc-description-short": "Defines a static route, configuring a list of prefixes and a next-hop to be used for them.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for schemaStaticRouteType", "required_fields": [ "subnets" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemaStaticRouteType\nmetadata:\n name: example\n namespace: default\nspec:\n subnets: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"subnets\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "network", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaStatusMetaType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "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_yaml": "# Minimal example for schemaStatusPublishType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaStatusType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaSystemObjectGetMetaType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaViewRefType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "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_yaml": "# Minimal example for schemaVirtualNetworkType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "schemafleetCreateSpecType": { "type": "object", "description": "Create fleet will create a fleet object in 'system' namespace of the user.", "title": "Create Fleet", "x-displayname": "Create Fleet.", "x-ves-oneof-field-bond_choice": "[\"bond_device_list\",\"no_bond_devices\"]", "x-ves-oneof-field-dc_cluster_group_choice": "[\"dc_cluster_group\",\"dc_cluster_group_inside\",\"no_dc_cluster_group\"]", "x-ves-oneof-field-gpu_choice": "[\"disable_gpu\",\"enable_gpu\",\"enable_vgpu\"]", "x-ves-oneof-field-interface_choice": "[\"default_config\",\"device_list\",\"interface_list\"]", "x-ves-oneof-field-log_anonymization_mode": "[\"disable_log_anonymization\",\"enable_log_anonymization\"]", "x-ves-oneof-field-logs_receiver_choice": "[\"log_receiver\",\"logs_streaming_disabled\"]", "x-ves-oneof-field-sriov_interface_choice": "[\"default_sriov_interface\",\"sriov_interfaces\"]", "x-ves-oneof-field-storage_class_choice": "[\"default_storage_class\",\"storage_class_list\"]", "x-ves-oneof-field-storage_device_choice": "[\"no_storage_device\",\"storage_device_list\"]", "x-ves-oneof-field-storage_interface_choice": "[\"no_storage_interfaces\",\"storage_interface_list\"]", "x-ves-oneof-field-storage_static_routes_choice": "[\"no_storage_static_routes\",\"storage_static_routes\"]", "x-ves-oneof-field-usb_policy_choice": "[\"allow_all_usb\",\"deny_all_usb\",\"usb_policy\"]", "x-ves-oneof-field-vm_choice": "[\"disable_vm\",\"enable_vm\"]", "x-ves-proto-message": "ves.io.schema.fleet.CreateSpecType", "properties": { "allow_all_usb": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-description-short": "Configuration parameter for allow all usb.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "deny_all_usb", "usb_policy" ] }, "blocked_services": { "type": "array", "description": "Disable node local services on this site.", "maxItems": 6, "items": { "$ref": "#/components/schemas/fleetBlockedServices" }, "x-displayname": "Disable Node Local Services.", "x-ves-validation-rules": { "ves.io.schema.rules.repeated.max_items": "6" }, "x-validation-rules": { "ves.io.schema.rules.repeated.max_items": "6" }, "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "Disable node local services on this site.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 6, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "bond_device_list": { "allOf": [ { "$ref": "#/components/schemas/fleetFleetBondDevicesListType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "no_bond_devices" ] }, "dc_cluster_group": { "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": [ "dc_cluster_group_inside", "no_dc_cluster_group" ], "x-f5xc-references": [ { "resource_kind": "dc_cluster_group", "field_path": "dc_cluster_group", "gated_by": { "choice": "dc_cluster_group_choice" }, "required": false, "cardinality": "single" } ] }, "dc_cluster_group_inside": { "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": [ "dc_cluster_group", "no_dc_cluster_group" ], "x-f5xc-references": [ { "resource_kind": "dc_cluster_group", "field_path": "dc_cluster_group_inside", "gated_by": { "choice": "dc_cluster_group_choice" }, "required": false, "cardinality": "single" } ] }, "default_config": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "device_list", "interface_list" ] }, "default_sriov_interface": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-description-short": "Configuration parameter for default sriov interface.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "sriov_interfaces" ] }, "default_storage_class": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-description-short": "Configuration parameter for default storage class.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "storage_class_list" ] }, "deny_all_usb": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-description-short": "Configuration parameter for deny all usb.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "allow_all_usb", "usb_policy" ] }, "device_list": { "allOf": [ { "$ref": "#/components/schemas/fleetFleetDeviceListType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "default_config", "interface_list" ] }, "disable_gpu": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-description-short": "Configuration parameter for disable gpu.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "enable_gpu", "enable_vgpu" ] }, "disable_log_anonymization": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-description-short": "Configuration parameter for disable log anonymization.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "enable_log_anonymization" ] }, "disable_vm": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "enable_vm" ] }, "enable_default_fleet_config_download": { "type": "boolean", "description": "Enable default fleet config, It must be set for storage config and GPU config.", "format": "boolean", "x-displayname": "Enable Default Fleet Config Download.", "x-f5xc-description-short": "Enable default fleet config, It must be set for storage config and GPU config.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "enable_gpu": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "disable_gpu", "enable_vgpu" ] }, "enable_log_anonymization": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-description-short": "Configuration parameter for enable log anonymization.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "disable_log_anonymization" ] }, "enable_vgpu": { "allOf": [ { "$ref": "#/components/schemas/fleetVGPUConfiguration" } ], "x-f5xc-description-short": "Configuration parameter for enable vgpu.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "disable_gpu", "enable_gpu" ] }, "enable_vm": { "allOf": [ { "$ref": "#/components/schemas/fleetVMConfiguration" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "disable_vm" ] }, "fleet_label": { "type": "string", "description": "Fleet_label value is used to create known_label \"F5 XC/fleet=\"\nThe known_label is created in the \"shared\" namespace for the tenant.\n\nA virtual_site object with name is also created in \"shared\" namespace for tenant.\nThe virtual_site object will select all sites configured with the known_label above\nfleet_label with \"sfo\" will create a known_label \"F5 XC/fleet=sfo\" in tenant for the fleet.", "x-displayname": "Fleet Label Value.", "x-ves-example": "Sfo", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.string.k8s_label_value": "true" }, "x-f5xc-example": "sfo", "x-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.string.k8s_label_value": "true" }, "x-f5xc-description-short": "Fleet_label value is used to create known_label \"F5 XC/fleet=\" The known_label is created in the \"shared\" namespace for the tenant.", "x-f5xc-description-medium": "Fleet_label value is used to create known_label \"F5 XC/fleet=\" The known_label is created in the \"shared\" namespace for the tenant. A virtual_site object with name is also created in \"shared\" namespace for tenant. The virtual_site object will select all sites...", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "inside_virtual_network": { "type": "array", "description": "Default inside (site local) virtual network for the fleet.", "maxItems": 1, "items": { "$ref": "#/components/schemas/ioschemaObjectRefType" }, "x-displayname": "Site Local Inside Virtual Network.", "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": "Default inside (site local) virtual network for the fleet.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 1, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "interface_list": { "allOf": [ { "$ref": "#/components/schemas/fleetFleetInterfaceListType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "default_config", "device_list" ] }, "kubernetes_upgrade_drain": { "allOf": [ { "$ref": "#/components/schemas/viewsKubernetesUpgradeDrain" } ], "x-f5xc-description-short": "Configuration parameter for kubernetes upgrade drain.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "log_receiver": { "allOf": [ { "$ref": "#/components/schemas/schemaviewsObjectRefType" } ], "x-f5xc-description-short": "Configuration parameter for log receiver.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "logs_streaming_disabled" ], "x-f5xc-references": [ { "resource_kind": "log_receiver", "field_path": "log_receiver", "gated_by": { "choice": "logs_receiver_choice" }, "required": false, "cardinality": "single" } ] }, "logs_streaming_disabled": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "log_receiver" ] }, "network_connectors": { "type": "array", "description": "Network Connector defines connection between two virtual networks in a given site.\nFleet defines one or more such network connectors.\nThe network connectors configuration is applied on all sites that are member of the fleet.", "maxItems": 8, "items": { "$ref": "#/components/schemas/ioschemaObjectRefType" }, "x-displayname": "Network Connectors.", "x-ves-validation-rules": { "ves.io.schema.rules.repeated.max_items": "8" }, "x-validation-rules": { "ves.io.schema.rules.repeated.max_items": "8" }, "x-f5xc-description-short": "Network Connector defines connection between two virtual networks in a given site.", "x-f5xc-description-medium": "Network Connector defines connection between two virtual networks in a given site. Fleet defines one or more such network connectors. The network connectors configuration is applied on all sites that are member of the fleet.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 8, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "network_firewall": { "type": "array", "description": "Network Firewall defines firewall to be applied for the virtual networks in the fleet.\nThe network firewall configuration is applied on all sites that are member of the fleet.\n\nConstraints\nThe Network Firewall is applied on Virtual Networks of type site local network and site local inside network.", "maxItems": 1, "items": { "$ref": "#/components/schemas/ioschemaObjectRefType" }, "x-displayname": "Network Firewall.", "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": "Network Firewall defines firewall to be applied for the virtual networks in the fleet.", "x-f5xc-description-medium": "Network Firewall defines firewall to be applied for the virtual networks in the fleet. The network firewall configuration is applied on all sites that are member of the fleet. Constraints The Network Firewall is applied on Virtual Networks of type site local network and site local inside network.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 1, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "no_bond_devices": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-description-short": "Configuration parameter for no bond devices.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "bond_device_list" ] }, "no_dc_cluster_group": { "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": [ "dc_cluster_group", "dc_cluster_group_inside" ] }, "no_storage_device": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-description-short": "Configuration parameter for no storage device.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "storage_device_list" ] }, "no_storage_interfaces": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-description-short": "Configuration parameter for no storage interfaces.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "storage_interface_list" ] }, "no_storage_static_routes": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-description-short": "Configuration parameter for no storage static routes.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "storage_static_routes" ] }, "operating_system_version": { "type": "string", "description": "Desired Operating System version that is applied to all sites that are member of the fleet.\nCurrent Operating System version can be overridden via site config.", "maxLength": 256, "x-displayname": "Operating System Version.", "x-ves-example": "Value", "x-ves-validation-rules": { "ves.io.schema.rules.string.max_len": "256" }, "x-f5xc-example": "value", "x-validation-rules": { "ves.io.schema.rules.string.max_len": "256" }, "x-f5xc-description-short": "Desired Operating System version that is applied to all sites that are member of the fleet.", "x-f5xc-description-medium": "Desired Operating System version that is applied to all sites that are member of the fleet. Current Operating System version can be overridden via site config.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 256, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "outside_virtual_network": { "type": "array", "description": "Default outside (site local) virtual network for the fleet.", "maxItems": 1, "items": { "$ref": "#/components/schemas/ioschemaObjectRefType" }, "x-displayname": "Outside (Site Local) Virtual Network.", "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": "Default outside (site local) virtual network for the fleet.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 1, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "performance_enhancement_mode": { "allOf": [ { "$ref": "#/components/schemas/viewsPerformanceEnhancementModeType" } ], "x-f5xc-description-short": "Configuration parameter for performance enhancement mode.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "sriov_interfaces": { "allOf": [ { "$ref": "#/components/schemas/fleetSriovInterfacesListType" } ], "x-f5xc-description-short": "Configuration parameter for sriov interfaces.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "default_sriov_interface" ] }, "storage_class_list": { "allOf": [ { "$ref": "#/components/schemas/fleetFleetStorageClassListType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "default_storage_class" ] }, "storage_device_list": { "allOf": [ { "$ref": "#/components/schemas/fleetFleetStorageDeviceListType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "no_storage_device" ] }, "storage_interface_list": { "allOf": [ { "$ref": "#/components/schemas/fleetFleetInterfaceListType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "no_storage_interfaces" ] }, "storage_static_routes": { "allOf": [ { "$ref": "#/components/schemas/fleetFleetStorageStaticRoutesListType" } ], "x-f5xc-description-short": "Configuration parameter for storage static routes.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "no_storage_static_routes" ] }, "usb_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": [ "allow_all_usb", "deny_all_usb" ], "x-f5xc-references": [ { "resource_kind": "usb_policy", "field_path": "usb_policy", "gated_by": { "choice": "usb_policy_choice" }, "required": false, "cardinality": "single" } ] }, "volterra_software_version": { "type": "string", "description": "F5XC software version is human readable string matching released set of version components.\nThe given software version is applied to all sites that are member of the fleet.\nCurrent software installed can be overridden via site config.", "maxLength": 256, "x-displayname": "Software Version.", "x-ves-example": "Value", "x-ves-validation-rules": { "ves.io.schema.rules.string.max_len": "256" }, "x-f5xc-example": "value", "x-validation-rules": { "ves.io.schema.rules.string.max_len": "256" }, "x-f5xc-description-short": "F5XC software version is human readable string matching released set of version components.", "x-f5xc-description-medium": "F5XC software version is human readable string matching released set of version components. The given software version is applied to all sites that are member of the fleet. Current software installed can be overridden via site config.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 256, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Create fleet will create a fleet object in 'system' namespace of the user.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for schemafleetCreateSpecType", "required_fields": [ "fleet_label" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemafleetCreateSpecType\nmetadata:\n name: example\n namespace: default\nspec:\n fleet_label: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"fleet_label\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-field-examples": { "spec.fleet_label": "value" }, "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "schemafleetGetSpecType": { "type": "object", "description": "GET fleet will GET fleet object from system namespace.", "title": "Get fleet", "x-displayname": "GET Fleet", "x-ves-oneof-field-bond_choice": "[\"bond_device_list\",\"no_bond_devices\"]", "x-ves-oneof-field-dc_cluster_group_choice": "[\"dc_cluster_group\",\"dc_cluster_group_inside\",\"no_dc_cluster_group\"]", "x-ves-oneof-field-gpu_choice": "[\"disable_gpu\",\"enable_gpu\",\"enable_vgpu\"]", "x-ves-oneof-field-interface_choice": "[\"default_config\",\"device_list\",\"interface_list\"]", "x-ves-oneof-field-log_anonymization_mode": "[\"disable_log_anonymization\",\"enable_log_anonymization\"]", "x-ves-oneof-field-logs_receiver_choice": "[\"log_receiver\",\"logs_streaming_disabled\"]", "x-ves-oneof-field-sriov_interface_choice": "[\"default_sriov_interface\",\"sriov_interfaces\"]", "x-ves-oneof-field-storage_class_choice": "[\"default_storage_class\",\"storage_class_list\"]", "x-ves-oneof-field-storage_device_choice": "[\"no_storage_device\",\"storage_device_list\"]", "x-ves-oneof-field-storage_interface_choice": "[\"no_storage_interfaces\",\"storage_interface_list\"]", "x-ves-oneof-field-storage_static_routes_choice": "[\"no_storage_static_routes\",\"storage_static_routes\"]", "x-ves-oneof-field-usb_policy_choice": "[\"allow_all_usb\",\"deny_all_usb\",\"usb_policy\"]", "x-ves-oneof-field-vm_choice": "[\"disable_vm\",\"enable_vm\"]", "x-ves-proto-message": "ves.io.schema.fleet.GetSpecType", "properties": { "allow_all_usb": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-description-short": "Configuration parameter for allow all usb.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "deny_all_usb", "usb_policy" ] }, "blocked_services": { "type": "array", "description": "Disable node local services on this site.", "maxItems": 6, "items": { "$ref": "#/components/schemas/fleetBlockedServices" }, "x-displayname": "Disable Node Local Services.", "x-ves-validation-rules": { "ves.io.schema.rules.repeated.max_items": "6" }, "x-validation-rules": { "ves.io.schema.rules.repeated.max_items": "6" }, "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "Disable node local services on this site.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 6, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "bond_device_list": { "allOf": [ { "$ref": "#/components/schemas/fleetFleetBondDevicesListType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "no_bond_devices" ] }, "dc_cluster_group": { "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": [ "dc_cluster_group_inside", "no_dc_cluster_group" ], "x-f5xc-references": [ { "resource_kind": "dc_cluster_group", "field_path": "dc_cluster_group", "gated_by": { "choice": "dc_cluster_group_choice" }, "required": false, "cardinality": "single" } ] }, "dc_cluster_group_inside": { "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": [ "dc_cluster_group", "no_dc_cluster_group" ], "x-f5xc-references": [ { "resource_kind": "dc_cluster_group", "field_path": "dc_cluster_group_inside", "gated_by": { "choice": "dc_cluster_group_choice" }, "required": false, "cardinality": "single" } ] }, "default_config": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "device_list", "interface_list" ] }, "default_sriov_interface": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-description-short": "Configuration parameter for default sriov interface.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "sriov_interfaces" ] }, "default_storage_class": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-description-short": "Configuration parameter for default storage class.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "storage_class_list" ] }, "deny_all_usb": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-description-short": "Configuration parameter for deny all usb.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "allow_all_usb", "usb_policy" ] }, "device_list": { "allOf": [ { "$ref": "#/components/schemas/fleetFleetDeviceListType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "default_config", "interface_list" ] }, "disable_gpu": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-description-short": "Configuration parameter for disable gpu.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "enable_gpu", "enable_vgpu" ] }, "disable_log_anonymization": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-description-short": "Configuration parameter for disable log anonymization.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "enable_log_anonymization" ] }, "disable_vm": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "enable_vm" ] }, "enable_default_fleet_config_download": { "type": "boolean", "description": "Enable default fleet config, It must be set for storage config and GPU config.", "format": "boolean", "x-displayname": "Enable Default Fleet Config Download.", "x-f5xc-description-short": "Enable default fleet config, It must be set for storage config and GPU config.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "enable_gpu": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "disable_gpu", "enable_vgpu" ] }, "enable_log_anonymization": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-description-short": "Configuration parameter for enable log anonymization.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "disable_log_anonymization" ] }, "enable_vgpu": { "allOf": [ { "$ref": "#/components/schemas/fleetVGPUConfiguration" } ], "x-f5xc-description-short": "Configuration parameter for enable vgpu.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "disable_gpu", "enable_gpu" ] }, "enable_vm": { "allOf": [ { "$ref": "#/components/schemas/fleetVMConfiguration" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "disable_vm" ] }, "fleet_label": { "type": "string", "description": "Fleet_label value is used to create known_label \"F5 XC/fleet=\"\nThe known_label is created in the \"shared\" namespace for the tenant.\n\nA virtual_site object with name is also created in \"shared\" namespace for tenant.\nThe virtual_site object will select all sites configured with the known_label above\nfleet_label with \"sfo\" will create a known_label \"F5 XC/fleet=sfo\" in tenant for the fleet.", "x-displayname": "Fleet Label Value.", "x-ves-example": "Sfo", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.string.k8s_label_value": "true" }, "x-f5xc-example": "sfo", "x-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.string.k8s_label_value": "true" }, "x-f5xc-description-short": "Fleet_label value is used to create known_label \"F5 XC/fleet=\" The known_label is created in the \"shared\" namespace for the tenant.", "x-f5xc-description-medium": "Fleet_label value is used to create known_label \"F5 XC/fleet=\" The known_label is created in the \"shared\" namespace for the tenant. A virtual_site object with name is also created in \"shared\" namespace for tenant. The virtual_site object will select all sites...", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "inside_virtual_network": { "type": "array", "description": "Default inside (site local) virtual network for the fleet.", "maxItems": 1, "items": { "$ref": "#/components/schemas/ioschemaObjectRefType" }, "x-displayname": "Site Local Inside Virtual Network.", "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": "Default inside (site local) virtual network for the fleet.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 1, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "interface_list": { "allOf": [ { "$ref": "#/components/schemas/fleetFleetInterfaceListType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "default_config", "device_list" ] }, "kubernetes_upgrade_drain": { "allOf": [ { "$ref": "#/components/schemas/viewsKubernetesUpgradeDrain" } ], "x-f5xc-description-short": "Configuration parameter for kubernetes upgrade drain.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "log_receiver": { "allOf": [ { "$ref": "#/components/schemas/schemaviewsObjectRefType" } ], "x-f5xc-description-short": "Configuration parameter for log receiver.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "logs_streaming_disabled" ], "x-f5xc-references": [ { "resource_kind": "log_receiver", "field_path": "log_receiver", "gated_by": { "choice": "logs_receiver_choice" }, "required": false, "cardinality": "single" } ] }, "logs_streaming_disabled": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "log_receiver" ] }, "network_connectors": { "type": "array", "description": "Network Connector defines connection between two virtual networks in a given site.\nFleet defines one or more such network connectors.\nThe network connectors configuration is applied on all sites that are member of the fleet.", "maxItems": 8, "items": { "$ref": "#/components/schemas/ioschemaObjectRefType" }, "x-displayname": "Network Connectors.", "x-ves-validation-rules": { "ves.io.schema.rules.repeated.max_items": "8" }, "x-validation-rules": { "ves.io.schema.rules.repeated.max_items": "8" }, "x-f5xc-description-short": "Network Connector defines connection between two virtual networks in a given site.", "x-f5xc-description-medium": "Network Connector defines connection between two virtual networks in a given site. Fleet defines one or more such network connectors. The network connectors configuration is applied on all sites that are member of the fleet.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 8, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "network_firewall": { "type": "array", "description": "Network Firewall defines firewall to be applied for the virtual networks in the fleet.\nThe network firewall configuration is applied on all sites that are member of the fleet.\n\nConstraints\nThe Network Firewall is applied on Virtual Networks of type site local network and site local inside network.", "maxItems": 1, "items": { "$ref": "#/components/schemas/ioschemaObjectRefType" }, "x-displayname": "Network Firewall.", "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": "Network Firewall defines firewall to be applied for the virtual networks in the fleet.", "x-f5xc-description-medium": "Network Firewall defines firewall to be applied for the virtual networks in the fleet. The network firewall configuration is applied on all sites that are member of the fleet. Constraints The Network Firewall is applied on Virtual Networks of type site local network and site local inside network.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 1, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "no_bond_devices": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-description-short": "Configuration parameter for no bond devices.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "bond_device_list" ] }, "no_dc_cluster_group": { "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": [ "dc_cluster_group", "dc_cluster_group_inside" ] }, "no_storage_device": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-description-short": "Configuration parameter for no storage device.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "storage_device_list" ] }, "no_storage_interfaces": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-description-short": "Configuration parameter for no storage interfaces.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "storage_interface_list" ] }, "no_storage_static_routes": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-description-short": "Configuration parameter for no storage static routes.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "storage_static_routes" ] }, "operating_system_version": { "type": "string", "description": "Desired Operating System version that is applied to all sites that are member of the fleet.\nCurrent Operating System version can be overridden via site config.", "maxLength": 256, "x-displayname": "Operating System Version.", "x-ves-example": "Value", "x-ves-validation-rules": { "ves.io.schema.rules.string.max_len": "256" }, "x-f5xc-example": "value", "x-validation-rules": { "ves.io.schema.rules.string.max_len": "256" }, "x-f5xc-description-short": "Desired Operating System version that is applied to all sites that are member of the fleet.", "x-f5xc-description-medium": "Desired Operating System version that is applied to all sites that are member of the fleet. Current Operating System version can be overridden via site config.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 256, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "outside_virtual_network": { "type": "array", "description": "Default outside (site local) virtual network for the fleet.", "maxItems": 1, "items": { "$ref": "#/components/schemas/ioschemaObjectRefType" }, "x-displayname": "Outside (Site Local) Virtual Network.", "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": "Default outside (site local) virtual network for the fleet.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 1, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "performance_enhancement_mode": { "allOf": [ { "$ref": "#/components/schemas/viewsPerformanceEnhancementModeType" } ], "x-f5xc-description-short": "Configuration parameter for performance enhancement mode.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "sriov_interfaces": { "allOf": [ { "$ref": "#/components/schemas/fleetSriovInterfacesListType" } ], "x-f5xc-description-short": "Configuration parameter for sriov interfaces.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "default_sriov_interface" ] }, "storage_class_list": { "allOf": [ { "$ref": "#/components/schemas/fleetFleetStorageClassListType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "default_storage_class" ] }, "storage_device_list": { "allOf": [ { "$ref": "#/components/schemas/fleetFleetStorageDeviceListType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "no_storage_device" ] }, "storage_interface_list": { "allOf": [ { "$ref": "#/components/schemas/fleetFleetInterfaceListType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "no_storage_interfaces" ] }, "storage_static_routes": { "allOf": [ { "$ref": "#/components/schemas/fleetFleetStorageStaticRoutesListType" } ], "x-f5xc-description-short": "Configuration parameter for storage static routes.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "no_storage_static_routes" ] }, "usb_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": [ "allow_all_usb", "deny_all_usb" ], "x-f5xc-references": [ { "resource_kind": "usb_policy", "field_path": "usb_policy", "gated_by": { "choice": "usb_policy_choice" }, "required": false, "cardinality": "single" } ] }, "volterra_software_version": { "type": "string", "description": "F5XC software version is human readable string matching released set of version components.\nThe given software version is applied to all sites that are member of the fleet.\nCurrent software installed can be overridden via site config.", "maxLength": 256, "x-displayname": "Software Version.", "x-ves-example": "Value", "x-ves-validation-rules": { "ves.io.schema.rules.string.max_len": "256" }, "x-f5xc-example": "value", "x-validation-rules": { "ves.io.schema.rules.string.max_len": "256" }, "x-f5xc-description-short": "F5XC software version is human readable string matching released set of version components.", "x-f5xc-description-medium": "F5XC software version is human readable string matching released set of version components. The given software version is applied to all sites that are member of the fleet. Current software installed can be overridden via site config.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 256, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "GET fleet will GET fleet object from system namespace.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for schemafleetGetSpecType", "required_fields": [ "fleet_label" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemafleetGetSpecType\nmetadata:\n name: example\n namespace: default\nspec:\n fleet_label: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"fleet_label\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "schemafleetReplaceSpecType": { "type": "object", "description": "Replace fleet will replace the contents of given fleet object.", "title": "Replace fleet", "x-displayname": "Replace Fleet.", "x-ves-oneof-field-bond_choice": "[\"bond_device_list\",\"no_bond_devices\"]", "x-ves-oneof-field-dc_cluster_group_choice": "[\"dc_cluster_group\",\"dc_cluster_group_inside\",\"no_dc_cluster_group\"]", "x-ves-oneof-field-gpu_choice": "[\"disable_gpu\",\"enable_gpu\",\"enable_vgpu\"]", "x-ves-oneof-field-interface_choice": "[\"default_config\",\"device_list\",\"interface_list\"]", "x-ves-oneof-field-log_anonymization_mode": "[\"disable_log_anonymization\",\"enable_log_anonymization\"]", "x-ves-oneof-field-logs_receiver_choice": "[\"log_receiver\",\"logs_streaming_disabled\"]", "x-ves-oneof-field-sriov_interface_choice": "[\"default_sriov_interface\",\"sriov_interfaces\"]", "x-ves-oneof-field-storage_class_choice": "[\"default_storage_class\",\"storage_class_list\"]", "x-ves-oneof-field-storage_device_choice": "[\"no_storage_device\",\"storage_device_list\"]", "x-ves-oneof-field-storage_interface_choice": "[\"no_storage_interfaces\",\"storage_interface_list\"]", "x-ves-oneof-field-storage_static_routes_choice": "[\"no_storage_static_routes\",\"storage_static_routes\"]", "x-ves-oneof-field-usb_policy_choice": "[\"allow_all_usb\",\"deny_all_usb\",\"usb_policy\"]", "x-ves-oneof-field-vm_choice": "[\"disable_vm\",\"enable_vm\"]", "x-ves-proto-message": "ves.io.schema.fleet.ReplaceSpecType", "properties": { "allow_all_usb": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-description-short": "Configuration parameter for allow all usb.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "deny_all_usb", "usb_policy" ] }, "blocked_services": { "type": "array", "description": "Disable node local services on this site.", "maxItems": 6, "items": { "$ref": "#/components/schemas/fleetBlockedServices" }, "x-displayname": "Disable Node Local Services.", "x-ves-validation-rules": { "ves.io.schema.rules.repeated.max_items": "6" }, "x-validation-rules": { "ves.io.schema.rules.repeated.max_items": "6" }, "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "Disable node local services on this site.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 6, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "bond_device_list": { "allOf": [ { "$ref": "#/components/schemas/fleetFleetBondDevicesListType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "no_bond_devices" ] }, "dc_cluster_group": { "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": [ "dc_cluster_group_inside", "no_dc_cluster_group" ], "x-f5xc-references": [ { "resource_kind": "dc_cluster_group", "field_path": "dc_cluster_group", "gated_by": { "choice": "dc_cluster_group_choice" }, "required": false, "cardinality": "single" } ] }, "dc_cluster_group_inside": { "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": [ "dc_cluster_group", "no_dc_cluster_group" ], "x-f5xc-references": [ { "resource_kind": "dc_cluster_group", "field_path": "dc_cluster_group_inside", "gated_by": { "choice": "dc_cluster_group_choice" }, "required": false, "cardinality": "single" } ] }, "default_config": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "device_list", "interface_list" ] }, "default_sriov_interface": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-description-short": "Configuration parameter for default sriov interface.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "sriov_interfaces" ] }, "default_storage_class": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-description-short": "Configuration parameter for default storage class.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "storage_class_list" ] }, "deny_all_usb": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-description-short": "Configuration parameter for deny all usb.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "allow_all_usb", "usb_policy" ] }, "device_list": { "allOf": [ { "$ref": "#/components/schemas/fleetFleetDeviceListType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "default_config", "interface_list" ] }, "disable_gpu": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-description-short": "Configuration parameter for disable gpu.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "enable_gpu", "enable_vgpu" ] }, "disable_log_anonymization": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-description-short": "Configuration parameter for disable log anonymization.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "enable_log_anonymization" ] }, "disable_vm": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "enable_vm" ] }, "enable_default_fleet_config_download": { "type": "boolean", "description": "Enable default fleet config, It must be set for storage config and GPU config.", "format": "boolean", "x-displayname": "Enable Default Fleet Config Download.", "x-f5xc-description-short": "Enable default fleet config, It must be set for storage config and GPU config.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "enable_gpu": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "disable_gpu", "enable_vgpu" ] }, "enable_log_anonymization": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-description-short": "Configuration parameter for enable log anonymization.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "disable_log_anonymization" ] }, "enable_vgpu": { "allOf": [ { "$ref": "#/components/schemas/fleetVGPUConfiguration" } ], "x-f5xc-description-short": "Configuration parameter for enable vgpu.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "disable_gpu", "enable_gpu" ] }, "enable_vm": { "allOf": [ { "$ref": "#/components/schemas/fleetVMConfiguration" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "disable_vm" ] }, "inside_virtual_network": { "type": "array", "description": "Default inside (site local) virtual network for the fleet.", "maxItems": 1, "items": { "$ref": "#/components/schemas/ioschemaObjectRefType" }, "x-displayname": "Site Local Inside Virtual Network.", "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": "Default inside (site local) virtual network for the fleet.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 1, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "interface_list": { "allOf": [ { "$ref": "#/components/schemas/fleetFleetInterfaceListType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "default_config", "device_list" ] }, "kubernetes_upgrade_drain": { "allOf": [ { "$ref": "#/components/schemas/viewsKubernetesUpgradeDrain" } ], "x-f5xc-description-short": "Configuration parameter for kubernetes upgrade drain.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "log_receiver": { "allOf": [ { "$ref": "#/components/schemas/schemaviewsObjectRefType" } ], "x-f5xc-description-short": "Configuration parameter for log receiver.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "logs_streaming_disabled" ], "x-f5xc-references": [ { "resource_kind": "log_receiver", "field_path": "log_receiver", "gated_by": { "choice": "logs_receiver_choice" }, "required": false, "cardinality": "single" } ] }, "logs_streaming_disabled": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "log_receiver" ] }, "network_connectors": { "type": "array", "description": "Network Connector defines connection between two virtual networks in a given site.\nFleet defines one or more such network connectors.\nThe network connectors configuration is applied on all sites that are member of the fleet.", "maxItems": 8, "items": { "$ref": "#/components/schemas/ioschemaObjectRefType" }, "x-displayname": "Network Connectors.", "x-ves-validation-rules": { "ves.io.schema.rules.repeated.max_items": "8" }, "x-validation-rules": { "ves.io.schema.rules.repeated.max_items": "8" }, "x-f5xc-description-short": "Network Connector defines connection between two virtual networks in a given site.", "x-f5xc-description-medium": "Network Connector defines connection between two virtual networks in a given site. Fleet defines one or more such network connectors. The network connectors configuration is applied on all sites that are member of the fleet.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 8, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "network_firewall": { "type": "array", "description": "Network Firewall defines firewall to be applied for the virtual networks in the fleet.\nThe network firewall configuration is applied on all sites that are member of the fleet.\n\nConstraints\nThe Network Firewall is applied on Virtual Networks of type site local network and site local inside network.", "maxItems": 1, "items": { "$ref": "#/components/schemas/ioschemaObjectRefType" }, "x-displayname": "Network Firewall.", "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": "Network Firewall defines firewall to be applied for the virtual networks in the fleet.", "x-f5xc-description-medium": "Network Firewall defines firewall to be applied for the virtual networks in the fleet. The network firewall configuration is applied on all sites that are member of the fleet. Constraints The Network Firewall is applied on Virtual Networks of type site local network and site local inside network.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 1, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "no_bond_devices": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-description-short": "Configuration parameter for no bond devices.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "bond_device_list" ] }, "no_dc_cluster_group": { "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": [ "dc_cluster_group", "dc_cluster_group_inside" ] }, "no_storage_device": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-description-short": "Configuration parameter for no storage device.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "storage_device_list" ] }, "no_storage_interfaces": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-description-short": "Configuration parameter for no storage interfaces.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "storage_interface_list" ] }, "no_storage_static_routes": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-description-short": "Configuration parameter for no storage static routes.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "storage_static_routes" ] }, "operating_system_version": { "type": "string", "description": "Desired Operating System version that is applied to all sites that are member of the fleet.\nCurrent Operating System version can be overridden via site config.", "maxLength": 256, "x-displayname": "Operating System Version.", "x-ves-example": "Value", "x-ves-validation-rules": { "ves.io.schema.rules.string.max_len": "256" }, "x-f5xc-example": "value", "x-validation-rules": { "ves.io.schema.rules.string.max_len": "256" }, "x-f5xc-description-short": "Desired Operating System version that is applied to all sites that are member of the fleet.", "x-f5xc-description-medium": "Desired Operating System version that is applied to all sites that are member of the fleet. Current Operating System version can be overridden via site config.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 256, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "outside_virtual_network": { "type": "array", "description": "Default outside (site local) virtual network for the fleet.", "maxItems": 1, "items": { "$ref": "#/components/schemas/ioschemaObjectRefType" }, "x-displayname": "Outside (Site Local) Virtual Network.", "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": "Default outside (site local) virtual network for the fleet.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 1, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "performance_enhancement_mode": { "allOf": [ { "$ref": "#/components/schemas/viewsPerformanceEnhancementModeType" } ], "x-f5xc-description-short": "Configuration parameter for performance enhancement mode.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "sriov_interfaces": { "allOf": [ { "$ref": "#/components/schemas/fleetSriovInterfacesListType" } ], "x-f5xc-description-short": "Configuration parameter for sriov interfaces.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "default_sriov_interface" ] }, "storage_class_list": { "allOf": [ { "$ref": "#/components/schemas/fleetFleetStorageClassListType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "default_storage_class" ] }, "storage_device_list": { "allOf": [ { "$ref": "#/components/schemas/fleetFleetStorageDeviceListType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "no_storage_device" ] }, "storage_interface_list": { "allOf": [ { "$ref": "#/components/schemas/fleetFleetInterfaceListType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "no_storage_interfaces" ] }, "storage_static_routes": { "allOf": [ { "$ref": "#/components/schemas/fleetFleetStorageStaticRoutesListType" } ], "x-f5xc-description-short": "Configuration parameter for storage static routes.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "no_storage_static_routes" ] }, "usb_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": [ "allow_all_usb", "deny_all_usb" ], "x-f5xc-references": [ { "resource_kind": "usb_policy", "field_path": "usb_policy", "gated_by": { "choice": "usb_policy_choice" }, "required": false, "cardinality": "single" } ] }, "volterra_software_version": { "type": "string", "description": "F5XC software version is human readable string matching released set of version components.\nThe given software version is applied to all sites that are member of the fleet.\nCurrent software installed can be overridden via site config.", "maxLength": 256, "x-displayname": "Software Version.", "x-ves-example": "Value", "x-ves-validation-rules": { "ves.io.schema.rules.string.max_len": "256" }, "x-f5xc-example": "value", "x-validation-rules": { "ves.io.schema.rules.string.max_len": "256" }, "x-f5xc-description-short": "F5XC software version is human readable string matching released set of version components.", "x-f5xc-description-medium": "F5XC software version is human readable string matching released set of version components. The given software version is applied to all sites that are member of the fleet. Current software installed can be overridden via site config.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 256, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Replace fleet will replace the contents of given fleet object.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for schemafleetReplaceSpecType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemafleetReplaceSpecType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaviewsObjectRefType\nmetadata:\n name: example\n namespace: default\nspec:\n name: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"name\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "viewsKubernetesUpgradeDrain": { "type": "object", "description": "Specify how worker nodes within a site will be upgraded.", "title": "Node by Node Upgrade", "x-displayname": "Node by Node Upgrade.", "x-ves-displayorder": "1", "x-ves-oneof-field-kubernetes_upgrade_drain_enable_choice": "[\"disable_upgrade_drain\",\"enable_upgrade_drain\"]", "x-ves-proto-message": "ves.io.schema.views.KubernetesUpgradeDrain", "properties": { "disable_upgrade_drain": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-description-short": "Configuration parameter for disable upgrade drain.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "enable_upgrade_drain" ] }, "enable_upgrade_drain": { "allOf": [ { "$ref": "#/components/schemas/viewsKubernetesUpgradeDrainConfig" } ], "x-f5xc-description-short": "Configuration parameter for enable upgrade drain.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "disable_upgrade_drain" ] } }, "x-f5xc-description-short": "Specify how worker nodes within a site will be upgraded.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for viewsKubernetesUpgradeDrain", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for viewsKubernetesUpgradeDrain\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "viewsKubernetesUpgradeDrainConfig": { "type": "object", "description": "Specify batch upgrade settings for worker nodes within a site.", "title": "Enable Node by Node Upgrade", "x-displayname": "Enable Node by Node Upgrade.", "x-ves-oneof-field-drain_max_unavailable_choice": "[\"drain_max_unavailable_node_count\"]", "x-ves-oneof-field-vega_upgrade_mode_toggle_choice": "[\"disable_vega_upgrade_mode\",\"enable_vega_upgrade_mode\"]", "x-ves-proto-message": "ves.io.schema.views.KubernetesUpgradeDrainConfig", "properties": { "disable_vega_upgrade_mode": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-description-short": "Configuration parameter for disable vega upgrade mode.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "enable_vega_upgrade_mode" ] }, "drain_max_unavailable_node_count": { "type": "integer", "description": "Exclusive with []", "title": "Node Batch Size Count", "format": "int64", "x-displayname": "Node Batch Size Count.", "x-ves-example": "1", "x-ves-validation-rules": { "ves.io.schema.rules.uint32.gte": "1", "ves.io.schema.rules.uint32.lte": "5000" }, "x-f5xc-example": "1", "x-validation-rules": { "ves.io.schema.rules.uint32.gte": "1", "ves.io.schema.rules.uint32.lte": "5000" }, "x-f5xc-constraints": { "constraintType": "number", "category": "discovery", "minimum": 1, "maximum": 5000, "deterministic": true, "metadata": { "source": "api-probed", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "drain_node_timeout": { "type": "integer", "description": "Seconds to wait before initiating upgrade on the next set of nodes. Setting it to 0 will wait indefinitely for all services on nodes to be upgraded gracefully before proceeding to the next set of nodes.\n(Warning: It may block upgrade if services on a node cannot be gracefully upgraded. It is recommended to use the default value).", "title": "Upgrade Wait Time", "format": "int64", "x-displayname": "Upgrade Wait Time.", "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": "900" }, "x-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.uint32.gte": "0", "ves.io.schema.rules.uint32.lte": "900" }, "x-f5xc-description-short": "Seconds to wait before initiating upgrade on the next set of nodes.", "x-f5xc-description-medium": "Seconds to wait before initiating upgrade on the next set of nodes. Setting it to 0 will wait indefinitely for all services on nodes to be upgraded gracefully before proceeding to the next set of nodes. (Warning: It may block upgrade if services on a node cannot be gracefully upgraded. It is...", "x-f5xc-constraints": { "constraintType": "number", "category": "discovery", "minimum": 0, "maximum": 900, "deterministic": true, "metadata": { "source": "api-probed", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "enable_vega_upgrade_mode": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-description-short": "Configuration parameter for enable vega upgrade mode.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "disable_vega_upgrade_mode" ] } }, "x-f5xc-description-short": "Specify batch upgrade settings for worker nodes within a site.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for viewsKubernetesUpgradeDrainConfig", "required_fields": [ "drain_node_timeout" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for viewsKubernetesUpgradeDrainConfig\nmetadata:\n name: example\n namespace: default\nspec:\n drain_node_timeout: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"drain_node_timeout\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "certificates", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "viewsL3PerformanceEnhancementType": { "type": "object", "description": "L3 enhanced performance mode OPTIONS.", "title": "L3 Mode Enhanced Performance options", "x-displayname": "L3 Mode Enhanced Performance.", "x-ves-displayorder": "1", "x-ves-oneof-field-perf_mode_choice": "[\"jumbo\",\"no_jumbo\"]", "x-ves-proto-message": "ves.io.schema.views.L3PerformanceEnhancementType", "properties": { "jumbo": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "no_jumbo" ] }, "no_jumbo": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "jumbo" ] } }, "x-required": true, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for viewsL3PerformanceEnhancementType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for viewsL3PerformanceEnhancementType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "viewsL7PerformanceEnhancementType": { "type": "object", "description": "L7 enhanced performance mode OPTIONS.", "title": "L7 Mode Enhanced Performance options", "x-displayname": "L7 Mode Enhanced Performance.", "x-ves-oneof-field-perf_mode_choice": "[\"jumbo_disabled\",\"jumbo_enabled\"]", "x-ves-proto-message": "ves.io.schema.views.L7PerformanceEnhancementType", "properties": { "jumbo_disabled": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "jumbo_enabled" ] }, "jumbo_enabled": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "jumbo_disabled" ] } }, "x-required": true, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for viewsL7PerformanceEnhancementType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for viewsL7PerformanceEnhancementType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "viewsPerformanceEnhancementModeType": { "type": "object", "description": "Optimize the site for L3 or L7 traffic processing. L7 optimized is the default.", "title": "Performance Enhancement Choice", "x-displayname": "Performance Enhancement Mode.", "x-ves-displayorder": "1", "x-ves-oneof-field-perf_mode_choice": "[\"perf_mode_l3_enhanced\",\"perf_mode_l7_enhanced\"]", "x-ves-proto-message": "ves.io.schema.views.PerformanceEnhancementModeType", "properties": { "perf_mode_l3_enhanced": { "allOf": [ { "$ref": "#/components/schemas/viewsL3PerformanceEnhancementType" } ], "x-f5xc-description-short": "Configuration parameter for perf mode l3 enhanced.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "perf_mode_l7_enhanced" ] }, "perf_mode_l7_enhanced": { "allOf": [ { "$ref": "#/components/schemas/viewsL7PerformanceEnhancementType" } ], "x-f5xc-description-short": "Configuration parameter for perf mode l7 enhanced.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "perf_mode_l3_enhanced" ] } }, "x-required": true, "x-f5xc-description-short": "Optimize the site for L3 or L7 traffic processing. L7 optimized is the default.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for viewsPerformanceEnhancementModeType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for viewsPerformanceEnhancementModeType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for viewsPrefixStringListType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "module_managementModuleManagement": { "type": "string", "description": "Module is allowed or not\n\nDefault check value. Check response details for more info.\nConfiguration Allowed\nConfiguration not allowed.", "title": "ModuleManagement", "enum": [ "MM_NONE", "ALLOWED", "NOT_ALLOWED" ], "default": "MM_NONE", "x-displayname": "Module Management.", "x-ves-proto-enum": "ves.io.schema.module_management.ModuleManagement", "x-f5xc-description-short": "Module is allowed or not Default check value. Check response details for more info.", "x-f5xc-description-medium": "Module is allowed or not Default check value. Check response details for more info. Configuration Allowed Configuration not allowed.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for module_managementModuleManagement", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for module_managementModuleManagement\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "module_managementModuleManagementResponse": { "type": "object", "description": "Defines settings for module control.", "title": "ModuleManagementResponse", "x-displayname": "ModuleManagementResponse.", "x-ves-proto-message": "ves.io.schema.module_management.ModuleManagementResponse", "properties": { "glr_configuration": { "allOf": [ { "$ref": "#/components/schemas/module_managementModuleManagement" } ], "x-f5xc-description-short": "Configuration parameter for glr configuration.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "maxLength": 7, "minLength": 7, "x-reconciled-from-discovery": true, "x-reconciled-at": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for module_managementModuleManagementResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for module_managementModuleManagementResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "network_interfaceCreateRequest": { "type": "object", "description": "This is the input message of the 'Create' RPC.", "title": "CreateRequest is used to create an instance of network_interface", "x-displayname": "Create Request.", "x-ves-proto-message": "ves.io.schema.network_interface.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/network_interfaceCreateSpecType" } ], "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 network_interfaceCreateRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for network_interfaceCreateRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Network interface configuration is platform-level" }, "classification": { "category": "networking", "multi_tenant_pattern": "none" } } }, "network_interfaceCreateResponse": { "type": "object", "x-ves-proto-message": "ves.io.schema.network_interface.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/network_interfaceGetSpecType" } ], "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 network_interfaceCreateResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for network_interfaceCreateResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Network interface configuration is platform-level" }, "classification": { "category": "networking", "multi_tenant_pattern": "none" } } }, "network_interfaceCreateSpecType": { "type": "object", "description": "Network interface represents configuration of a network device.\nIt is created by users in system namespace.", "title": "Create network interface", "x-displayname": "Create Network Interface.", "x-ves-oneof-field-interface_choice": "[\"dedicated_interface\",\"dedicated_management_interface\",\"ethernet_interface\",\"layer2_interface\",\"tunnel_interface\"]", "x-ves-proto-message": "ves.io.schema.network_interface.CreateSpecType", "properties": { "dedicated_interface": { "allOf": [ { "$ref": "#/components/schemas/network_interfaceDedicatedInterfaceType" } ], "x-f5xc-description-short": "Configuration parameter for dedicated interface.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "dedicated_management_interface", "ethernet_interface", "layer2_interface", "tunnel_interface" ] }, "dedicated_management_interface": { "allOf": [ { "$ref": "#/components/schemas/network_interfaceDedicatedManagementInterfaceType" } ], "x-f5xc-description-short": "Configuration parameter for dedicated management interface.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "dedicated_interface", "ethernet_interface", "layer2_interface", "tunnel_interface" ] }, "ethernet_interface": { "allOf": [ { "$ref": "#/components/schemas/network_interfaceEthernetInterfaceType" } ], "x-f5xc-description-short": "Configuration parameter for ethernet interface.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "dedicated_interface", "dedicated_management_interface", "layer2_interface", "tunnel_interface" ] }, "layer2_interface": { "allOf": [ { "$ref": "#/components/schemas/network_interfaceLayer2InterfaceType" } ], "x-f5xc-description-short": "Configuration parameter for layer2 interface.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "dedicated_interface", "dedicated_management_interface", "ethernet_interface", "tunnel_interface" ] }, "tunnel_interface": { "allOf": [ { "$ref": "#/components/schemas/network_interfaceTunnelInterfaceType" } ], "x-f5xc-description-short": "Configuration parameter for tunnel interface.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "dedicated_interface", "dedicated_management_interface", "ethernet_interface", "layer2_interface" ] } }, "x-f5xc-description-short": "Network interface represents configuration of a network device. It is created by users in system namespace.", "x-f5xc-description-medium": "Network interface represents configuration of a network device. It is created by users in system namespace.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for network_interfaceCreateSpecType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for network_interfaceCreateSpecType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Network interface configuration is platform-level" }, "classification": { "category": "networking", "multi_tenant_pattern": "none" } } }, "network_interfaceDHCPIPV6NetworkType": { "type": "object", "description": "DHCP IPv6 network type configuration.", "title": "DHCPIPV6NetworkType", "x-displayname": "DHCPIPV6NetworkType.", "x-ves-displayorder": "1,5,4", "x-ves-oneof-field-network_prefix_choice": "[\"network_prefix\"]", "x-ves-proto-message": "ves.io.schema.network_interface.DHCPIPV6NetworkType", "properties": { "network_prefix": { "type": "string", "description": "Exclusive with []\nNetwork Prefix to be used for IPv6 address auto configuration.", "title": "Network Prefix", "x-displayname": "Network Prefix.", "x-ves-example": "2001::0/64.", "x-ves-validation-rules": { "ves.io.schema.rules.string.ipv6_prefix": "true" }, "x-f5xc-example": "2001::0/64", "x-validation-rules": { "ves.io.schema.rules.string.ipv6_prefix": "true" }, "x-f5xc-description-short": "Exclusive with [] Network Prefix to be used for IPv6 address auto configuration.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "pool_settings": { "allOf": [ { "$ref": "#/components/schemas/network_interfaceDHCPPoolSettingType" } ], "x-f5xc-description-short": "Configuration parameter for pool settings.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "pools": { "type": "array", "description": "List of non overlapping IP address ranges.", "title": "DHCP pools", "maxItems": 16, "items": { "$ref": "#/components/schemas/network_interfaceDHCPIPV6PoolType" }, "x-displayname": "DHCP 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": "List of non overlapping IP address ranges.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 16, "minItems": 1, "uniqueItems": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+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 network_interfaceDHCPIPV6NetworkType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for network_interfaceDHCPIPV6NetworkType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Network interface configuration is platform-level" }, "classification": { "category": "networking", "multi_tenant_pattern": "none" } } }, "network_interfaceDHCPIPV6PoolType": { "type": "object", "description": "DHCP IPv6 pool is a range of IP addresses (start IP and end IP).", "title": "DHCP IPV6 Range", "x-displayname": "DHCP IPv6 Range.", "x-ves-proto-message": "ves.io.schema.network_interface.DHCPIPV6PoolType", "properties": { "end_ip": { "type": "string", "description": "Ending IPv6 address of the pool range.\nIn case of address allocator, offset is derived based on network prefix.", "title": "End IP", "x-displayname": "Ending IPv6.", "x-ves-example": "2001::200", "x-ves-validation-rules": { "ves.io.schema.rules.string.ipv6": "true" }, "x-f5xc-example": "2001::200", "x-validation-rules": { "ves.io.schema.rules.string.ipv6": "true" }, "x-f5xc-description-short": "Ending IPv6 address of the pool range. In case of address allocator, offset is derived based on network prefix.", "x-f5xc-description-medium": "Ending IPv6 address of the pool range. In case of address allocator, offset is derived based on network prefix.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 1024, "format": "ipv6", "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "start_ip": { "type": "string", "description": "Starting IPv6 address of the pool range.\nIn case of address allocator, offset is derived based on network prefix.\n2001::1 with prefix length of 64, start offset is 5.", "title": "Start IPV6", "x-displayname": "Starting IPv6.", "x-ves-example": "2001::1", "x-ves-validation-rules": { "ves.io.schema.rules.string.ipv6": "true" }, "x-f5xc-example": "2001::1", "x-validation-rules": { "ves.io.schema.rules.string.ipv6": "true" }, "x-f5xc-description-short": "Starting IPv6 address of the pool range.", "x-f5xc-description-medium": "Starting IPv6 address of the pool range. In case of address allocator, offset is derived based on network prefix. 2001::1 with prefix length of 64, start offset is 5.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 1024, "format": "ipv6", "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "DHCP IPv6 pool is a range of IP addresses (start IP and end IP).", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for network_interfaceDHCPIPV6PoolType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for network_interfaceDHCPIPV6PoolType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Network interface configuration is platform-level" }, "classification": { "category": "networking", "multi_tenant_pattern": "none" } } }, "network_interfaceDHCPIPV6StatefulServer": { "type": "object", "title": "DHCPIPV6StatefulServer", "x-displayname": "DHCPIPV6 Stateful Server.", "x-ves-oneof-field-interfaces_addressing_choice": "[\"automatic_from_end\",\"automatic_from_start\",\"interface_ip_map\"]", "x-ves-proto-message": "ves.io.schema.network_interface.DHCPIPV6StatefulServer", "properties": { "automatic_from_end": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-description-short": "Configuration parameter for automatic from end.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "automatic_from_start", "interface_ip_map" ] }, "automatic_from_start": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-description-short": "Configuration parameter for automatic from start.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "automatic_from_end", "interface_ip_map" ] }, "dhcp_networks": { "type": "array", "description": "List of networks from which DHCP server can allocate IP addresses.", "title": "DHCP IPV6 Networks", "minItems": 1, "maxItems": 1, "items": { "$ref": "#/components/schemas/network_interfaceDHCPIPV6NetworkType" }, "x-displayname": "DHCP IPv6 Networks.", "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", "ves.io.schema.rules.repeated.unique": "true" }, "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", "ves.io.schema.rules.repeated.unique": "true" }, "x-f5xc-description-short": "List of networks from which DHCP server can allocate IP addresses.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "minItems": 1, "maxItems": 1, "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "fixed_ip_map": { "type": "object", "description": "Fixed MAC address to IPv6 assignments, Key: MAC address, Value: IPv6 Address\nAssign fixed IPv6 addresses based on the MAC Address of the DHCP Client.", "title": "Fixed IPV6 Assignments", "x-displayname": "Fixed MAC Address to IPv6 Assignments.", "x-ves-example": "Value", "x-ves-validation-rules": { "ves.io.schema.rules.map.keys.string.mac": "true", "ves.io.schema.rules.map.max_pairs": "128", "ves.io.schema.rules.map.unique_values": "true", "ves.io.schema.rules.map.values.string.ipv6": "true" }, "x-f5xc-example": "value", "x-validation-rules": { "ves.io.schema.rules.map.keys.string.mac": "true", "ves.io.schema.rules.map.max_pairs": "128", "ves.io.schema.rules.map.unique_values": "true", "ves.io.schema.rules.map.values.string.ipv6": "true" }, "x-f5xc-description-short": "Fixed MAC address to IPv6 assignments, Key: MAC address, Value: IPv6 Address Assign fixed IPv6 addresses based on the MAC Address of the DHCP Client.", "x-f5xc-description-medium": "Fixed MAC address to IPv6 assignments, Key: MAC address, Value: IPv6 Address Assign fixed IPv6 addresses based on the MAC Address of the DHCP Client.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "interface_ip_map": { "allOf": [ { "$ref": "#/components/schemas/network_interfaceDHCPInterfaceIPV6Type" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "automatic_from_end", "automatic_from_start" ] } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for network_interfaceDHCPIPV6StatefulServer", "required_fields": [ "dhcp_networks" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for network_interfaceDHCPIPV6StatefulServer\nmetadata:\n name: example\n namespace: default\nspec:\n dhcp_networks: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"dhcp_networks\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Network interface configuration is platform-level" }, "classification": { "category": "networking", "multi_tenant_pattern": "none" } } }, "network_interfaceDHCPInterfaceIPType": { "type": "object", "description": "Specify static IPv4 addresses per node.", "title": "Interface IPv4 Assignments", "x-displayname": "Interface IPv4 Assignments.", "x-ves-proto-message": "ves.io.schema.network_interface.DHCPInterfaceIPType", "properties": { "interface_ip_map": { "type": "object", "description": "Specify static IPv4 addresses per site:node.", "title": "Site:Node to IP mapping", "x-displayname": "Site:Node to IPv4 Address Mapping.", "x-ves-example": "Value", "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": "64", "ves.io.schema.rules.map.values.string.ipv4": "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": "64", "ves.io.schema.rules.map.values.string.ipv4": "true" }, "x-f5xc-description-short": "Specify static IPv4 addresses per site:node.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for network_interfaceDHCPInterfaceIPType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for network_interfaceDHCPInterfaceIPType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Network interface configuration is platform-level" }, "classification": { "category": "networking", "multi_tenant_pattern": "none" } } }, "network_interfaceDHCPInterfaceIPV6Type": { "type": "object", "description": "Map of Interface IPv6 assignments per node.", "title": "Interface IPV6 Assignments", "x-displayname": "Interface IPv6 Assignments.", "x-ves-proto-message": "ves.io.schema.network_interface.DHCPInterfaceIPV6Type", "properties": { "interface_ip_map": { "type": "object", "description": "Map of Site:Node to IPv6 address.", "title": "Site:Node to IPV6 mapping", "x-displayname": "Site:Node to IPv6 Mapping.", "x-ves-example": "Value", "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": "64", "ves.io.schema.rules.map.values.string.ipv6": "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": "64", "ves.io.schema.rules.map.values.string.ipv6": "true" }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Map of Interface IPv6 assignments per node.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for network_interfaceDHCPInterfaceIPV6Type", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for network_interfaceDHCPInterfaceIPV6Type\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Network interface configuration is platform-level" }, "classification": { "category": "networking", "multi_tenant_pattern": "none" } } }, "network_interfaceDHCPNetworkType": { "type": "object", "description": "DHCP network configuration.", "title": "DHCP Network", "x-displayname": "DHCP Network.", "x-ves-displayorder": "1,12,4,5,9", "x-ves-oneof-field-dns_choice": "[\"dns_address\",\"same_as_dgw\"]", "x-ves-oneof-field-gateway_choice": "[\"dgw_address\",\"first_address\",\"last_address\"]", "x-ves-oneof-field-network_prefix_choice": "[\"network_prefix\"]", "x-ves-proto-message": "ves.io.schema.network_interface.DHCPNetworkType", "properties": { "dgw_address": { "type": "string", "description": "Exclusive with [first_address last_address]\nEnter a IPv4 address from the network prefix to be used as the default gateway.", "title": "Configured Address", "x-displayname": "Static IPv4 Configuration.", "x-ves-example": "192.0.2.2", "x-ves-validation-rules": { "ves.io.schema.rules.string.ipv4": "true" }, "x-f5xc-example": "192.0.2.2", "x-validation-rules": { "ves.io.schema.rules.string.ipv4": "true" }, "x-f5xc-description-short": "Exclusive with [first_address last_address] Enter a IPv4 address from the network prefix to be used as the default gateway.", "x-f5xc-description-medium": "Exclusive with [first_address last_address] Enter a IPv4 address from the network prefix to be used as the default gateway.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 1024, "format": "ipv4", "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "first_address", "last_address" ] }, "dns_address": { "type": "string", "description": "Exclusive with [same_as_dgw]\nEnter a IPv4 address from the network prefix to be used as the DNS server.", "title": "Configured Address", "x-displayname": "Static IPv4 Configuration.", "x-ves-example": "192.0.2.193.", "x-ves-validation-rules": { "ves.io.schema.rules.string.ipv4": "true" }, "x-f5xc-example": "192.0.2.193", "x-validation-rules": { "ves.io.schema.rules.string.ipv4": "true" }, "x-f5xc-description-short": "Exclusive with [same_as_dgw] Enter a IPv4 address from the network prefix to be used as the DNS server.", "x-f5xc-description-medium": "Exclusive with [same_as_dgw] Enter a IPv4 address from the network prefix to be used as the DNS server.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 1024, "format": "ipv4", "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "same_as_dgw" ] }, "first_address": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "dgw_address", "last_address" ] }, "last_address": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "dgw_address", "first_address" ] }, "network_prefix": { "type": "string", "description": "Exclusive with []\nSet the network prefix for the site. Ex: 192.0.2.0/24.", "title": "Network Prefix", "x-displayname": "Network 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 [] Set the network prefix for the site. Ex: 192.0.2.0/24.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "pool_settings": { "allOf": [ { "$ref": "#/components/schemas/network_interfaceDHCPPoolSettingType" } ], "x-f5xc-description-short": "Configuration parameter for pool settings.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "pools": { "type": "array", "description": "List of non overlapping IP address ranges.", "title": "DHCP pools", "maxItems": 16, "items": { "$ref": "#/components/schemas/network_interfaceDHCPPoolType" }, "x-displayname": "DHCP 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": "List of non overlapping IP address ranges.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 16, "minItems": 1, "uniqueItems": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" }, "deterministic": true }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "same_as_dgw": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-description-short": "Configuration parameter for same as dgw.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "dns_address" ] } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for network_interfaceDHCPNetworkType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for network_interfaceDHCPNetworkType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Network interface configuration is platform-level" }, "classification": { "category": "networking", "multi_tenant_pattern": "none" } } }, "network_interfaceDHCPPoolSettingType": { "type": "string", "description": "Identifies the how to pick the network for Interface.\n\nAddress ranges in DHCP pool list are used for IP Address allocation\nAddress ranges in DHCP pool list are excluded from IP Address allocation.", "title": "DHCP POOL SETTING", "enum": [ "INCLUDE_IP_ADDRESSES_FROM_DHCP_POOLS", "EXCLUDE_IP_ADDRESSES_FROM_DHCP_POOLS" ], "default": "INCLUDE_IP_ADDRESSES_FROM_DHCP_POOLS", "x-displayname": "Interface Network Type.", "x-ves-proto-enum": "ves.io.schema.network_interface.DHCPPoolSettingType", "x-f5xc-description-short": "Identifies the how to pick the network for Interface.", "x-f5xc-description-medium": "Identifies the how to pick the network for Interface. Address ranges in DHCP pool list are used for IP Address allocation Address ranges in DHCP pool list are excluded from IP Address allocation.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for network_interfaceDHCPPoolSettingType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for network_interfaceDHCPPoolSettingType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Network interface configuration is platform-level" }, "classification": { "category": "networking", "multi_tenant_pattern": "none" } } }, "network_interfaceDHCPPoolType": { "type": "object", "description": "DHCP pool is a range of IP addresses (start IP and end IP).", "title": "DHCP IP Range", "x-displayname": "DHCP IP Range.", "x-ves-proto-message": "ves.io.schema.network_interface.DHCPPoolType", "properties": { "end_ip": { "type": "string", "description": "Ending IP of the pool range.\nIn case of address allocator, offset is derived based on network prefix.\n192.0.2.39 with prefix length of 24, end offset is 192.0.2.186.", "title": "End IP", "x-displayname": "Ending IP", "x-ves-example": "192.0.2.39.", "x-ves-validation-rules": { "ves.io.schema.rules.string.ipv4": "true" }, "x-f5xc-example": "192.0.2.39", "x-validation-rules": { "ves.io.schema.rules.string.ipv4": "true" }, "x-f5xc-description-medium": "Ending IP of the pool range. In case of address allocator, offset is derived based on network prefix. 192.0.2.39 with prefix length of 24, end offset is 192.0.2.186.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 1024, "format": "ipv4", "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "start_ip": { "type": "string", "description": "Starting IP of the pool range.\nIn case of address allocator, offset is derived based on network prefix.\n192.0.2.173 with prefix length of 24, start offset is 192.0.2.96.", "title": "Start IP", "x-displayname": "Starting IP.", "x-ves-example": "192.0.2.173.", "x-ves-validation-rules": { "ves.io.schema.rules.string.ipv4": "true" }, "x-f5xc-example": "192.0.2.173", "x-validation-rules": { "ves.io.schema.rules.string.ipv4": "true" }, "x-f5xc-description-medium": "Starting IP of the pool range. In case of address allocator, offset is derived based on network prefix. 192.0.2.173 with prefix length of 24, start offset is 192.0.2.96.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 1024, "format": "ipv4", "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "DHCP pool is a range of IP addresses (start IP and end IP).", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for network_interfaceDHCPPoolType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for network_interfaceDHCPPoolType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Network interface configuration is platform-level" }, "classification": { "category": "networking", "multi_tenant_pattern": "none" } } }, "network_interfaceDHCPServerParametersType": { "type": "object", "title": "DHCPServerParametersType", "x-displayname": "DHCPServerParametersType.", "x-ves-oneof-field-interfaces_addressing_choice": "[\"automatic_from_end\",\"automatic_from_start\",\"interface_ip_map\"]", "x-ves-proto-message": "ves.io.schema.network_interface.DHCPServerParametersType", "properties": { "automatic_from_end": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-description-short": "Configuration parameter for automatic from end.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "automatic_from_start", "interface_ip_map" ] }, "automatic_from_start": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-description-short": "Configuration parameter for automatic from start.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "automatic_from_end", "interface_ip_map" ] }, "dhcp_networks": { "type": "array", "description": "List of networks from which DHCP Server can allocate IPv4 Addresses.", "title": "DHCP Networks", "minItems": 1, "maxItems": 1, "items": { "$ref": "#/components/schemas/network_interfaceDHCPNetworkType" }, "x-displayname": "DHCP Networks.", "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", "ves.io.schema.rules.repeated.unique": "true" }, "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", "ves.io.schema.rules.repeated.unique": "true" }, "x-f5xc-description-short": "List of networks from which DHCP Server can allocate IPv4 Addresses.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "minItems": 1, "maxItems": 1, "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "fixed_ip_map": { "type": "object", "description": "Assign fixed IPv4 addresses based on the MAC Address of the DHCP Client.", "title": "Fixed IP Assignments", "x-displayname": "Fixed MAC Address to IPv4 Assignments.", "x-ves-example": "Value", "x-ves-validation-rules": { "ves.io.schema.rules.map.keys.string.mac": "true", "ves.io.schema.rules.map.max_pairs": "128", "ves.io.schema.rules.map.unique_values": "true", "ves.io.schema.rules.map.values.string.ipv4": "true" }, "x-f5xc-example": "value", "x-validation-rules": { "ves.io.schema.rules.map.keys.string.mac": "true", "ves.io.schema.rules.map.max_pairs": "128", "ves.io.schema.rules.map.unique_values": "true", "ves.io.schema.rules.map.values.string.ipv4": "true" }, "x-f5xc-description-short": "Assign fixed IPv4 addresses based on the MAC Address of the DHCP Client.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "interface_ip_map": { "allOf": [ { "$ref": "#/components/schemas/network_interfaceDHCPInterfaceIPType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "automatic_from_end", "automatic_from_start" ] } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for network_interfaceDHCPServerParametersType", "required_fields": [ "dhcp_networks" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for network_interfaceDHCPServerParametersType\nmetadata:\n name: example\n namespace: default\nspec:\n dhcp_networks: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"dhcp_networks\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Network interface configuration is platform-level" }, "classification": { "category": "networking", "multi_tenant_pattern": "none" } } }, "network_interfaceDedicatedInterfaceType": { "type": "object", "description": "Dedicated Interface Configuration.", "title": "Dedicated Interface", "x-displayname": "Dedicated Interface.", "x-ves-oneof-field-monitoring_choice": "[\"monitor\",\"monitor_disabled\"]", "x-ves-oneof-field-node_choice": "[\"cluster\",\"node\"]", "x-ves-oneof-field-primary_choice": "[\"is_primary\",\"not_primary\"]", "x-ves-proto-message": "ves.io.schema.network_interface.DedicatedInterfaceType", "properties": { "cluster": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-example": "production-cluster", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "node" ] }, "device": { "type": "string", "description": "Name of the device for which interface is configured. Use wwan0 for 4G/LTE.", "title": "Device", "minLength": 1, "maxLength": 64, "x-displayname": "Interface Device.", "x-ves-example": "Eth0", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.string.max_len": "64", "ves.io.schema.rules.string.min_len": "1" }, "x-f5xc-example": "eth0", "x-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.string.max_len": "64", "ves.io.schema.rules.string.min_len": "1" }, "x-f5xc-description-short": "Name of the device for which interface is configured. Use wwan0 for 4G/LTE.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "minLength": 1, "maxLength": 64, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "is_primary": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "not_primary" ] }, "monitor": { "allOf": [ { "$ref": "#/components/schemas/network_interfaceLinkQualityMonitorConfig" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "monitor_disabled" ] }, "monitor_disabled": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "monitor" ] }, "mtu": { "type": "integer", "description": "Maximum packet size (Maximum Transfer Unit) of the interface\nWhen configured, MTU must be between 512 and 16384.", "title": "Maximum Packet Size (MTU)", "format": "int64", "x-displayname": "Maximum Packet Size (MTU)", "x-ves-example": "1450", "x-ves-validation-rules": { "ves.io.schema.rules.uint32.ranges": "0,512-16384" }, "x-f5xc-example": "1450", "x-validation-rules": { "ves.io.schema.rules.uint32.ranges": "0,512-16384" }, "x-f5xc-description-short": "Maximum packet size (Maximum Transfer Unit) of the interface When configured, MTU must be between 512 and 16384.", "x-f5xc-description-medium": "Maximum packet size (Maximum Transfer Unit) of the interface When configured, MTU must be between 512 and 16384.", "x-f5xc-constraints": { "constraintType": "number", "category": "discovery", "maximum": 16384, "deterministic": true, "metadata": { "source": "api-probed", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "node": { "type": "string", "description": "Exclusive with [cluster]\nConfiguration will apply to a device on the given node of the site.", "title": "Node", "minLength": 1, "maxLength": 64, "x-displayname": "Specific Node.", "x-ves-validation-rules": { "ves.io.schema.rules.string.max_len": "64", "ves.io.schema.rules.string.min_len": "1" }, "x-validation-rules": { "ves.io.schema.rules.string.max_len": "64", "ves.io.schema.rules.string.min_len": "1" }, "x-f5xc-description-short": "Exclusive with [cluster] Configuration will apply to a device on the given node of the site.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "minLength": 1, "maxLength": 64, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "cluster" ] }, "not_primary": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-description-short": "Configuration parameter for not primary.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "is_primary" ] }, "priority": { "type": "integer", "description": "Priority of the network interface when multiple network interfaces are present in outside network\nGreater the value, higher the priority.", "title": "Priority", "format": "int64", "x-displayname": "Priority", "x-ves-example": "42", "x-ves-validation-rules": { "ves.io.schema.rules.uint32.gte": "0", "ves.io.schema.rules.uint32.lte": "255" }, "x-f5xc-example": "42", "x-validation-rules": { "ves.io.schema.rules.uint32.gte": "0", "ves.io.schema.rules.uint32.lte": "255" }, "x-f5xc-description-short": "Priority of the network interface when multiple network interfaces are present in outside network Greater the value, higher the priority.", "x-f5xc-description-medium": "Priority of the network interface when multiple network interfaces are present in outside network Greater the value, higher the priority.", "x-f5xc-constraints": { "constraintType": "number", "category": "discovery", "minimum": 0, "maximum": 255, "multipleOf": 1, "metadata": { "source": "api-probed", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+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 network_interfaceDedicatedInterfaceType", "required_fields": [ "device" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for network_interfaceDedicatedInterfaceType\nmetadata:\n name: example\n namespace: default\nspec:\n device: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"device\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Network interface configuration is platform-level" }, "classification": { "category": "networking", "multi_tenant_pattern": "none" } } }, "network_interfaceDedicatedManagementInterfaceType": { "type": "object", "description": "Dedicated Interface Configuration.", "title": "Dedicated Management Interface", "x-displayname": "Dedicated Management Interface.", "x-ves-oneof-field-node_choice": "[\"cluster\",\"node\"]", "x-ves-proto-message": "ves.io.schema.network_interface.DedicatedManagementInterfaceType", "properties": { "cluster": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-example": "production-cluster", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "node" ] }, "device": { "type": "string", "description": "Name of the device for which interface is configured.", "title": "Device", "minLength": 1, "maxLength": 64, "x-displayname": "Interface Device.", "x-ves-example": "Eth0", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.string.max_len": "64", "ves.io.schema.rules.string.min_len": "1" }, "x-f5xc-example": "eth0", "x-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.string.max_len": "64", "ves.io.schema.rules.string.min_len": "1" }, "x-f5xc-description-short": "Name of the device for which interface is configured.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "minLength": 1, "maxLength": 64, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "mtu": { "type": "integer", "description": "Maximum packet size (Maximum Transfer Unit) of the interface\nWhen configured, MTU must be between 512 and 16384.", "title": "Maximum Packet Size (MTU)", "format": "int64", "x-displayname": "Maximum Packet Size (MTU)", "x-ves-example": "1450", "x-ves-validation-rules": { "ves.io.schema.rules.uint32.ranges": "0,512-16384" }, "x-f5xc-example": "1450", "x-validation-rules": { "ves.io.schema.rules.uint32.ranges": "0,512-16384" }, "x-f5xc-description-short": "Maximum packet size (Maximum Transfer Unit) of the interface When configured, MTU must be between 512 and 16384.", "x-f5xc-description-medium": "Maximum packet size (Maximum Transfer Unit) of the interface When configured, MTU must be between 512 and 16384.", "x-f5xc-constraints": { "constraintType": "number", "category": "discovery", "maximum": 16384, "deterministic": true, "metadata": { "source": "api-probed", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "node": { "type": "string", "description": "Exclusive with [cluster]\nConfiguration will apply to a device on the given node of the site.", "title": "Node", "minLength": 1, "maxLength": 64, "x-displayname": "Specific Node.", "x-ves-validation-rules": { "ves.io.schema.rules.string.max_len": "64", "ves.io.schema.rules.string.min_len": "1" }, "x-validation-rules": { "ves.io.schema.rules.string.max_len": "64", "ves.io.schema.rules.string.min_len": "1" }, "x-f5xc-description-short": "Exclusive with [cluster] Configuration will apply to a device on the given node of the site.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "minLength": 1, "maxLength": 64, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "cluster" ] } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for network_interfaceDedicatedManagementInterfaceType", "required_fields": [ "device" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for network_interfaceDedicatedManagementInterfaceType\nmetadata:\n name: example\n namespace: default\nspec:\n device: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"device\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Network interface configuration is platform-level" }, "classification": { "category": "networking", "multi_tenant_pattern": "none" } } }, "network_interfaceDeleteRequest": { "type": "object", "description": "This is the input message of the 'DELETE' RPC.", "title": "DeleteRequest is used to delete a network_interface", "x-displayname": "DELETE Request.", "x-ves-proto-message": "ves.io.schema.network_interface.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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for network_interfaceDeleteRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for network_interfaceDeleteRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Network interface configuration is platform-level" }, "classification": { "category": "networking", "multi_tenant_pattern": "none" } } }, "network_interfaceEthernetInterfaceType": { "type": "object", "description": "Ethernet Interface Configuration.", "title": "Ethernet Interface", "x-displayname": "Ethernet Interface.", "x-ves-oneof-field-address_choice": "[\"dhcp_client\",\"dhcp_server\",\"static_ip\"]", "x-ves-oneof-field-ipv6_address_choice": "[\"ipv6_auto_config\",\"no_ipv6_address\",\"static_ipv6_address\"]", "x-ves-oneof-field-monitoring_choice": "[\"monitor\",\"monitor_disabled\"]", "x-ves-oneof-field-network_choice": "[\"segment_network\",\"site_local_inside_network\",\"site_local_network\",\"storage_network\"]", "x-ves-oneof-field-node_choice": "[\"cluster\",\"node\"]", "x-ves-oneof-field-primary_choice": "[\"is_primary\",\"not_primary\"]", "x-ves-oneof-field-vlan_choice": "[\"untagged\",\"vlan_id\"]", "x-ves-proto-message": "ves.io.schema.network_interface.EthernetInterfaceType", "properties": { "cluster": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-example": "production-cluster", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "node" ] }, "device": { "type": "string", "description": "Interface configuration for the ethernet device.", "title": "Device", "minLength": 1, "maxLength": 64, "x-displayname": "Ethernet Device.", "x-ves-example": "Eth0", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.string.max_len": "64", "ves.io.schema.rules.string.min_len": "1" }, "x-f5xc-example": "eth0", "x-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.string.max_len": "64", "ves.io.schema.rules.string.min_len": "1" }, "x-f5xc-description-short": "Interface configuration for the ethernet device.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "minLength": 1, "maxLength": 64, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "dhcp_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": [ "dhcp_server", "static_ip" ] }, "dhcp_server": { "allOf": [ { "$ref": "#/components/schemas/network_interfaceDHCPServerParametersType" } ], "x-f5xc-description-short": "Configuration parameter for dhcp server.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "dhcp_client", "static_ip" ] }, "ipv6_auto_config": { "allOf": [ { "$ref": "#/components/schemas/network_interfaceIPV6AutoConfigType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "no_ipv6_address", "static_ipv6_address" ] }, "is_primary": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "not_primary" ] }, "monitor": { "allOf": [ { "$ref": "#/components/schemas/network_interfaceLinkQualityMonitorConfig" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "monitor_disabled" ] }, "monitor_disabled": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "monitor" ] }, "mtu": { "type": "integer", "description": "Maximum packet size (Maximum Transfer Unit) of the interface\nWhen configured, MTU must be between 512 and 16384.", "title": "Maximum Packet Size (MTU)", "format": "int64", "x-displayname": "Maximum Packet Size (MTU)", "x-ves-example": "1450", "x-ves-validation-rules": { "ves.io.schema.rules.uint32.ranges": "0,512-16384" }, "x-f5xc-example": "1450", "x-validation-rules": { "ves.io.schema.rules.uint32.ranges": "0,512-16384" }, "x-f5xc-description-short": "Maximum packet size (Maximum Transfer Unit) of the interface When configured, MTU must be between 512 and 16384.", "x-f5xc-description-medium": "Maximum packet size (Maximum Transfer Unit) of the interface When configured, MTU must be between 512 and 16384.", "x-f5xc-constraints": { "constraintType": "number", "category": "discovery", "maximum": 16384, "deterministic": true, "metadata": { "source": "api-probed", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "no_ipv6_address": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "ipv6_auto_config", "static_ipv6_address" ] }, "node": { "type": "string", "description": "Exclusive with [cluster]\nConfiguration will apply to a device on the given node.", "title": "Node", "minLength": 1, "maxLength": 64, "x-displayname": "Specific Node.", "x-ves-validation-rules": { "ves.io.schema.rules.string.max_len": "64", "ves.io.schema.rules.string.min_len": "1" }, "x-validation-rules": { "ves.io.schema.rules.string.max_len": "64", "ves.io.schema.rules.string.min_len": "1" }, "x-f5xc-description-short": "Exclusive with [cluster] Configuration will apply to a device on the given node.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "minLength": 1, "maxLength": 64, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "cluster" ] }, "not_primary": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-description-short": "Configuration parameter for not primary.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "is_primary" ] }, "priority": { "type": "integer", "description": "Priority of the network interface when multiple network interfaces are present in outside network\nGreater the value, higher the priority.", "title": "Priority", "format": "int64", "x-displayname": "Priority", "x-ves-example": "42", "x-ves-validation-rules": { "ves.io.schema.rules.uint32.gte": "0", "ves.io.schema.rules.uint32.lte": "255" }, "x-f5xc-example": "42", "x-validation-rules": { "ves.io.schema.rules.uint32.gte": "0", "ves.io.schema.rules.uint32.lte": "255" }, "x-f5xc-description-short": "Priority of the network interface when multiple network interfaces are present in outside network Greater the value, higher the priority.", "x-f5xc-description-medium": "Priority of the network interface when multiple network interfaces are present in outside network Greater the value, higher the priority.", "x-f5xc-constraints": { "constraintType": "number", "category": "discovery", "minimum": 0, "maximum": 255, "multipleOf": 1, "metadata": { "source": "api-probed", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" }, "deterministic": true }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "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": [ "segment_network", "site_local_network", "storage_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": [ "segment_network", "site_local_inside_network", "storage_network" ] }, "static_ip": { "allOf": [ { "$ref": "#/components/schemas/network_interfaceStaticIPParametersType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "dhcp_client", "dhcp_server" ] }, "static_ipv6_address": { "allOf": [ { "$ref": "#/components/schemas/network_interfaceStaticIPParametersType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "ipv6_auto_config", "no_ipv6_address" ] }, "storage_network": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-description-short": "Configuration parameter for storage network.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "segment_network", "site_local_inside_network", "site_local_network" ] }, "untagged": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "vlan_id" ] }, "vlan_id": { "type": "integer", "description": "Exclusive with [untagged]\nConfigure a VLAN tagged ethernet interface.", "title": "VLAN Id", "format": "int64", "x-displayname": "VLAN ID", "x-ves-validation-rules": { "ves.io.schema.rules.uint32.gte": "1", "ves.io.schema.rules.uint32.lte": "4095" }, "x-validation-rules": { "ves.io.schema.rules.uint32.gte": "1", "ves.io.schema.rules.uint32.lte": "4095" }, "x-f5xc-description-short": "Exclusive with [untagged] Configure a VLAN tagged ethernet interface.", "minimum": 1, "maximum": 4095, "x-f5xc-constraints": { "constraintType": "number", "category": "discovery", "minimum": 1, "maximum": 4095, "multipleOf": 1, "metadata": { "source": "api-probed", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" }, "deterministic": true }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-field-mutability": "read-only", "x-f5xc-conflicts-with": [ "untagged" ] } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for network_interfaceEthernetInterfaceType", "required_fields": [ "device" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for network_interfaceEthernetInterfaceType\nmetadata:\n name: example\n namespace: default\nspec:\n device: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"device\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Network interface configuration is platform-level" }, "classification": { "category": "networking", "multi_tenant_pattern": "none" } } }, "network_interfaceGetResponse": { "type": "object", "description": "This is the output message of the 'GET' RPC.", "title": "GetResponse is the shape of a read network_interface", "x-displayname": "GET Response.", "x-ves-proto-message": "ves.io.schema.network_interface.GetResponse", "properties": { "create_form": { "allOf": [ { "$ref": "#/components/schemas/network_interfaceCreateRequest" } ], "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/network_interfaceReplaceRequest" } ], "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/network_interfaceGetSpecType" } ], "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/network_interfaceStatusObject" }, "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-08-20T09:12:47+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 network_interfaceGetResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for network_interfaceGetResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Network interface configuration is platform-level" }, "classification": { "category": "networking", "multi_tenant_pattern": "none" } } }, "network_interfaceGetSpecType": { "type": "object", "description": "GET network interface from system namespace.", "title": "Get network interface", "x-displayname": "GET Network Interface.", "x-ves-oneof-field-interface_choice": "[\"dedicated_interface\",\"dedicated_management_interface\",\"ethernet_interface\",\"layer2_interface\",\"tunnel_interface\"]", "x-ves-oneof-field-monitoring_choice": "[\"monitor\",\"monitor_disabled\"]", "x-ves-proto-message": "ves.io.schema.network_interface.GetSpecType", "properties": { "DHCP_server": { "allOf": [ { "$ref": "#/components/schemas/network_interfaceNetworkInterfaceDHCPServer" } ], "x-f5xc-description-short": "Configuration parameter for DHCP server.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "DNS_server": { "allOf": [ { "$ref": "#/components/schemas/network_interfaceNetworkInterfaceDNS" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "address_allocator": { "type": "array", "description": "Reference to an address allocator for the network interface. When set, the allocator is used to\nallocate a subnet for the interface and an address from the subnet is set on the interface.", "maxItems": 1, "items": { "$ref": "#/components/schemas/ioschemaObjectRefType" }, "x-displayname": "Address Allocator.", "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 an address allocator for the network interface.", "x-f5xc-description-medium": "Reference to an address allocator for the network interface. When set, the allocator is used to allocate a subnet for the interface and an address from the subnet is set on the interface.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 1, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "dedicated_interface": { "allOf": [ { "$ref": "#/components/schemas/network_interfaceDedicatedInterfaceType" } ], "x-f5xc-description-short": "Configuration parameter for dedicated interface.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "dedicated_management_interface", "ethernet_interface", "layer2_interface", "tunnel_interface" ] }, "dedicated_management_interface": { "allOf": [ { "$ref": "#/components/schemas/network_interfaceDedicatedManagementInterfaceType" } ], "x-f5xc-description-short": "Configuration parameter for dedicated management interface.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "dedicated_interface", "ethernet_interface", "layer2_interface", "tunnel_interface" ] }, "default_gateway": { "allOf": [ { "$ref": "#/components/schemas/network_interfaceNetworkInterfaceDFGW" } ], "x-f5xc-description-short": "Configuration parameter for default gateway.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "device_name": { "type": "string", "description": "Name of the physical network interface device which this network interface represents.", "x-displayname": "Device 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" }, "x-f5xc-description-short": "Name of the physical network interface device which this network interface represents.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "dhcp_address": { "allOf": [ { "$ref": "#/components/schemas/network_interfaceNetworkInterfaceDHCP" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "ethernet_interface": { "allOf": [ { "$ref": "#/components/schemas/network_interfaceEthernetInterfaceType" } ], "x-f5xc-description-short": "Configuration parameter for ethernet interface.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "dedicated_interface", "dedicated_management_interface", "layer2_interface", "tunnel_interface" ] }, "interface_ip_map": { "type": "object", "description": "Map of Site:Node to IP address offset. Key:Node, Value:Map\nValue of 192.0.2.173 with network prefix 24, offset is 192.0.2.96.", "x-displayname": "Site:Node to IP Mapping.", "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": "64", "ves.io.schema.rules.map.values.string.ipv4": "true" }, "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": "64", "ves.io.schema.rules.map.values.string.ipv4": "true" }, "x-f5xc-description-short": "Map of Site:Node to IP address offset. Key:Node, Value:Map Value of 192.0.2.173 with network prefix 24, offset is 192.0.2.96.", "x-f5xc-description-medium": "Map of Site:Node to IP address offset. Key:Node, Value:Map Value of 192.0.2.173 with network prefix 24, offset is 192.0.2.96.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "is_primary": { "type": "boolean", "description": "This interface is primary interface.", "format": "boolean", "x-displayname": "Primary Interface.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "layer2_interface": { "allOf": [ { "$ref": "#/components/schemas/network_interfaceLayer2InterfaceType" } ], "x-f5xc-description-short": "Configuration parameter for layer2 interface.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "dedicated_interface", "dedicated_management_interface", "ethernet_interface", "tunnel_interface" ] }, "monitor": { "allOf": [ { "$ref": "#/components/schemas/network_interfaceLinkQualityMonitorConfig" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "monitor_disabled" ] }, "monitor_disabled": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "monitor" ] }, "mtu": { "type": "integer", "description": "Maximum Transfer Unit (Max packet length) of the interface\nWhen configured, MTU must be between 512 and 16384.", "format": "int64", "x-displayname": "MTU", "x-ves-example": "0", "x-ves-validation-rules": { "ves.io.schema.rules.uint32.ranges": "0,512-16384" }, "x-f5xc-example": "0", "x-validation-rules": { "ves.io.schema.rules.uint32.ranges": "0,512-16384" }, "x-f5xc-description-short": "Maximum Transfer Unit (Max packet length) of the interface When configured, MTU must be between 512 and 16384.", "x-f5xc-description-medium": "Maximum Transfer Unit (Max packet length) of the interface When configured, MTU must be between 512 and 16384.", "x-f5xc-constraints": { "constraintType": "number", "category": "discovery", "maximum": 16384, "deterministic": true, "metadata": { "source": "api-probed", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "priority": { "type": "integer", "description": "Priority of the network interface when multiple network interfaces are present in the fleet object\nGreater the value, higher the priority.", "format": "int64", "x-displayname": "Priority", "x-ves-example": "42", "x-ves-validation-rules": { "ves.io.schema.rules.uint32.gte": "0", "ves.io.schema.rules.uint32.lte": "255" }, "x-f5xc-example": "42", "x-validation-rules": { "ves.io.schema.rules.uint32.gte": "0", "ves.io.schema.rules.uint32.lte": "255" }, "x-f5xc-description-short": "Priority of the network interface when multiple network interfaces are present in the fleet object Greater the value, higher the priority.", "x-f5xc-description-medium": "Priority of the network interface when multiple network interfaces are present in the fleet object Greater the value, higher the priority.", "x-f5xc-constraints": { "constraintType": "number", "category": "discovery", "minimum": 0, "maximum": 255, "multipleOf": 1, "metadata": { "source": "api-probed", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" }, "deterministic": true }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "static_addresses": { "type": "array", "description": "If DHCP server is enabled, configures the subnet to be used for IP allocation.", "maxItems": 16, "items": { "$ref": "#/components/schemas/schemaIpv4SubnetType" }, "x-displayname": "Static IP", "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": "If DHCP server is enabled, configures the subnet to be used for IP allocation.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 16, "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "tunnel": { "allOf": [ { "$ref": "#/components/schemas/network_interfaceNetworkInterfaceTunnel" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "tunnel_interface": { "allOf": [ { "$ref": "#/components/schemas/network_interfaceTunnelInterfaceType" } ], "x-f5xc-description-short": "Configuration parameter for tunnel interface.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "dedicated_interface", "dedicated_management_interface", "ethernet_interface", "layer2_interface" ] }, "type": { "allOf": [ { "$ref": "#/components/schemas/network_interfaceNetworkInterfaceType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "virtual_network": { "type": "array", "description": "Virtual-network for the interface\nThis is optional and can contain at most one entry.", "maxItems": 1, "items": { "$ref": "#/components/schemas/ioschemaObjectRefType" }, "x-displayname": "Virtual Network.", "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": "Virtual-network for the interface This is optional and can contain at most one entry.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 1, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "vlan_tag": { "type": "integer", "description": "VLAN tag of the interface, valid only if VLAN tagging is enabled\nwhen vlan_tagging is enabled, value must be between 1 - 4094.", "format": "int64", "x-displayname": "VLAN Tag", "x-ves-example": "0", "x-ves-validation-rules": { "ves.io.schema.rules.uint32.gte": "0", "ves.io.schema.rules.uint32.lte": "4094" }, "x-f5xc-example": "0", "x-validation-rules": { "ves.io.schema.rules.uint32.gte": "0", "ves.io.schema.rules.uint32.lte": "4094" }, "x-f5xc-description-short": "VLAN tag of the interface, valid only if VLAN tagging is enabled when vlan_tagging is enabled, value must be between 1 - 4094.", "x-f5xc-description-medium": "VLAN tag of the interface, valid only if VLAN tagging is enabled when vlan_tagging is enabled, value must be between 1 - 4094.", "x-f5xc-constraints": { "constraintType": "number", "category": "discovery", "minimum": 0, "maximum": 4094, "deterministic": true, "metadata": { "source": "api-probed", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "vlan_tagging": { "allOf": [ { "$ref": "#/components/schemas/network_interfaceNetworkInterfaceVLANTagging" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "GET network interface from system namespace.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for network_interfaceGetSpecType", "required_fields": [ "device_name" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for network_interfaceGetSpecType\nmetadata:\n name: example\n namespace: default\nspec:\n device_name: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"device_name\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Network interface configuration is platform-level" }, "classification": { "category": "networking", "multi_tenant_pattern": "none" } } }, "network_interfaceIPV6AutoConfigRouterType": { "type": "object", "title": "IPV6AutoConfigRouterType", "x-displayname": "IPV6AutoConfigRouterType.", "x-ves-oneof-field-address_choice": "[\"network_prefix\",\"stateful\"]", "x-ves-proto-message": "ves.io.schema.network_interface.IPV6AutoConfigRouterType", "properties": { "dns_config": { "allOf": [ { "$ref": "#/components/schemas/network_interfaceIPV6DnsConfig" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "network_prefix": { "type": "string", "description": "Exclusive with [stateful]\nNetwork prefix that is used as Prefix information\nAllowed only /64 prefix length as per RFC 4862.", "title": "Prefix Info", "x-displayname": "Network Prefix.", "x-ves-example": "2001::0/64.", "x-ves-validation-rules": { "ves.io.schema.rules.string.ipv6_prefix": "true", "ves.io.schema.rules.string.pattern": ".*::/64$" }, "x-f5xc-example": "2001::0/64", "x-validation-rules": { "ves.io.schema.rules.string.ipv6_prefix": "true", "ves.io.schema.rules.string.pattern": ".*::/64$" }, "x-f5xc-description-short": "Exclusive with [stateful] Network prefix that is used as Prefix information Allowed only /64 prefix length as per RFC 4862.", "x-f5xc-description-medium": "Exclusive with [stateful] Network prefix that is used as Prefix information Allowed only /64 prefix length as per RFC 4862.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 1024, "pattern": ".*::/64$", "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "stateful" ] }, "stateful": { "allOf": [ { "$ref": "#/components/schemas/network_interfaceDHCPIPV6StatefulServer" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "network_prefix" ] } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for network_interfaceIPV6AutoConfigRouterType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for network_interfaceIPV6AutoConfigRouterType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Network interface configuration is platform-level" }, "classification": { "category": "networking", "multi_tenant_pattern": "none" } } }, "network_interfaceIPV6AutoConfigType": { "type": "object", "title": "IPV6AutoConfigType", "x-displayname": "IPV6AutoConfigType.", "x-ves-oneof-field-autoconfig_choice": "[\"host\",\"router\"]", "x-ves-proto-message": "ves.io.schema.network_interface.IPV6AutoConfigType", "properties": { "host": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-example": "api.example.com", "x-f5xc-description-short": "Hostname or IP address of the target server.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "router" ] }, "router": { "allOf": [ { "$ref": "#/components/schemas/network_interfaceIPV6AutoConfigRouterType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "host" ] } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for network_interfaceIPV6AutoConfigType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for network_interfaceIPV6AutoConfigType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Network interface configuration is platform-level" }, "classification": { "category": "networking", "multi_tenant_pattern": "none" } } }, "network_interfaceIPV6DnsConfig": { "type": "object", "title": "IPV6DnsConfig", "x-displayname": "IPV6DnsConfig.", "x-ves-oneof-field-dns_choice": "[\"configured_list\",\"local_dns\"]", "x-ves-proto-message": "ves.io.schema.network_interface.IPV6DnsConfig", "properties": { "configured_list": { "allOf": [ { "$ref": "#/components/schemas/network_interfaceIPV6DnsList" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "local_dns" ] }, "local_dns": { "allOf": [ { "$ref": "#/components/schemas/network_interfaceIPV6LocalDnsAddress" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "configured_list" ] } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for network_interfaceIPV6DnsConfig", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for network_interfaceIPV6DnsConfig\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Network interface configuration is platform-level" }, "classification": { "category": "networking", "multi_tenant_pattern": "none" } } }, "network_interfaceIPV6DnsList": { "type": "object", "title": "IPV6DnsList", "x-displayname": "IPV6DnsList.", "x-ves-proto-message": "ves.io.schema.network_interface.IPV6DnsList", "properties": { "dns_list": { "type": "array", "description": "List of IPv6 Addresses acting as DNS servers.", "title": "Dns List", "minItems": 1, "maxItems": 4, "items": { "type": "string" }, "x-displayname": "DNS List", "x-ves-example": "2001::11", "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", "ves.io.schema.rules.string.ipv6": "true" }, "x-f5xc-example": "2001::11", "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", "ves.io.schema.rules.string.ipv6": "true" }, "x-f5xc-description-short": "List of IPv6 Addresses acting as DNS servers.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "minItems": 1, "maxItems": 4, "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for network_interfaceIPV6DnsList", "required_fields": [ "dns_list" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for network_interfaceIPV6DnsList\nmetadata:\n name: example\n namespace: default\nspec:\n dns_list: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"dns_list\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Network interface configuration is platform-level" }, "classification": { "category": "networking", "multi_tenant_pattern": "none" } } }, "network_interfaceIPV6LocalDnsAddress": { "type": "object", "title": "IPV6LocalDnsAddress", "x-displayname": "IPV6LocalDnsAddress.", "x-ves-oneof-field-local_dns_choice": "[\"configured_address\",\"first_address\",\"last_address\"]", "x-ves-proto-message": "ves.io.schema.network_interface.IPV6LocalDnsAddress", "properties": { "configured_address": { "type": "string", "description": "Exclusive with [first_address last_address]\nConfigured address from the network prefix is chosen as DNS server.", "title": "Configured Address", "x-displayname": "Configured Address.", "x-ves-example": "2001::10", "x-ves-validation-rules": { "ves.io.schema.rules.string.ipv6": "true" }, "x-f5xc-example": "2001::10", "x-validation-rules": { "ves.io.schema.rules.string.ipv6": "true" }, "x-f5xc-description-short": "Exclusive with [first_address last_address] Configured address from the network prefix is chosen as DNS server.", "x-f5xc-description-medium": "Exclusive with [first_address last_address] Configured address from the network prefix is chosen as DNS server.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 1024, "format": "ipv6", "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "first_address", "last_address" ] }, "first_address": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "configured_address", "last_address" ] }, "last_address": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "configured_address", "first_address" ] } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for network_interfaceIPV6LocalDnsAddress", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for network_interfaceIPV6LocalDnsAddress\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Network interface configuration is platform-level" }, "classification": { "category": "networking", "multi_tenant_pattern": "none" } } }, "network_interfaceLayer2InterfaceType": { "type": "object", "description": "Layer2 Interface Configuration.", "title": "Layer2 interface", "x-displayname": "Layer2 Interface.", "x-ves-oneof-field-layer2_interface_choice": "[\"l2sriov_interface\",\"l2vlan_interface\",\"l2vlan_slo_interface\"]", "x-ves-proto-message": "ves.io.schema.network_interface.Layer2InterfaceType", "properties": { "l2sriov_interface": { "allOf": [ { "$ref": "#/components/schemas/network_interfaceLayer2SriovInterfaceType" } ], "x-f5xc-description-short": "Configuration parameter for l2sriov interface.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "l2vlan_interface", "l2vlan_slo_interface" ] }, "l2vlan_interface": { "allOf": [ { "$ref": "#/components/schemas/network_interfaceLayer2VlanInterfaceType" } ], "x-f5xc-description-short": "Configuration parameter for l2vlan interface.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "l2sriov_interface", "l2vlan_slo_interface" ] }, "l2vlan_slo_interface": { "allOf": [ { "$ref": "#/components/schemas/network_interfaceLayer2SloVlanInterfaceType" } ], "x-f5xc-description-short": "Configuration parameter for l2vlan slo interface.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "l2sriov_interface", "l2vlan_interface" ] } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for network_interfaceLayer2InterfaceType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for network_interfaceLayer2InterfaceType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Network interface configuration is platform-level" }, "classification": { "category": "networking", "multi_tenant_pattern": "none" } } }, "network_interfaceLayer2SloVlanInterfaceType": { "type": "object", "description": "Layer2 Site Local Outside VLAN Interface Configuration.", "title": "VLAN on Site Local Outside Interface", "x-displayname": "VLAN on Site Local Outside Interface.", "x-ves-proto-message": "ves.io.schema.network_interface.Layer2SloVlanInterfaceType", "properties": { "vlan_id": { "type": "integer", "description": "VLAN ID", "title": "VLAN Id", "format": "int64", "x-displayname": "VLAN ID", "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": "4095" }, "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": "4095" }, "minimum": 1, "maximum": 4095, "x-f5xc-constraints": { "constraintType": "number", "category": "discovery", "minimum": 1, "maximum": 4095, "multipleOf": 1, "metadata": { "source": "api-probed", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" }, "deterministic": true }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false }, "x-field-mutability": "read-only" } }, "x-f5xc-description-short": "Layer2 Site Local Outside VLAN Interface Configuration.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for network_interfaceLayer2SloVlanInterfaceType", "required_fields": [ "vlan_id" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for network_interfaceLayer2SloVlanInterfaceType\nmetadata:\n name: example\n namespace: default\nspec:\n vlan_id: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"vlan_id\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Network interface configuration is platform-level" }, "classification": { "category": "networking", "multi_tenant_pattern": "none" } } }, "network_interfaceLayer2SriovInterfaceType": { "type": "object", "description": "Layer2 SR-IOV Interface Configuration.", "title": "Layer2 SR-IOV interface", "x-displayname": "Layer2 SR-IOV Interface.", "x-ves-oneof-field-vlan_choice": "[\"untagged\",\"vlan_id\"]", "x-ves-proto-message": "ves.io.schema.network_interface.Layer2SriovInterfaceType", "properties": { "device": { "type": "string", "description": "Physical ethernet interface.", "title": "Device", "minLength": 1, "maxLength": 64, "x-displayname": "Ethernet Device.", "x-ves-example": "Eth0", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.string.max_len": "64", "ves.io.schema.rules.string.min_len": "1" }, "x-f5xc-example": "eth0", "x-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.string.max_len": "64", "ves.io.schema.rules.string.min_len": "1" }, "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "minLength": 1, "maxLength": 64, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "untagged": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "vlan_id" ] }, "vlan_id": { "type": "integer", "description": "Exclusive with [untagged]\nConfigure a VLAN tagged interface.", "title": "VLAN Id", "format": "int64", "x-displayname": "VLAN ID", "x-ves-example": "10", "x-ves-validation-rules": { "ves.io.schema.rules.uint32.gte": "1", "ves.io.schema.rules.uint32.lte": "4095" }, "x-f5xc-example": "10", "x-validation-rules": { "ves.io.schema.rules.uint32.gte": "1", "ves.io.schema.rules.uint32.lte": "4095" }, "x-f5xc-description-short": "Exclusive with [untagged] Configure a VLAN tagged interface.", "minimum": 1, "maximum": 4095, "x-f5xc-constraints": { "constraintType": "number", "category": "discovery", "minimum": 1, "maximum": 4095, "multipleOf": 1, "metadata": { "source": "api-probed", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" }, "deterministic": true }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-field-mutability": "read-only", "x-f5xc-conflicts-with": [ "untagged" ] } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for network_interfaceLayer2SriovInterfaceType", "required_fields": [ "device" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for network_interfaceLayer2SriovInterfaceType\nmetadata:\n name: example\n namespace: default\nspec:\n device: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"device\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Network interface configuration is platform-level" }, "classification": { "category": "networking", "multi_tenant_pattern": "none" } } }, "network_interfaceLayer2VlanInterfaceType": { "type": "object", "description": "Layer2 VLAN Interface Configuration.", "title": "Layer2 VLAN interface", "x-displayname": "Layer2 VLAN Interface.", "x-ves-proto-message": "ves.io.schema.network_interface.Layer2VlanInterfaceType", "properties": { "device": { "type": "string", "description": "Physical ethernet interface.", "title": "Device", "minLength": 1, "maxLength": 64, "x-displayname": "Ethernet Device.", "x-ves-example": "Eth0", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.string.max_len": "64", "ves.io.schema.rules.string.min_len": "1" }, "x-f5xc-example": "eth0", "x-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.string.max_len": "64", "ves.io.schema.rules.string.min_len": "1" }, "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "minLength": 1, "maxLength": 64, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "vlan_id": { "type": "integer", "description": "VLAN ID", "title": "VLAN Id", "format": "int64", "x-displayname": "VLAN ID", "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": "4095" }, "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": "4095" }, "minimum": 1, "maximum": 4095, "x-f5xc-constraints": { "constraintType": "number", "category": "discovery", "minimum": 1, "maximum": 4095, "multipleOf": 1, "metadata": { "source": "api-probed", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" }, "deterministic": true }, "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 network_interfaceLayer2VlanInterfaceType", "required_fields": [ "device", "vlan_id" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for network_interfaceLayer2VlanInterfaceType\nmetadata:\n name: example\n namespace: default\nspec:\n device: value\n vlan_id: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"device\": \"value\",\n \"vlan_id\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Network interface configuration is platform-level" }, "classification": { "category": "networking", "multi_tenant_pattern": "none" } } }, "network_interfaceLegacyInterfaceType": { "type": "object", "description": "Legacy Interface Configuration.", "title": "Legacy Configuration", "x-displayname": "Legacy Configuration.", "x-ves-oneof-field-monitoring_choice": "[\"monitor\",\"monitor_disabled\"]", "x-ves-proto-message": "ves.io.schema.network_interface.LegacyInterfaceType", "properties": { "DHCP_server": { "allOf": [ { "$ref": "#/components/schemas/network_interfaceNetworkInterfaceDHCPServer" } ], "x-f5xc-description-short": "Configuration parameter for DHCP server.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "DNS_server": { "allOf": [ { "$ref": "#/components/schemas/network_interfaceNetworkInterfaceDNS" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "address_allocator": { "type": "array", "description": "Reference to an address allocator for the network interface. When set, the allocator is used to\nallocate a subnet for the interface and an address from the subnet is set on the interface.", "title": "Address Allocator", "maxItems": 1, "items": { "$ref": "#/components/schemas/ioschemaObjectRefType" }, "x-displayname": "Address Allocator.", "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 an address allocator for the network interface.", "x-f5xc-description-medium": "Reference to an address allocator for the network interface. When set, the allocator is used to allocate a subnet for the interface and an address from the subnet is set on the interface.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 1, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "default_gateway": { "allOf": [ { "$ref": "#/components/schemas/network_interfaceNetworkInterfaceDFGW" } ], "x-f5xc-description-short": "Configuration parameter for default gateway.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "device_name": { "type": "string", "description": "Name of the physical network interface device which this network interface represents.", "title": "Device Name", "x-displayname": "Device 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" }, "x-f5xc-description-short": "Name of the physical network interface device which this network interface represents.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "dhcp_address": { "allOf": [ { "$ref": "#/components/schemas/network_interfaceNetworkInterfaceDHCP" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "monitor": { "allOf": [ { "$ref": "#/components/schemas/network_interfaceLinkQualityMonitorConfig" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "monitor_disabled" ] }, "monitor_disabled": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "monitor" ] }, "mtu": { "type": "integer", "description": "Maximum Transfer Unit (Max packet length) of the interface\nWhen configured, MTU must be between 512 and 16384.", "title": "Mtu", "format": "int64", "x-displayname": "MTU", "x-ves-example": "0", "x-ves-validation-rules": { "ves.io.schema.rules.uint32.ranges": "0,512-16384" }, "x-f5xc-example": "0", "x-validation-rules": { "ves.io.schema.rules.uint32.ranges": "0,512-16384" }, "x-f5xc-description-short": "Maximum Transfer Unit (Max packet length) of the interface When configured, MTU must be between 512 and 16384.", "x-f5xc-description-medium": "Maximum Transfer Unit (Max packet length) of the interface When configured, MTU must be between 512 and 16384.", "x-f5xc-constraints": { "constraintType": "number", "category": "discovery", "maximum": 16384, "deterministic": true, "metadata": { "source": "api-probed", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "priority": { "type": "integer", "description": "Priority of the network interface when multiple network interfaces are present in the fleet object\nGreater the value, higher the priority.", "title": "Priority", "format": "int64", "x-displayname": "Priority", "x-ves-example": "42", "x-ves-validation-rules": { "ves.io.schema.rules.uint32.gte": "0", "ves.io.schema.rules.uint32.lte": "255" }, "x-f5xc-example": "42", "x-validation-rules": { "ves.io.schema.rules.uint32.gte": "0", "ves.io.schema.rules.uint32.lte": "255" }, "x-f5xc-description-short": "Priority of the network interface when multiple network interfaces are present in the fleet object Greater the value, higher the priority.", "x-f5xc-description-medium": "Priority of the network interface when multiple network interfaces are present in the fleet object Greater the value, higher the priority.", "x-f5xc-constraints": { "constraintType": "number", "category": "discovery", "minimum": 0, "maximum": 255, "multipleOf": 1, "metadata": { "source": "api-probed", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" }, "deterministic": true }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "static_addresses": { "type": "array", "description": "If DHCP server is enabled, configures the subnet to be used for IP allocation.", "title": "Static IP", "items": { "$ref": "#/components/schemas/schemaIpv4SubnetType" }, "x-displayname": "Static IP", "x-f5xc-description-short": "If DHCP server is enabled, configures the subnet to be used for IP allocation.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "tunnel": { "allOf": [ { "$ref": "#/components/schemas/network_interfaceNetworkInterfaceTunnel" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "type": { "allOf": [ { "$ref": "#/components/schemas/network_interfaceNetworkInterfaceType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "virtual_network": { "type": "array", "description": "Virtual-network for the interface\nThis is optional and can contain at most one entry.", "title": "Virtual Network", "maxItems": 1, "items": { "$ref": "#/components/schemas/ioschemaObjectRefType" }, "x-displayname": "Virtual Network.", "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": "Virtual-network for the interface This is optional and can contain at most one entry.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 1, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "vlan_tag": { "type": "integer", "description": "VLAN tag of the interface, valid only if VLAN tagging is enabled\nwhen vlan_tagging is enabled, value must be between 1 - 4094.", "title": "Vlan Tag", "format": "int64", "x-displayname": "VLAN Tag", "x-ves-example": "0", "x-ves-validation-rules": { "ves.io.schema.rules.uint32.gte": "0", "ves.io.schema.rules.uint32.lte": "4094" }, "x-f5xc-example": "0", "x-validation-rules": { "ves.io.schema.rules.uint32.gte": "0", "ves.io.schema.rules.uint32.lte": "4094" }, "x-f5xc-description-short": "VLAN tag of the interface, valid only if VLAN tagging is enabled when vlan_tagging is enabled, value must be between 1 - 4094.", "x-f5xc-description-medium": "VLAN tag of the interface, valid only if VLAN tagging is enabled when vlan_tagging is enabled, value must be between 1 - 4094.", "x-f5xc-constraints": { "constraintType": "number", "category": "discovery", "minimum": 0, "maximum": 4094, "deterministic": true, "metadata": { "source": "api-probed", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "vlan_tagging": { "allOf": [ { "$ref": "#/components/schemas/network_interfaceNetworkInterfaceVLANTagging" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for network_interfaceLegacyInterfaceType", "required_fields": [ "device_name" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for network_interfaceLegacyInterfaceType\nmetadata:\n name: example\n namespace: default\nspec:\n device_name: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"device_name\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Network interface configuration is platform-level" }, "classification": { "category": "networking", "multi_tenant_pattern": "none" } } }, "network_interfaceLinkQualityMonitorConfig": { "type": "object", "description": "Link Quality Monitoring configuration for a network interface.", "title": "Link Quality Monitoring Configuration", "x-displayname": "Link Quality Monitoring Configuration.", "x-ves-proto-message": "ves.io.schema.network_interface.LinkQualityMonitorConfig", "x-f5xc-description-short": "Link Quality Monitoring configuration for a network interface.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for network_interfaceLinkQualityMonitorConfig", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for network_interfaceLinkQualityMonitorConfig\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Network interface configuration is platform-level" }, "classification": { "category": "networking", "multi_tenant_pattern": "none" } } }, "network_interfaceListResponse": { "type": "object", "description": "This is the output message of 'List' RPC.", "title": "ListResponse is the collection of network_interface", "x-displayname": "List Response.", "x-ves-proto-message": "ves.io.schema.network_interface.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/network_interfaceListResponseItem" }, "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for network_interfaceListResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for network_interfaceListResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Network interface configuration is platform-level" }, "classification": { "category": "networking", "multi_tenant_pattern": "none" } } }, "network_interfaceListResponseItem": { "type": "object", "description": "By default a summary of network_interface 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 network_interface", "x-displayname": "List Item", "x-ves-proto-message": "ves.io.schema.network_interface.ListResponseItem", "properties": { "annotations": { "type": "object", "description": "The set of annotations present on this network_interface.", "title": "annotations", "x-displayname": "Annotations.", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "The set of annotations present on this network_interface.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "description": { "type": "string", "description": "The description set for this network_interface.", "title": "description", "x-displayname": "Description.", "x-f5xc-description-short": "The description set for this network_interface.", "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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "disabled": { "type": "boolean", "description": "A value of true indicates network_interface is administratively disabled.", "title": "disabled", "format": "boolean", "x-displayname": "Disabled", "x-f5xc-example": "True", "x-f5xc-description-short": "Value of true indicates network_interface is administratively disabled.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "get_spec": { "allOf": [ { "$ref": "#/components/schemas/network_interfaceGetSpecType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "labels": { "type": "object", "description": "The set of labels present on this network_interface.", "title": "labels", "x-displayname": "Labels", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "The set of labels present on this network_interface.", "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 network_interface.", "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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/network_interfaceStatusObject" }, "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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "uid": { "type": "string", "description": "The unique uid of this network_interface.", "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 network_interface.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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-08-20T09:12:47+00:00" } }, "x-f5xc-description-short": "By default a summary of network_interface 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 network_interface 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 network_interfaceListResponseItem", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for network_interfaceListResponseItem\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Network interface configuration is platform-level" }, "classification": { "category": "networking", "multi_tenant_pattern": "none" } } }, "network_interfaceNetworkInterfaceDFGW": { "type": "object", "description": "Controls how the Default Gateway of the Network interface is derived.", "title": "Network Interface Default Gateway", "x-displayname": "Default Gateway.", "x-ves-proto-message": "ves.io.schema.network_interface.NetworkInterfaceDFGW", "properties": { "default_gateway_address": { "allOf": [ { "$ref": "#/components/schemas/schemaIpv4AddressType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "default_gateway_mode": { "allOf": [ { "$ref": "#/components/schemas/network_interfaceNetworkInterfaceGatewayMode" } ], "x-f5xc-description-short": "Configuration parameter for default gateway mode.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Controls how the Default Gateway of the Network interface is derived.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for network_interfaceNetworkInterfaceDFGW", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for network_interfaceNetworkInterfaceDFGW\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Network interface configuration is platform-level" }, "classification": { "category": "networking", "multi_tenant_pattern": "none" } } }, "network_interfaceNetworkInterfaceDHCP": { "type": "string", "description": "Controls whether or not DHCP client is enabled on the interface\n\nDHCP client is disabled\nDHCP client is enabled.", "title": "Network Interface DHCP Client", "enum": [ "NETWORK_INTERFACE_DHCP_DISABLE", "NETWORK_INTERFACE_DHCP_ENABLE" ], "default": "NETWORK_INTERFACE_DHCP_DISABLE", "x-displayname": "DHCP Client.", "x-ves-proto-enum": "ves.io.schema.network_interface.NetworkInterfaceDHCP", "x-f5xc-description-short": "Controls whether or not DHCP client is enabled on the interface DHCP client is disabled DHCP client is enabled.", "x-f5xc-description-medium": "Controls whether or not DHCP client is enabled on the interface DHCP client is disabled DHCP client is enabled.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for network_interfaceNetworkInterfaceDHCP", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for network_interfaceNetworkInterfaceDHCP\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Network interface configuration is platform-level" }, "classification": { "category": "networking", "multi_tenant_pattern": "none" } } }, "network_interfaceNetworkInterfaceDHCPServer": { "type": "string", "description": "Controls whether or not DHCP server runs on the interface\n\nDHCP server is disabled\nDHCP server is enabled\nEnhanced DHCP server is enabled.", "title": "Network Interface DHCP Server", "enum": [ "NETWORK_INTERFACE_DHCP_SERVER_DISABLE", "NETWORK_INTERFACE_DHCP_SERVER_ENABLE", "NETWORK_INTERFACE_ENHANCED_DHCP_SERVER_ENABLE" ], "default": "NETWORK_INTERFACE_DHCP_SERVER_DISABLE", "x-displayname": "DHCP Server.", "x-ves-proto-enum": "ves.io.schema.network_interface.NetworkInterfaceDHCPServer", "x-f5xc-description-short": "Controls whether or not DHCP server runs on the interface DHCP server is disabled DHCP server is enabled Enhanced DHCP server is enabled.", "x-f5xc-description-medium": "Controls whether or not DHCP server runs on the interface DHCP server is disabled DHCP server is enabled Enhanced DHCP server is enabled.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for network_interfaceNetworkInterfaceDHCPServer", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for network_interfaceNetworkInterfaceDHCPServer\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Network interface configuration is platform-level" }, "classification": { "category": "networking", "multi_tenant_pattern": "none" } } }, "network_interfaceNetworkInterfaceDNS": { "type": "object", "description": "Controls how the DNS Server of the Network interface is derived.", "title": "Network Interface DNS server", "x-displayname": "DNS Server.", "x-ves-proto-message": "ves.io.schema.network_interface.NetworkInterfaceDNS", "properties": { "dns_mode": { "allOf": [ { "$ref": "#/components/schemas/network_interfaceNetworkInterfaceDNSMode" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "dns_server": { "type": "array", "description": "Address of DNS server when mode is \"use-configured\"", "title": "DNS Server", "items": { "$ref": "#/components/schemas/schemaIpv4AddressType" }, "x-displayname": "DNS Server.", "x-f5xc-description-short": "Address of DNS server when mode is \"use-configured\".", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Controls how the DNS Server of the Network interface is derived.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for network_interfaceNetworkInterfaceDNS", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for network_interfaceNetworkInterfaceDNS\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Network interface configuration is platform-level" }, "classification": { "category": "networking", "multi_tenant_pattern": "none" } } }, "network_interfaceNetworkInterfaceDNSMode": { "type": "string", "description": "Controls the mode of obtaining DNS address for the interface\n\nDNS is disabled\nDNS is allocated by the system\nUse the specified DNS.", "title": "Network Interface DNS Mode", "enum": [ "NETWORK_INTERFACE_DNS_DISABLE", "NETWORK_INTERFACE_DNS_AUTO_ALLOCATE", "NETWORK_INTERFACE_DNS_USE_CONFIGURED" ], "default": "NETWORK_INTERFACE_DNS_DISABLE", "x-displayname": "DNS Mode", "x-ves-proto-enum": "ves.io.schema.network_interface.NetworkInterfaceDNSMode", "x-f5xc-description-short": "Controls the mode of obtaining DNS address for the interface DNS is disabled DNS is allocated by the system Use the specified DNS.", "x-f5xc-description-medium": "Controls the mode of obtaining DNS address for the interface DNS is disabled DNS is allocated by the system Use the specified DNS.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for network_interfaceNetworkInterfaceDNSMode", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for network_interfaceNetworkInterfaceDNSMode\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Network interface configuration is platform-level" }, "classification": { "category": "networking", "multi_tenant_pattern": "none" } } }, "network_interfaceNetworkInterfaceGatewayMode": { "type": "string", "description": "Controls the mode of obtaining gateway address for the interface\n\nGateway is disabled\nGateway is allocated by the system\nUse the specified gateway.", "title": "Network Interface Gateway Mode", "enum": [ "NETWORK_INTERFACE_GATEWAY_DISABLE", "NETWORK_INTERFACE_GATEWAY_AUTO_ALLOCATE", "NETWORK_INTERFACE_GATEWAY_USE_CONFIGURED" ], "default": "NETWORK_INTERFACE_GATEWAY_DISABLE", "x-displayname": "Gateway Mode.", "x-ves-proto-enum": "ves.io.schema.network_interface.NetworkInterfaceGatewayMode", "x-f5xc-description-short": "Controls the mode of obtaining gateway address for the interface Gateway is disabled Gateway is allocated by the system Use the specified gateway.", "x-f5xc-description-medium": "Controls the mode of obtaining gateway address for the interface Gateway is disabled Gateway is allocated by the system Use the specified gateway.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for network_interfaceNetworkInterfaceGatewayMode", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for network_interfaceNetworkInterfaceGatewayMode\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Network interface configuration is platform-level" }, "classification": { "category": "networking", "multi_tenant_pattern": "none" } } }, "network_interfaceNetworkInterfaceStatus": { "type": "object", "description": "Current Status of the Network interface.", "title": "Network Interface Status", "x-displayname": "Status", "x-ves-proto-message": "ves.io.schema.network_interface.NetworkInterfaceStatus", "properties": { "up_down": { "allOf": [ { "$ref": "#/components/schemas/network_interfaceNetworkInterfaceUpDown" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Current Status of the Network interface.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for network_interfaceNetworkInterfaceStatus", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for network_interfaceNetworkInterfaceStatus\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Network interface configuration is platform-level" }, "classification": { "category": "networking", "multi_tenant_pattern": "none" } } }, "network_interfaceNetworkInterfaceTunnel": { "type": "object", "description": "Tunnel attached to this interface, enables encapsulation on interface.", "title": "Network Interface Tunnel", "x-displayname": "Tunnel", "x-ves-proto-message": "ves.io.schema.network_interface.NetworkInterfaceTunnel", "properties": { "tunnel": { "type": "array", "description": "Tunnel which is attached to this interface.", "title": "Tunnel", "maxItems": 1, "items": { "$ref": "#/components/schemas/ioschemaObjectRefType" }, "x-displayname": "Tunnel", "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": "Tunnel which is attached to this interface.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 1, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Tunnel attached to this interface, enables encapsulation on interface.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for network_interfaceNetworkInterfaceTunnel", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for network_interfaceNetworkInterfaceTunnel\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Network interface configuration is platform-level" }, "classification": { "category": "networking", "multi_tenant_pattern": "none" } } }, "network_interfaceNetworkInterfaceType": { "type": "string", "description": "Identifies the type of the interface.\n\nNetwork interface is an Ethernet interface\nNetwork interface is a VLAN interface\nNetwork interface is a bond interface running LACP\nNetwork interface is a tunnel interface\nNetwork interface is a loopback device\nNetwork interface is a layer2 interface.", "title": "Network Interface Type", "enum": [ "NETWORK_INTERFACE_ETHERNET", "NETWORK_INTERFACE_VLAN_INTERFACE", "NETWORK_INTERFACE_LACP_INTERFACE", "NETWORK_INTERFACE_TUNNEL_INTERFACE", "NETWORK_INTERFACE_LOOPBACK_INTERFACE", "NETWORK_INTERFACE_LAYER2_INTERFACE" ], "default": "NETWORK_INTERFACE_ETHERNET", "x-displayname": "Network Interface Type.", "x-ves-proto-enum": "ves.io.schema.network_interface.NetworkInterfaceType", "x-f5xc-description-medium": "Identifies the type of the interface. Network interface is an Ethernet interface Network interface is a VLAN interface Network interface is a bond interface running LACP Network interface is a tunnel interface Network interface is a loopback device Network interface is a layer2 interface.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for network_interfaceNetworkInterfaceType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for network_interfaceNetworkInterfaceType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Network interface configuration is platform-level" }, "classification": { "category": "networking", "multi_tenant_pattern": "none" } } }, "network_interfaceNetworkInterfaceUpDown": { "type": "string", "description": "Shows the interface link state\n\nInterface is admistratively down\nInterface is operationally down\nInterface is operationally up.", "title": "Interface State", "enum": [ "NETWORK_INTERFACE_ADMINISTRATIVELY_DOWN", "NETWORK_INTERFACE_OPERATIONALY_DOWN", "NETWORK_INTERFACE_OPERATIONALY_UP" ], "default": "NETWORK_INTERFACE_ADMINISTRATIVELY_DOWN", "x-displayname": "Interface State.", "x-ves-proto-enum": "ves.io.schema.network_interface.NetworkInterfaceUpDown", "x-f5xc-description-short": "Shows the interface link state Interface is admistratively down Interface is operationally down Interface is operationally up.", "x-f5xc-description-medium": "Shows the interface link state Interface is admistratively down Interface is operationally down Interface is operationally up.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for network_interfaceNetworkInterfaceUpDown", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for network_interfaceNetworkInterfaceUpDown\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Network interface configuration is platform-level" }, "classification": { "category": "networking", "multi_tenant_pattern": "none" } } }, "network_interfaceNetworkInterfaceVLANTagging": { "type": "string", "description": "Controls whether or not VLAN tagging is enabled on the interface\n\nVLAN tagging is disabled\nVLAN tagging is enabled.", "title": "Network Interface VLAN Tagging", "enum": [ "NETWORK_INTERFACE_VLAN_TAGGING_DISABLE", "NETWORK_INTERFACE_VLAN_TAGGING_ENABLE" ], "default": "NETWORK_INTERFACE_VLAN_TAGGING_DISABLE", "x-displayname": "VLAN Tagging.", "x-ves-proto-enum": "ves.io.schema.network_interface.NetworkInterfaceVLANTagging", "x-f5xc-description-short": "Controls whether or not VLAN tagging is enabled on the interface VLAN tagging is disabled VLAN tagging is enabled.", "x-f5xc-description-medium": "Controls whether or not VLAN tagging is enabled on the interface VLAN tagging is disabled VLAN tagging is enabled.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for network_interfaceNetworkInterfaceVLANTagging", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for network_interfaceNetworkInterfaceVLANTagging\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Network interface configuration is platform-level" }, "classification": { "category": "networking", "multi_tenant_pattern": "none" } } }, "network_interfaceReplaceRequest": { "type": "object", "description": "This is the input message of the 'Replace' RPC.", "title": "ReplaceRequest is used to replace contents of a network_interface", "x-displayname": "Replace Request.", "x-ves-proto-message": "ves.io.schema.network_interface.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/network_interfaceReplaceSpecType" } ], "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 network_interfaceReplaceRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for network_interfaceReplaceRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Network interface configuration is platform-level" }, "classification": { "category": "networking", "multi_tenant_pattern": "none" } } }, "network_interfaceReplaceResponse": { "type": "object", "x-ves-proto-message": "ves.io.schema.network_interface.ReplaceResponse", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for network_interfaceReplaceResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for network_interfaceReplaceResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Network interface configuration is platform-level" }, "classification": { "category": "networking", "multi_tenant_pattern": "none" } } }, "network_interfaceReplaceSpecType": { "type": "object", "description": "Network interface represents configuration of a network device.\nReplace network interface will replace the contents of given network interface object.", "title": "Replace network interface", "x-displayname": "Replace Network Interface.", "x-ves-oneof-field-interface_choice": "[\"dedicated_interface\",\"dedicated_management_interface\",\"ethernet_interface\",\"layer2_interface\",\"tunnel_interface\"]", "x-ves-proto-message": "ves.io.schema.network_interface.ReplaceSpecType", "properties": { "dedicated_interface": { "allOf": [ { "$ref": "#/components/schemas/network_interfaceDedicatedInterfaceType" } ], "x-f5xc-description-short": "Configuration parameter for dedicated interface.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "dedicated_management_interface", "ethernet_interface", "layer2_interface", "tunnel_interface" ] }, "dedicated_management_interface": { "allOf": [ { "$ref": "#/components/schemas/network_interfaceDedicatedManagementInterfaceType" } ], "x-f5xc-description-short": "Configuration parameter for dedicated management interface.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "dedicated_interface", "ethernet_interface", "layer2_interface", "tunnel_interface" ] }, "ethernet_interface": { "allOf": [ { "$ref": "#/components/schemas/network_interfaceEthernetInterfaceType" } ], "x-f5xc-description-short": "Configuration parameter for ethernet interface.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "dedicated_interface", "dedicated_management_interface", "layer2_interface", "tunnel_interface" ] }, "layer2_interface": { "allOf": [ { "$ref": "#/components/schemas/network_interfaceLayer2InterfaceType" } ], "x-f5xc-description-short": "Configuration parameter for layer2 interface.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "dedicated_interface", "dedicated_management_interface", "ethernet_interface", "tunnel_interface" ] }, "tunnel_interface": { "allOf": [ { "$ref": "#/components/schemas/network_interfaceTunnelInterfaceType" } ], "x-f5xc-description-short": "Configuration parameter for tunnel interface.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "dedicated_interface", "dedicated_management_interface", "ethernet_interface", "layer2_interface" ] } }, "x-f5xc-description-short": "Network interface represents configuration of a network device. Replace network interface will replace the contents of given network interface object.", "x-f5xc-description-medium": "Network interface represents configuration of a network device. Replace network interface will replace the contents of given network interface object.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for network_interfaceReplaceSpecType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for network_interfaceReplaceSpecType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Network interface configuration is platform-level" }, "classification": { "category": "networking", "multi_tenant_pattern": "none" } } }, "network_interfaceStaticIPParametersType": { "type": "object", "description": "Configure Static IP parameters.", "title": "Static IP Parameters", "x-displayname": "Static IP Parameters.", "x-ves-oneof-field-network_prefix_choice": "[\"cluster_static_ip\",\"node_static_ip\"]", "x-ves-proto-message": "ves.io.schema.network_interface.StaticIPParametersType", "properties": { "cluster_static_ip": { "allOf": [ { "$ref": "#/components/schemas/network_interfaceStaticIpParametersClusterType" } ], "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "node_static_ip" ] }, "node_static_ip": { "allOf": [ { "$ref": "#/components/schemas/network_interfaceStaticIpParametersNodeType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "cluster_static_ip" ] } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for network_interfaceStaticIPParametersType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for network_interfaceStaticIPParametersType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Network interface configuration is platform-level" }, "classification": { "category": "networking", "multi_tenant_pattern": "none" } } }, "network_interfaceStaticIpParametersClusterType": { "type": "object", "description": "Configure Static IP parameters for cluster.", "title": "Static IP Parameters", "x-displayname": "Cluster: Static IP Parameters.", "x-ves-proto-message": "ves.io.schema.network_interface.StaticIpParametersClusterType", "properties": { "interface_ip_map": { "type": "object", "description": "Map of Node to Static IP configuration value, Key:Node, Value:IP Address.", "title": "Site:Node to IP mapping", "x-displayname": "Node to IP Mapping.", "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": "128" }, "additionalProperties": { "type": "string" }, "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": "128" }, "x-f5xc-description-short": "Map of Node to Static IP configuration value, Key:Node, Value:IP Address.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Configure Static IP parameters for cluster.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for network_interfaceStaticIpParametersClusterType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for network_interfaceStaticIpParametersClusterType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Network interface configuration is platform-level" }, "classification": { "category": "networking", "multi_tenant_pattern": "none" } } }, "network_interfaceStaticIpParametersNodeType": { "type": "object", "description": "Configure Static IP parameters for a node.", "title": "Static IP Parameters", "x-displayname": "Node: Static IP Parameters.", "x-ves-proto-message": "ves.io.schema.network_interface.StaticIpParametersNodeType", "properties": { "default_gw": { "type": "string", "description": "IP address of the default gateway.", "title": "Default Gateway", "x-displayname": "Default Gateway.", "x-ves-example": "192.0.2.13.", "x-ves-validation-rules": { "ves.io.schema.rules.string.ip": "true" }, "x-f5xc-example": "192.0.2.13", "x-validation-rules": { "ves.io.schema.rules.string.ip": "true" }, "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 1024, "format": "ip", "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "ip_address": { "type": "string", "description": "IP address of the interface and prefix length.", "title": "Default Gateway", "x-displayname": "IP address/Prefix Length.", "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" }, "x-f5xc-description-short": "IP address of the interface and prefix length.", "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": "cidr", "formatDescription": "IPv4 dotted-decimal notation (e.g., 192.168.1.1)", "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" }, "deterministic": true }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } } }, "x-f5xc-description-short": "Configure Static IP parameters for a node.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for network_interfaceStaticIpParametersNodeType", "required_fields": [ "ip_address" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for network_interfaceStaticIpParametersNodeType\nmetadata:\n name: example\n namespace: default\nspec:\n ip_address: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"ip_address\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Network interface configuration is platform-level" }, "classification": { "category": "networking", "multi_tenant_pattern": "none" } } }, "network_interfaceStatusObject": { "type": "object", "description": "Most recently observed status of object.", "title": "Network Interface Status", "x-displayname": "Status Object.", "x-ves-proto-message": "ves.io.schema.network_interface.StatusObject", "properties": { "conditions": { "type": "array", "description": "Conditions reported by various components of the system.", "title": "conditions", "items": { "$ref": "#/components/schemas/schemaConditionType" }, "x-displayname": "Conditions.", "x-f5xc-description-short": "Conditions reported by various components 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 } }, "status": { "allOf": [ { "$ref": "#/components/schemas/network_interfaceNetworkInterfaceStatus" } ], "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-08-20T09:12:47+00:00" } }, "x-f5xc-description-short": "Most recently observed status of object.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for network_interfaceStatusObject", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for network_interfaceStatusObject\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Network interface configuration is platform-level" }, "classification": { "category": "networking", "multi_tenant_pattern": "none" } } }, "network_interfaceTunnelInterfaceType": { "type": "object", "description": "Tunnel Interface Configuration.", "title": "Tunnel Interface", "x-displayname": "Tunnel Interface.", "x-ves-oneof-field-network_choice": "[\"site_local_inside_network\",\"site_local_network\"]", "x-ves-oneof-field-node_choice": "[\"node\"]", "x-ves-proto-message": "ves.io.schema.network_interface.TunnelInterfaceType", "properties": { "mtu": { "type": "integer", "description": "Maximum packet size (Maximum Transfer Unit) of the interface\nWhen configured, MTU must be between 512 and 16384.", "title": "Maximum Packet Size (MTU)", "format": "int64", "x-displayname": "Maximum Packet Size (MTU)", "x-ves-example": "1450", "x-ves-validation-rules": { "ves.io.schema.rules.uint32.ranges": "0,512-16384" }, "x-f5xc-example": "1450", "x-validation-rules": { "ves.io.schema.rules.uint32.ranges": "0,512-16384" }, "x-f5xc-description-short": "Maximum packet size (Maximum Transfer Unit) of the interface When configured, MTU must be between 512 and 16384.", "x-f5xc-description-medium": "Maximum packet size (Maximum Transfer Unit) of the interface When configured, MTU must be between 512 and 16384.", "x-f5xc-constraints": { "constraintType": "number", "category": "discovery", "maximum": 16384, "deterministic": true, "metadata": { "source": "api-probed", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "node": { "type": "string", "description": "Exclusive with []\nConfiguration will apply to a given device on the given node.", "title": "Node", "minLength": 1, "maxLength": 64, "x-displayname": "Specific Node.", "x-ves-validation-rules": { "ves.io.schema.rules.string.max_len": "64", "ves.io.schema.rules.string.min_len": "1" }, "x-validation-rules": { "ves.io.schema.rules.string.max_len": "64", "ves.io.schema.rules.string.min_len": "1" }, "x-f5xc-description-short": "Exclusive with [] Configuration will apply to a given device on the given node.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "minLength": 1, "maxLength": 64, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "priority": { "type": "integer", "description": "Priority of the network interface when multiple network interfaces are present in outside network\nGreater the value, higher the priority.", "title": "Priority", "format": "int64", "x-displayname": "Priority", "x-ves-example": "42", "x-ves-validation-rules": { "ves.io.schema.rules.uint32.gte": "0", "ves.io.schema.rules.uint32.lte": "255" }, "x-f5xc-example": "42", "x-validation-rules": { "ves.io.schema.rules.uint32.gte": "0", "ves.io.schema.rules.uint32.lte": "255" }, "x-f5xc-description-short": "Priority of the network interface when multiple network interfaces are present in outside network Greater the value, higher the priority.", "x-f5xc-description-medium": "Priority of the network interface when multiple network interfaces are present in outside network Greater the value, higher the priority.", "x-f5xc-constraints": { "constraintType": "number", "category": "discovery", "minimum": 0, "maximum": 255, "multipleOf": 1, "metadata": { "source": "api-probed", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" }, "deterministic": true }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "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" ] }, "static_ip": { "allOf": [ { "$ref": "#/components/schemas/network_interfaceStaticIPParametersType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "tunnel": { "allOf": [ { "$ref": "#/components/schemas/schemaviewsObjectRefType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-references": [ { "resource_kind": "tunnel", "field_path": "tunnel", "gated_by": null, "required": false, "cardinality": "single" } ] } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for network_interfaceTunnelInterfaceType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for network_interfaceTunnelInterfaceType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Network interface configuration is platform-level" }, "classification": { "category": "networking", "multi_tenant_pattern": "none" } } }, "ioschemaStatusType": { "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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 ioschemaStatusType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for ioschemaStatusType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "registrationApprovalReq": { "type": "object", "description": "Request for admission approval.", "title": "Approval request", "x-displayname": "Approval", "x-ves-proto-message": "ves.io.schema.registration.ApprovalReq", "properties": { "annotations": { "type": "object", "description": "Optional.\nAnnotations to set (add if missing, overwrite if exists)", "title": "Annotations", "x-displayname": "Annotations.", "x-ves-example": "Key:value", "x-f5xc-example": "key:value", "x-f5xc-description-short": "Optional. Annotations to set (add if missing, overwrite if exists)", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "backup_connected_region": { "type": "string", "description": "Optional.\nBackup RE connection for CE(s)", "title": "Connected Region", "x-displayname": "Backup Connected Region.", "x-ves-example": "Value", "x-f5xc-example": "value", "x-f5xc-description-short": "Optional. Backup RE connection for CE(s)", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "connected_region": { "type": "string", "description": "Optional.\nClosest REs to which to connect in selected region. If there is more than one RE with the label\nthen select 2 of them. Otherwise default \"geo-IP\" database is consulted to find closest RE(s) to\npublic IP with which node registration request was received.", "title": "Connected Region", "x-displayname": "Connected Region.", "x-ves-example": "Value", "x-f5xc-example": "value", "x-f5xc-description-short": "Optional. Closest REs to which to connect in selected region.", "x-f5xc-description-medium": "Optional. Closest REs to which to connect in selected region. If there is more than one RE with the label then select 2 of them. Otherwise default \"geo-IP\" database is consulted to find closest RE(s) to public IP with which node registration request was received.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "labels": { "type": "object", "description": "Optional.\nLabels to set (add if missing, overwrite if exists)", "title": "Labels", "x-displayname": "Labels", "x-ves-example": "Key:value", "x-f5xc-example": "key:value", "x-f5xc-description-short": "Optional. Labels to set (add if missing, overwrite if exists)", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "name": { "type": "string", "description": "Registration name (= \"r-\" + uid) to approve. Registration name is taken from listing pending registrations.", "title": "Name", "x-displayname": "Name", "x-ves-example": "R-00000000-0000-4000-8000-946fdf7ca6a3.", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true" }, "x-f5xc-example": "r-00000000-0000-4000-8000-946fdf7ca6a3", "x-validation-rules": { "ves.io.schema.rules.message.required": "true" }, "x-f5xc-description-short": "Registration name (= \"r-\" + uid) to approve. Registration name is taken from listing pending registrations.", "x-f5xc-description-medium": "Registration name (= \"r-\" + uid) to approve. Registration name is taken from listing pending registrations.", "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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" }, "passport": { "allOf": [ { "$ref": "#/components/schemas/registrationPassport" } ], "x-ves-required": "true", "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "preferred_active_re": { "type": "string", "description": "Optional.\nPreferred Active RE connection for CE(s) using private VN.", "title": "Preferred Active RE", "x-displayname": "Preferred Active RE.", "x-ves-example": "Value", "x-f5xc-example": "value", "x-f5xc-description-short": "Optional. Preferred Active RE connection for CE(s) using private VN.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "tunnel_type": { "allOf": [ { "$ref": "#/components/schemas/schemaSiteToSiteTunnelType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "state": { "$ref": "#/components/schemas/registrationObjectState" } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for registrationApprovalReq", "required_fields": [ "name", "passport" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for registrationApprovalReq\nmetadata:\n name: example\n namespace: default\nspec:\n name: value\n passport: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"name\": \"value\",\n \"passport\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-action": "approve", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Site registration is platform-level" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "registrationBondConfiguration": { "type": "object", "description": "Bond device configuration for VPM registration.", "title": "Bond Configuration", "x-displayname": "Bond Configuration.", "x-ves-proto-message": "ves.io.schema.registration.BondConfiguration", "properties": { "interfaces": { "type": "array", "description": "Configuration parameter for interfaces", "title": "Member Interfaces", "minItems": 1, "maxItems": 8, "items": { "type": "string", "maxLength": 64 }, "x-displayname": "Member Interfaces.", "x-ves-example": "Eth0", "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.max_items": "8", "ves.io.schema.rules.repeated.min_items": "1", "ves.io.schema.rules.repeated.unique": "true" }, "x-f5xc-example": "eth0", "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.max_items": "8", "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": 8, "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "mode": { "allOf": [ { "$ref": "#/components/schemas/registrationBondMode" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "name": { "type": "string", "description": "Human-readable name for the resource", "title": "Bond Name", "maxLength": 64, "x-displayname": "Bond Name", "x-ves-example": "Bond0", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.string.max_len": "64" }, "x-f5xc-example": "bond0", "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-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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" } }, "x-f5xc-description-short": "Bond device configuration for VPM registration.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for registrationBondConfiguration", "required_fields": [ "interfaces", "name" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for registrationBondConfiguration\nmetadata:\n name: example\n namespace: default\nspec:\n interfaces: value\n name: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"interfaces\": \"value\",\n \"name\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Site registration is platform-level" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "registrationBondMode": { "type": "string", "description": "Bonding mode for bond device configuration\n\nBond mode is not specified\nActive-backup bond mode (one interface active, others as backup)\nIEEE 802.3ad Dynamic link aggregation (LACP)", "title": "Bond Mode", "enum": [ "BOND_MODE_UNSPECIFIED", "ACTIVE_BACKUP", "LACP_802_3AD" ], "default": "BOND_MODE_UNSPECIFIED", "x-displayname": "Bond Mode", "x-ves-proto-enum": "ves.io.schema.registration.BondMode", "x-f5xc-description-short": "Bonding mode for bond device configuration Bond mode is not specified Active-backup bond mode (one interface active, others as backup) IEEE...", "x-f5xc-description-medium": "Bonding mode for bond device configuration Bond mode is not specified Active-backup bond mode (one interface active, others as backup) IEEE 802.3ad Dynamic link aggregation (LACP).", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for registrationBondMode", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for registrationBondMode\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Site registration is platform-level" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "registrationConfigReq": { "type": "object", "description": "Request to GET configuration.", "title": "Configuration request", "x-displayname": "Configuration Request.", "x-ves-proto-message": "ves.io.schema.registration.ConfigReq", "properties": { "name": { "type": "string", "description": "Registration name.", "title": "Name", "x-displayname": "Name", "x-ves-example": "R-00000000-0000-4000-8000-946fdf7ca6a3.", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true" }, "x-f5xc-example": "r-00000000-0000-4000-8000-946fdf7ca6a3", "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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" }, "namespace": { "type": "string", "description": "Registration namespace.", "title": "Namespace", "x-displayname": "Namespace", "x-ves-example": "System", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true" }, "x-f5xc-example": "system", "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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" }, "token": { "type": "string", "description": "Token - verify node identity.", "title": "Token", "x-displayname": "Token", "x-ves-example": "00000000-0000-4000-8000-ce47f538482c.", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true" }, "x-f5xc-example": "00000000-0000-4000-8000-ce47f538482c", "x-validation-rules": { "ves.io.schema.rules.message.required": "true" }, "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "security", "maxLength": 1024, "minLength": 20, "metadata": { "source": "inferred", "confidence": 0.75, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for registrationConfigReq", "required_fields": [ "name", "namespace", "token" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for registrationConfigReq\nmetadata:\n name: example\n namespace: default\nspec:\n name: value\n namespace: value\n token: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"name\": \"value\",\n \"namespace\": \"value\",\n \"token\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Site registration is platform-level" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "registrationConfigResp": { "type": "object", "description": "Response for configuration request. This response is consumed by node.", "title": "Configuration", "x-displayname": "Configuration.", "x-ves-proto-message": "ves.io.schema.registration.ConfigResp", "properties": { "hash": { "type": "string", "description": "Hash of workload map which is used to verify consistency\nand check changes.", "title": "Hash", "x-displayname": "Hash", "x-f5xc-description-short": "Hash of workload map which is used to verify consistency and check changes.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "workload": { "type": "object", "description": "Configuration for applications and infrastructure.", "title": "Workload", "x-displayname": "Workload", "x-f5xc-description-short": "Configuration for applications and infrastructure.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Response for configuration request. This response is consumed by node.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for registrationConfigResp", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for registrationConfigResp\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Site registration is platform-level" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "registrationCreateRequest": { "type": "object", "description": "This is the input message of the 'Create' RPC.", "title": "CreateRequest is used to create an instance of registration", "x-displayname": "Create Request.", "x-ves-proto-message": "ves.io.schema.registration.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/schemaregistrationCreateSpecType" } ], "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 registrationCreateRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for registrationCreateRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Site registration is platform-level" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "registrationCreateResponse": { "type": "object", "x-ves-proto-message": "ves.io.schema.registration.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/schemaregistrationGetSpecType" } ], "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_registration" } ], "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 registrationCreateResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for registrationCreateResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Site registration is platform-level" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "registrationGetImageDownloadUrlReq": { "type": "object", "description": "Request to GET image download URL.", "title": "Get Image Download Url request", "x-displayname": "GET Image Download URL Request.", "x-ves-proto-message": "ves.io.schema.registration.GetImageDownloadUrlReq", "properties": { "provider": { "type": "string", "description": "Provider for that image.", "title": "Provider", "x-displayname": "Provider", "x-ves-example": "Kvm", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true" }, "x-f5xc-recommended-value": "KVM", "x-f5xc-description-medium": "Deployment platform identifier for the requested Customer Edge image.", "x-f5xc-example": "kvm", "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false }, "minLength": 3, "x-reconciled-from-discovery": true, "x-reconciled-at": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for registrationGetImageDownloadUrlReq", "required_fields": [ "provider" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for registrationGetImageDownloadUrlReq\nmetadata:\n name: example\n namespace: default\nspec:\n provider: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"provider\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Site registration is platform-level" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "registrationGetImageDownloadUrlResp": { "type": "object", "description": "Response to GET image download URL.", "title": "Get Image Download Url response", "x-displayname": "GET Image Download URL Response.", "x-ves-proto-message": "ves.io.schema.registration.GetImageDownloadUrlResp", "properties": { "image_download_url": { "type": "string", "description": "URL of image download.", "title": "Image Download Url", "x-displayname": "Image Download URL.", "x-f5xc-sensitive": true, "x-f5xc-description-medium": "Signed URL for the requested Customer Edge image.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "image_md5_download_url": { "type": "string", "description": "URL of image md5 download.", "title": "Image Md5 Download Url", "x-displayname": "Image Md5 Download URL.", "x-f5xc-sensitive": true, "x-f5xc-description-medium": "Signed URL for the requested Customer Edge image MD5 checksum.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for registrationGetImageDownloadUrlResp", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for registrationGetImageDownloadUrlResp\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-terraform-resource": "xcsh_site_image", "x-f5xc-category": "Sites", "x-f5xc-description-medium": "Signed Customer Edge image and checksum URLs for a requested deployment platform.", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Site registration is platform-level" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "registrationGetRegistrationsBySiteTokenReq": { "type": "object", "description": "Request to GET registration uuids by site token.", "title": "Get registration uuids by site token request", "x-displayname": "GET Registration UUIDs by Site Token Request.", "x-ves-proto-message": "ves.io.schema.registration.GetRegistrationsBySiteTokenReq", "properties": { "site_token": { "type": "string", "description": "Site token to query on.", "title": "Site token", "x-displayname": "Site Token.", "x-ves-example": "00000000-0000-4000-8000-f4a29bc68178.", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true" }, "x-f5xc-example": "00000000-0000-4000-8000-f4a29bc68178", "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } } }, "x-f5xc-description-short": "Request to GET registration uuids by site token.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for registrationGetRegistrationsBySiteTokenReq", "required_fields": [ "site_token" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for registrationGetRegistrationsBySiteTokenReq\nmetadata:\n name: example\n namespace: default\nspec:\n site_token: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"site_token\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Site registration is platform-level" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "registrationGetRegistrationsBySiteTokenResp": { "type": "object", "description": "Response for querying registration uuids by site token.", "title": "Get registration uuids by site token response", "x-displayname": "GET Registration UUIDs by Site Token Response.", "x-ves-proto-message": "ves.io.schema.registration.GetRegistrationsBySiteTokenResp", "properties": { "registration_uuids": { "type": "array", "description": "Registration UUIDs that uses the site token.", "title": "List of Registration UUIDs", "items": { "type": "string" }, "x-displayname": "Registration UUIDs.", "x-f5xc-description-short": "Registration UUIDs that uses the site token.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Response for querying registration uuids by site token.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for registrationGetRegistrationsBySiteTokenResp", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for registrationGetRegistrationsBySiteTokenResp\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Site registration is platform-level" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "registrationGetResponse": { "type": "object", "description": "This is the output message of the 'GET' RPC.", "title": "GetResponse is the shape of a read registration", "x-displayname": "GET Response.", "x-ves-proto-message": "ves.io.schema.registration.GetResponse", "properties": { "create_form": { "allOf": [ { "$ref": "#/components/schemas/registrationCreateRequest" } ], "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 } }, "object": { "allOf": [ { "$ref": "#/components/schemas/registrationObject" } ], "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/registrationReplaceRequest" } ], "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/schemaregistrationGetSpecType" } ], "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_registration" } ], "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 registrationGetResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for registrationGetResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Site registration is platform-level" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "registrationInfra": { "type": "object", "description": "InfraMetadata stores information about instance infrastructure.", "title": "Infrastructure information", "x-displayname": "Infra Information.", "x-ves-proto-message": "ves.io.schema.registration.Infra", "properties": { "availability_zone": { "type": "string", "description": "An Availability Zone is a high-availability offering that protects your applications and data from datacenter failures.", "title": "availability_zone", "x-displayname": "Availability Zone.", "x-ves-example": "Value", "x-f5xc-example": "value", "x-f5xc-description-short": "Availability Zone is a high-availability offering that protects your applications and data from datacenter failures.", "x-f5xc-description-medium": "Availability Zone is a high-availability offering that protects your applications and data from datacenter failures.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "bond_config": { "allOf": [ { "$ref": "#/components/schemas/registrationBondConfiguration" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "certified_hw": { "type": "string", "description": "Certified HW name used to map with F5XC certified_hardware definition.", "title": "Certified hardware name", "x-displayname": "Certified Hardware.", "x-ves-example": "Value", "x-f5xc-example": "value", "x-f5xc-description-short": "Certified HW name used to map with F5XC certified_hardware definition.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "domain": { "type": "string", "description": "Machine domain. It's used for Kubernetes cloud provider when domain must be\ndifferent than F5 Distributed Cloud.", "title": "Instance domain", "x-displayname": "Instance Domain.", "x-ves-example": "Value", "x-f5xc-example": "value", "x-f5xc-description-short": "Machine domain. It's used for Kubernetes cloud provider when domain must be different than F5 Distributed Cloud.", "x-f5xc-description-medium": "Machine domain. It's used for Kubernetes cloud provider when domain must be different than F5 Distributed Cloud.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "hostname": { "type": "string", "description": "Must be unique in entire cluster and same as OS settings.\n'.' (dots) are not allowed in hostname.", "title": "Instance hostname", "x-displayname": "Hostname", "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" }, "x-f5xc-description-short": "Must be unique in entire cluster and same as OS settings. '.' (dots) are not allowed in hostname.", "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-08-20T09:12:47+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 }, "hw_info": { "allOf": [ { "$ref": "#/components/schemas/siteOsInfo" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "instance_id": { "type": "string", "description": "Instance ID (assigned by infrastructure provider)", "title": "Instance ID", "x-displayname": "Instance ID.", "x-ves-example": "Value", "x-f5xc-example": "value", "x-f5xc-description-short": "Instance ID (assigned by infrastructure provider).", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-field-mutability": "read-only" }, "interfaces": { "type": "object", "description": "Machine interfaces present during registration time.", "title": "Interfaces", "x-displayname": "Interfaces.", "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": "Machine interfaces present during registration time.", "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "internet_proxy": { "allOf": [ { "$ref": "#/components/schemas/registrationInternetProxy" } ], "x-f5xc-description-short": "Configuration parameter for internet proxy.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "is_slo_static": { "type": "boolean", "description": "Indicates whether the SLO is static.", "title": "Is SLO Static", "format": "boolean", "x-displayname": "Is SLO Static.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "machine_id": { "type": "string", "description": "Machine ID - generated by operating system.", "title": "Machine ID", "x-displayname": "Machine ID.", "x-ves-example": "Value", "x-f5xc-example": "value", "x-f5xc-description-short": "Machine ID - generated by operating system.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-field-mutability": "read-only" }, "provider": { "allOf": [ { "$ref": "#/components/schemas/registrationProvider" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "maxLength": 8, "minLength": 3, "x-reconciled-from-discovery": true, "x-reconciled-at": "2026-08-20T09:12:47+00:00" }, "sw_info": { "allOf": [ { "$ref": "#/components/schemas/registrationSWInfo" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "timestamp": { "type": "string", "description": "It's used to verify machine have acceptable time difference from server.", "title": "Timestamp", "format": "date-time", "x-displayname": "Current (machine) time.", "x-f5xc-example": "2025-01-15T10:30:00Z", "x-f5xc-description-short": "It's used to verify machine have acceptable time difference from server.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "temporal", "maxLength": 1024, "format": "date-time", "minLength": 20, "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d{3})?Z?$", "formatDescription": "ISO 8601 date-time (e.g., 2026-01-19T12:00:00Z)", "validation": { "standard": "ISO 8601" }, "metadata": { "source": "inferred", "confidence": 0.95, "validatedAt": "2026-08-20T09:12:47+00:00" }, "deterministic": true }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "zone": { "type": "string", "description": "Instance zone (or region), depends on provider.", "title": "Zone", "x-displayname": "Region", "x-ves-example": "Value", "x-f5xc-example": "value", "x-f5xc-description-short": "Instance zone (or region), depends on provider.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "InfraMetadata stores information about instance infrastructure.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for registrationInfra", "required_fields": [ "hostname", "interfaces" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for registrationInfra\nmetadata:\n name: example\n namespace: default\nspec:\n hostname: value\n interfaces: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"hostname\": \"value\",\n \"interfaces\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Site registration is platform-level" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "registrationInternetProxy": { "type": "object", "description": "Proxy describes OPTIONS for HTTP or HTTPS proxy configurations.", "title": "Internet Proxy configuration", "x-displayname": "Internet Proxy Configuration.", "x-ves-proto-message": "ves.io.schema.registration.InternetProxy", "properties": { "http_proxy": { "type": "string", "description": "It will be used as the proxy URL for HTTP requests and HTTPS requests unless overridden by HTTPSProxy or NoProxy.", "title": "Http Proxy", "x-displayname": "HTTP PROXY.", "x-ves-example": "HTTP://USERNAME:PASSWORD@192.0.2.215:8080/.", "x-f5xc-example": "http://USERNAME:PASSWORD@192.0.2.215:8080/", "x-f5xc-description-short": "It will be used as the proxy URL for HTTP requests and HTTPS requests unless overridden by HTTPSProxy or NoProxy.", "x-f5xc-description-medium": "It will be used as the proxy URL for HTTP requests and HTTPS requests unless overridden by HTTPSProxy or NoProxy.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "https_proxy": { "type": "string", "description": "It will be used as the proxy URL for HTTPS requests unless overridden by NoProxy.", "title": "Https Proxy", "x-displayname": "HTTPS PROXY.", "x-ves-example": "HTTPS://USERNAME:PASSWORD@192.0.2.246:8080/.", "x-f5xc-example": "https://USERNAME:PASSWORD@192.0.2.246:8080/", "x-f5xc-description-short": "It will be used as the proxy URL for HTTPS requests unless overridden by NoProxy.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "no_proxy": { "type": "string", "description": "It specifies a string that contains comma-separated values\nspecifying hosts that should be excluded from proxying. Each value is\nrepresented by an IP address prefix (192.0.2.103), an IP address prefix in\nCIDR notation (192.0.2.103/8), a domain name, or a special DNS label (*).\nAn IP address prefix and domain name can also include a literal port\nnumber (192.0.2.103:80).\nA domain name matches that name and all subdomains. A domain name with\na leading \".\" matches subdomains only. For example \"example.com\" matches\n\"example.com\" and \"bar.example.com\"; \".y.com\" matches \"x.y.com\" but not \"y.com\".\nA single asterisk (*) indicates that no proxying should be done.", "title": "No Proxy", "x-displayname": "NO PROXY", "x-ves-example": "master.hostname.example.com,192.0.2.0/24,192.0.2.0/24.", "x-f5xc-example": "master.hostname.example.com,192.0.2.0/24,192.0.2.0/24", "x-f5xc-description-short": "It specifies a string that contains comma-separated values specifying hosts that should be excluded from proxying.", "x-f5xc-description-medium": "It specifies a string that contains comma-separated values specifying hosts that should be excluded from proxying. Each value is represented by an IP address prefix (192.0.2.103), an IP address prefix in CIDR notation (192.0.2.103/8), a domain name, or a special DNS label (*). An IP address...", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "proxy_cacert_url": { "type": "string", "description": "Allow optional different trust-store for proxy in HTTP CONNECT step\nby picking proxy CA certificate value.", "title": "Proxy CA certificate URL", "x-displayname": "Proxy CA certificate URL.", "x-ves-example": "String:///LS0tLS1CRUdJTiBDRxxxx.", "x-f5xc-example": "string:///LS0tLS1CRUdJTiBDRxxxx", "x-f5xc-description-short": "Allow optional different trust-store for proxy in HTTP CONNECT step by picking proxy CA certificate value.", "x-f5xc-description-medium": "Allow optional different trust-store for proxy in HTTP CONNECT step by picking proxy CA certificate value.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Proxy describes OPTIONS for HTTP or HTTPS proxy configurations.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for registrationInternetProxy", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for registrationInternetProxy\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Site registration is platform-level" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "registrationListResponse": { "type": "object", "description": "This is the output message of 'List' RPC.", "title": "ListResponse is the collection of registration", "x-displayname": "List Response.", "x-ves-proto-message": "ves.io.schema.registration.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/registrationListResponseItem" }, "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for registrationListResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for registrationListResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Site registration is platform-level" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "registrationListResponseItem": { "type": "object", "description": "By default a summary of registration 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 registration", "x-displayname": "List Item", "x-ves-proto-message": "ves.io.schema.registration.ListResponseItem", "properties": { "annotations": { "type": "object", "description": "The set of annotations present on this registration.", "title": "annotations", "x-displayname": "Annotations.", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "The set of annotations present on this registration.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "description": { "type": "string", "description": "The description set for this registration.", "title": "description", "x-displayname": "Description.", "x-f5xc-description-short": "The description set for this registration.", "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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "disabled": { "type": "boolean", "description": "A value of true indicates registration is administratively disabled.", "title": "disabled", "format": "boolean", "x-displayname": "Disabled", "x-f5xc-example": "True", "x-f5xc-description-short": "Value of true indicates registration is administratively disabled.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "get_spec": { "allOf": [ { "$ref": "#/components/schemas/schemaregistrationGetSpecType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "labels": { "type": "object", "description": "The set of labels present on this registration.", "title": "labels", "x-displayname": "Labels", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "The set of labels present on this registration.", "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 registration.", "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" }, "object": { "allOf": [ { "$ref": "#/components/schemas/registrationObject" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "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" } ] }, "system_metadata": { "allOf": [ { "$ref": "#/components/schemas/schemaSystemObjectGetMetaType__ves_io_schema_registration" } ], "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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "uid": { "type": "string", "description": "The unique uid of this registration.", "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-08-20T09:12:47+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-08-20T09:12:47+00:00" } }, "x-f5xc-description-short": "By default a summary of registration 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 registration 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 registrationListResponseItem", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for registrationListResponseItem\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Site registration is platform-level" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "registrationListStateReq": { "type": "object", "description": "Request for list registrations.", "title": "ListStateReq", "x-displayname": "List State Request.", "x-ves-proto-message": "ves.io.schema.registration.ListStateReq", "properties": { "namespace": { "type": "string", "description": "Registration namespace, only \"system\" namespaces is accepted.", "title": "Namespace", "x-displayname": "Namespace", "x-ves-example": "System", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true" }, "x-f5xc-example": "system", "x-validation-rules": { "ves.io.schema.rules.message.required": "true" }, "x-f5xc-description-short": "Registration namespace, only \"system\" namespaces is accepted.", "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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" }, "state": { "allOf": [ { "$ref": "#/components/schemas/registrationObjectState" } ], "x-f5xc-example": "running", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for registrationListStateReq", "required_fields": [ "namespace" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for registrationListStateReq\nmetadata:\n name: example\n namespace: default\nspec:\n namespace: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"namespace\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Site registration is platform-level" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "registrationObject": { "type": "object", "description": "Registration object stores node registration and information regarding the node.", "title": "Registration object", "x-displayname": "Object", "x-ves-displayorder": "1,2,3,4", "x-ves-proto-message": "ves.io.schema.registration.Object", "properties": { "metadata": { "allOf": [ { "$ref": "#/components/schemas/schemaObjectMetaType" } ], "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "spec": { "allOf": [ { "$ref": "#/components/schemas/registrationSpecType" } ], "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "status": { "allOf": [ { "$ref": "#/components/schemas/schemaregistrationStatusType" } ], "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-08-20T09:12:47+00:00" }, "system_metadata": { "allOf": [ { "$ref": "#/components/schemas/schemaSystemObjectMetaType__ves_io_schema_registration" } ], "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Registration object stores node registration and information regarding the node.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for registrationObject", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for registrationObject\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Site registration is platform-level" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "registrationObjectChangeResp": { "type": "object", "description": "Generic response when object is changed, registration can be changed only via custom API.", "title": "Registration change", "x-displayname": "Registration Change.", "x-ves-proto-message": "ves.io.schema.registration.ObjectChangeResp", "properties": { "obj": { "allOf": [ { "$ref": "#/components/schemas/registrationObject" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Generic response when object is changed, registration can be changed only via custom API.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for registrationObjectChangeResp", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for registrationObjectChangeResp\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Site registration is platform-level" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "registrationObjectState": { "type": "string", "description": "Defines states for registration object\n\nState isn't set\nObject was created (registration request was received and object created)\nRegistration was approved and waiting for configuration\nThis state can be set by user only if current state is NEW\nRegistration is approved and prepared for to connect\nIt can't be set manually.\nRegistration isn't valid anymore and it will be deleted in near future\nThis state can be set by user anytime.\nRegistration is failed (vpm reported or timeout)\nDEPRECATED. Registration is reported as finished (workload was deployed)\nUser action is required\nRegistration is online\nOperating system upgrade is in progress\nMaintenance is in progress\nSite node(s) in failed state for a prolonged time period.", "title": "ObjectState", "enum": [ "NOTSET", "NEW", "APPROVED", "ADMITTED", "RETIRED", "FAILED", "DONE", "PENDING", "ONLINE", "UPGRADING", "MAINTENANCE", "FAILED_INACTIVE" ], "default": "NOTSET", "x-displayname": "Object State.", "x-ves-proto-enum": "ves.io.schema.registration.ObjectState", "x-f5xc-description-short": "Defines states for registration object State isn't set Object was created (registration request was received and object created) Registration was...", "x-f5xc-description-medium": "Defines states for registration object State isn't set Object was created (registration request was received and object created) Registration was approved and waiting for configuration This state can be set by user only if current state is NEW Registration is approved and prepared for to connect...", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for registrationObjectState", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for registrationObjectState\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Site registration is platform-level" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "registrationPassport": { "type": "object", "description": "Passport stores information about identification and node configuration provided by CE during registration. It can be manually updated by user during approval.", "title": "Passport", "x-displayname": "Passport", "x-ves-displayorder": "1,2,9,7,8,4,5,6,10,3,11,12,15", "x-ves-oneof-field-operating_system_version_choice": "[\"default_os_version\",\"operating_system_version\"]", "x-ves-oneof-field-volterra_sw_version_choice": "[\"default_sw_version\",\"volterra_software_version\"]", "x-ves-proto-message": "ves.io.schema.registration.Passport", "properties": { "cluster_name": { "type": "string", "description": "Human-readable name for the resource", "title": "cluster_name", "x-displayname": "Cluster Name.", "x-ves-example": "Example-ce01.", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true" }, "x-f5xc-example": "example-ce01", "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "cluster_size": { "type": "integer", "description": "Defines how many master nodes is in the cluster, only 1 or 3 is allowed\n1 - cluster have single master, without HA\n3 - cluster have 3 masters, with HA, all nodes should be allowed at same time, cluster won't start until ALL nodes are ADMITTED\n0 - same as 1\nThis value can't be changed after installation.\nIt does not interact with auto-scaling as only pool nodes are scaled.", "title": "Cluster size", "format": "int32", "x-displayname": "Cluster Size.", "x-ves-example": "3", "x-ves-validation-rules": { "ves.io.schema.rules.int32.in": "[0,1,3]" }, "x-f5xc-example": "3", "x-validation-rules": { "ves.io.schema.rules.int32.in": "[0,1,3]" }, "x-f5xc-description-short": "Defines how many master nodes is in the cluster, only 1 or 3 is allowed 1 - cluster have single master, without HA 3 - cluster have 3 masters...", "x-f5xc-description-medium": "Defines how many master nodes is in the cluster, only 1 or 3 is allowed 1 - cluster have single master, without HA 3 - cluster have 3 masters, with HA, all nodes should be allowed at same time, cluster won't start until ALL nodes are ADMITTED 0 - same as 1 This value can't be changed after...", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "cluster_type": { "type": "string", "description": "Cluster or grouping configuration", "title": "cluster_type", "x-displayname": "Cluster Type.", "x-ves-example": "CE", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true" }, "x-f5xc-example": "ce", "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "default_os_version": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "operating_system_version" ] }, "default_sw_version": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "volterra_software_version" ] }, "latitude": { "type": "number", "description": "Geographic location of this site.", "title": "Latitude", "format": "float", "x-displayname": "Latitude", "x-ves-example": "49.3156733.", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.float.gte": "-90.0", "ves.io.schema.rules.float.lte": "90.0", "ves.io.schema.rules.message.required": "true" }, "x-f5xc-example": "49.3156733", "x-validation-rules": { "ves.io.schema.rules.float.gte": "-90.0", "ves.io.schema.rules.float.lte": "90.0", "ves.io.schema.rules.message.required": "true" }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "longitude": { "type": "number", "description": "Geographic location of this site.", "title": "Longitude", "format": "float", "x-displayname": "Longitude", "x-ves-example": "14.2484333.", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.float.gte": "-180.0", "ves.io.schema.rules.float.lte": "180.0", "ves.io.schema.rules.message.required": "true" }, "x-f5xc-example": "14.2484333", "x-validation-rules": { "ves.io.schema.rules.float.gte": "-180.0", "ves.io.schema.rules.float.lte": "180.0", "ves.io.schema.rules.message.required": "true" }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "operating_system_version": { "type": "string", "description": "Exclusive with [default_os_version]\nOperating System Version is optional parameter, which allows to specify target SW version for particular site e.g. 7.2009.10.", "title": "Operating System Version", "maxLength": 20, "x-displayname": "Operating System Version.", "x-ves-example": "7.2009.10", "x-ves-validation-rules": { "ves.io.schema.rules.string.max_len": "20" }, "x-f5xc-example": "7.2009.10", "x-validation-rules": { "ves.io.schema.rules.string.max_len": "20" }, "x-f5xc-description-short": "Exclusive with [default_os_version] Operating System Version is optional parameter, which allows to specify target SW version for particular site...", "x-f5xc-description-medium": "Exclusive with [default_os_version] Operating System Version is optional parameter, which allows to specify target SW version for particular site e.g. 7.2009.10.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 20, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "default_os_version" ] }, "private_network_name": { "type": "string", "description": "Private Network name for private access connectivity to F5XC ADN.\nIt is used for PrivateLink, CloudLink and L3VPN.", "title": "Private Network Name", "maxLength": 64, "x-displayname": "Private Network Name.", "x-ves-example": "Private-ntw.", "x-ves-validation-rules": { "ves.io.schema.rules.string.max_bytes": "64" }, "x-f5xc-example": "private-ntw", "x-validation-rules": { "ves.io.schema.rules.string.max_bytes": "64" }, "x-f5xc-description-short": "Private Network name for private access connectivity to F5XC ADN. It is used for PrivateLink, CloudLink and L3VPN.", "x-f5xc-description-medium": "Private Network name for private access connectivity to F5XC ADN. It is used for PrivateLink, CloudLink and L3VPN.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 64, "byteLength": { "max": 64 }, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "volterra_software_version": { "type": "string", "description": "Exclusive with [default_sw_version]\nF5XC Software Version is optional parameter, which allows to specify target SW version for particular site e.g. Crt-20210329-1002.", "title": "F5XC Software Version", "maxLength": 20, "x-displayname": "F5XC Software Version.", "x-ves-example": "Crt-20210329-1002.", "x-ves-validation-rules": { "ves.io.schema.rules.string.max_len": "20" }, "x-f5xc-example": "crt-20210329-1002", "x-validation-rules": { "ves.io.schema.rules.string.max_len": "20" }, "x-f5xc-description-short": "Exclusive with [default_sw_version] F5XC Software Version is optional parameter, which allows to specify target SW version for particular site e.g.", "x-f5xc-description-medium": "Exclusive with [default_sw_version] F5XC Software Version is optional parameter, which allows to specify target SW version for particular site e.g. Crt-20210329-1002.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 20, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "default_sw_version" ] } }, "x-f5xc-description-short": "Passport stores information about identification and node configuration provided by CE during registration.", "x-f5xc-description-medium": "Passport stores information about identification and node configuration provided by CE during registration. It can be manually updated by user during approval.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for registrationPassport", "required_fields": [ "cluster_name", "cluster_type", "latitude", "longitude" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for registrationPassport\nmetadata:\n name: example\n namespace: default\nspec:\n cluster_name: value\n cluster_type: value\n latitude: value\n longitude: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"cluster_name\": \"value\",\n \"cluster_type\": \"value\",\n \"latitude\": \"value\",\n \"longitude\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Site registration is platform-level" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "registrationProvider": { "type": "string", "description": "Infrastructure provider enum for registration. It describes where is instance running.\n\nProvider was not detected\nAWS cloud instance\nGoogle cloud instance\nAzure cloud instance\nVMWare VM\nKVM VM\nOther provider, which was not identified by system.\nF5XC HW device.\nIBM Cloud instance.\nKubernetes cluster in AWS\nKubernetes cluster in GCP\nKubernetes cluster in Azure\nKubernetes cluster in Vmware\nKubernetes cluster in VMware\nKubernetes cluster in Other provider\nKubernetes cluster in F5 Distributed Cloud\nKubernetes cluster in IBM Cloud\nF5OS HW device.\nRSeries Device\nOCI Cloud Instance\nNutanix instance\nOpenStack Instance\nEquinix Instance\nOpenShift Virtualization Instance.", "title": "Infrastructure provider", "enum": [ "UNKNOWN", "AWS", "GOOGLE", "AZURE", "VMWARE", "KVM", "OTHER", "VOLTERRA", "IBMCLOUD", "UNKNOWN_K8S", "AWS_K8S", "GCP_K8S", "AZURE_K8S", "VMWARE_K8S", "KVM_K8S", "OTHER_K8S", "VOLTERRA_K8S", "IBMCLOUD_K8S", "F5OS", "RSERIES", "OCI", "NUTANIX", "OPENSTACK", "EQUINIX", "OPENSHIFT_VIRTUALIZATION" ], "default": "UNKNOWN", "x-displayname": "Infrastructure Provider.", "x-ves-proto-enum": "ves.io.schema.registration.Provider", "x-f5xc-description-short": "Infrastructure provider enum for registration. It describes where is instance running.", "x-f5xc-description-medium": "Infrastructure provider enum for registration. It describes where is instance running. Provider was not detected AWS cloud instance Google cloud instance Azure cloud instance VMWare VM KVM VM Other provider, which was not identified by system.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for registrationProvider", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for registrationProvider\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Site registration is platform-level" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "registrationRegistrationCreateRequest": { "type": "object", "description": "Register node. This API isn't designed to be used by users, it's only for node.", "title": "Create registration", "x-displayname": "Create registration.", "x-ves-proto-message": "ves.io.schema.registration.RegistrationCreateRequest", "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/schemaregistrationCreateSpecType" } ], "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Register node. This API isn't designed to be used by users, it's only for node.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for registrationRegistrationCreateRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for registrationRegistrationCreateRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Site registration is platform-level" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "registrationReplaceRequest": { "type": "object", "description": "This is the input message of the 'Replace' RPC.", "title": "ReplaceRequest is used to replace contents of a registration", "x-displayname": "Replace Request.", "x-ves-proto-message": "ves.io.schema.registration.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/schemaregistrationReplaceSpecType" } ], "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 registrationReplaceRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for registrationReplaceRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Site registration is platform-level" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "registrationReplaceResponse": { "type": "object", "x-ves-proto-message": "ves.io.schema.registration.ReplaceResponse", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for registrationReplaceResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for registrationReplaceResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Site registration is platform-level" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "registrationSWInfo": { "type": "object", "description": "SWInfo holds information about sw version.", "title": "SWInfo", "x-displayname": "SW Info", "x-ves-proto-message": "ves.io.schema.registration.SWInfo", "properties": { "sw_version": { "type": "string", "description": "SW Version in the site.", "title": "sw version", "x-displayname": "SW Version.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "SWInfo holds information about sw version.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for registrationSWInfo", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for registrationSWInfo\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Site registration is platform-level" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "registrationSpecType": { "type": "object", "description": "Shape of the registration specification.", "title": "Shape of the token specification", "x-displayname": "Specification.", "x-ves-proto-message": "ves.io.schema.registration.SpecType", "properties": { "gc_spec": { "allOf": [ { "$ref": "#/components/schemas/schemaregistrationGlobalSpecType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Shape of the registration specification.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for registrationSpecType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for registrationSpecType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Site registration is platform-level" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "registrationSuggestValuesReq": { "type": "object", "description": "Request body of SuggestValues request.", "title": "SuggestValuesReq", "x-displayname": "Request for SuggestValues.", "x-ves-proto-message": "ves.io.schema.registration.SuggestValuesReq", "properties": { "field_path": { "type": "string", "description": "JSON path of the field for which the suggested values are being requested.", "title": "field_path", "maxLength": 1024, "x-displayname": "Field Path.", "x-ves-example": "spec.rule_choice.rule_list.rules[2].spec.api_group_matcher.match.", "x-ves-validation-rules": { "ves.io.schema.rules.string.max_len": "1024" }, "x-f5xc-example": "spec.rule_choice.rule_list.rules[2].spec.api_group_matcher.match", "x-validation-rules": { "ves.io.schema.rules.string.max_len": "1024" }, "x-f5xc-description-short": "JSON path of the field for which the suggested values are being requested.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 1024, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "match_value": { "type": "string", "description": "A substring that must be present in either the value or description of each SuggestedItem in the response.", "title": "match_value", "maxLength": 256, "x-displayname": "Match Value.", "x-ves-example": "Some-substring.", "x-ves-validation-rules": { "ves.io.schema.rules.string.max_len": "256" }, "x-f5xc-example": "some-substring", "x-validation-rules": { "ves.io.schema.rules.string.max_len": "256" }, "x-f5xc-description-short": "Substring that must be present in either the value or description of each SuggestedItem in the response.", "x-f5xc-description-medium": "Substring that must be present in either the value or description of each SuggestedItem in the response.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 256, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "namespace": { "type": "string", "description": "Namespace in which the suggestions are scoped.", "title": "namespace", "x-displayname": "Namespace", "x-ves-example": "Foobar", "x-f5xc-example": "foobar", "x-f5xc-description-short": "Namespace in which the suggestions are scoped.", "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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" }, "request_body": { "allOf": [ { "$ref": "#/components/schemas/protobufAny" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for registrationSuggestValuesReq", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for registrationSuggestValuesReq\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Site registration is platform-level" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "schemaInitializersType__ves_io_schema_registration": { "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/ioschemaStatusType" } ], "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_yaml": "# Minimal example for schemaInitializersType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "schemaObjectMetaType": { "type": "object", "description": "ObjectMetaType is metadata(common attributes) of an object that all configuration objects will have.\nThe information in this type can be specified by user during create and replace APIs.", "title": "ObjectMetaType", "x-displayname": "Metadata", "x-ves-proto-message": "ves.io.schema.ObjectMetaType", "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" }, "additionalProperties": { "type": "string" }, "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-08-20T09:12:47+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-08-20T09:12:47+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", "additionalProperties": { "type": "string" }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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. Object create will fail if\nprovided by the client and the value exists in the system. Typically generated by the\nserver on successful creation of an object and is not allowed to change once populated.\nShadowed by SystemObjectMeta's uid field.", "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. Object create will fail if provided by the client and the value exists in the system.", "x-f5xc-description-medium": "Uid is the unique in time and space value for this object. Object create will fail if provided by the client and the value exists in the system. Typically generated by the server on successful creation of an object and is not allowed to change once populated.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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-08-20T09:12:47+00:00" } }, "x-f5xc-description-short": "ObjectMetaType is metadata(common attributes) of an object that all configuration objects will have.", "x-f5xc-description-medium": "ObjectMetaType is metadata(common attributes) of an object that all configuration objects will have. The information in this type can be specified by user during create and replace APIs.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for schemaObjectMetaType", "required_fields": [ "name" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemaObjectMetaType\nmetadata:\n name: example\n namespace: default\nspec:\n name: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"name\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "schemaSiteToSiteTunnelType": { "type": "string", "description": "Tunnel encapsulation to be used between sites\n\nTunnel can operate in both IPsec and SSL, with IPsec being preferred over SSL.\nTunnel is of type IPsec\nTunnel is of type SSL.", "title": "Site to site tunnel type", "enum": [ "SITE_TO_SITE_TUNNEL_IPSEC_OR_SSL", "SITE_TO_SITE_TUNNEL_IPSEC", "SITE_TO_SITE_TUNNEL_SSL" ], "default": "SITE_TO_SITE_TUNNEL_IPSEC_OR_SSL", "x-displayname": "Tunnel type.", "x-ves-proto-enum": "ves.io.schema.SiteToSiteTunnelType", "x-f5xc-description-short": "Tunnel encapsulation to be used between sites Tunnel can operate in both IPsec and SSL, with IPsec being preferred over SSL.", "x-f5xc-description-medium": "Tunnel encapsulation to be used between sites Tunnel can operate in both IPsec and SSL, with IPsec being preferred over SSL. Tunnel is of type IPsec Tunnel is of type SSL.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for schemaSiteToSiteTunnelType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemaSiteToSiteTunnelType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "network", "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" } } }, "schemaSystemObjectGetMetaType__ves_io_schema_registration": { "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_registration" } ], "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaSystemObjectGetMetaType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "schemaSystemObjectMetaType__ves_io_schema_registration": { "type": "object", "description": "SystemObjectMetaType is metadata generated or populated by the system for all persisted objects and\ncannot be updated directly by users.", "title": "SystemObjectMetaType", "x-displayname": "System Metadata.", "x-ves-proto-message": "ves.io.schema.SystemObjectMetaType", "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "readOnly": true, "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": "Value", "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "readOnly": true, "x-field-mutability": "read-only" }, "creator_cookie": { "type": "string", "description": "This can used by the creator of the object for later audit for e.g. By storing the\nversion identifying information of the object so at future it can be determined if\nversion present at remote end is current or stale.", "title": "creator_cookie", "x-displayname": "Creator Cookie.", "x-ves-example": "Value", "x-f5xc-example": "value", "x-f5xc-description-short": "Can used by the creator of the object for later audit for e.g.", "x-f5xc-description-medium": "Can used by the creator of the object for later audit for e.g. By storing the version identifying information of the object so at future it can be determined if version present at remote end is current or stale.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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": "Value", "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "readOnly": true, "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "direct_ref_hash": { "type": "string", "description": "A hash of the UIDs of direct references on this object. This can be used to determine if\nthis object hash has had references become resolved/unresolved.", "title": "direct_ref_hash", "x-displayname": "Direct Reference Hash.", "x-f5xc-description-short": "Hash of the UIDs of direct references on this object. This can be used to determine if this object hash has had references become resolved/unresolved.", "x-f5xc-description-medium": "Hash of the UIDs of direct references on this object. This can be used to determine if this object hash has had references become resolved/unresolved.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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_registration" } ], "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "readOnly": true, "x-field-mutability": "read-only" }, "namespace": { "type": "array", "description": "The namespace this object belongs to. This is populated by the service based on the\nmetadata.namespace field when an object is created.", "title": "namespace", "maxItems": 1, "items": { "$ref": "#/components/schemas/ioschemaObjectRefType" }, "x-displayname": "Namespace 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-example": "example-resource", "x-f5xc-description-short": "The namespace this object belongs to. This is populated by the service based on the metadata.namespace field when an object is created.", "x-f5xc-description-medium": "The namespace this object belongs to. This is populated by the service based on the metadata.namespace field when an object is created.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 1, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "maxLength": 6, "minLength": 6, "x-reconciled-from-discovery": true, "x-reconciled-at": "2026-08-20T09:12:47+00:00" }, "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 }, "readOnly": true, "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" } ] }, "revision": { "type": "string", "description": "A revision number which always increases with each modification of the object in storage\nThis doesn't necessarily increase sequentially, but should always increase.\nThis will be 0 when first created, and before any modifications.", "title": "revision", "format": "int64", "x-displayname": "Revision", "x-f5xc-description-short": "Revision number which always increases with each modification of the object in storage This doesn't necessarily increase sequentially, but should...", "x-f5xc-description-medium": "Revision number which always increases with each modification of the object in storage This doesn't necessarily increase sequentially, but should always increase. This will be 0 when first created, and before any modifications.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "format": "int64", "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "sre_disable": { "type": "boolean", "description": "This should be set to true If F5XC/SRE operator wants to suppress an object from being\npresented to business-logic of a daemon(e.g. Due to bad-form/issue-causing Object).\nThis is meant only to be used in temporary situations for operational continuity till\na fix is rolled out in business-logic.", "title": "sre_disable", "format": "boolean", "x-displayname": "SRE Disable.", "x-ves-example": "True", "x-f5xc-example": "true", "x-f5xc-description-short": "Should be set to true If F5XC/SRE operator wants to suppress an object from being presented to business-logic of a daemon(e.g.", "x-f5xc-description-medium": "Should be set to true If F5XC/SRE operator wants to suppress an object from being presented to business-logic of a daemon(e.g. Due to bad-form/issue-causing Object). This is meant only to be used in temporary situations for operational continuity till a fix is rolled out in business-logic.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "trace_info": { "type": "string", "description": "Trace_info holds information(::) of the request doing\nthe object modification. This can be used on the watch side to create subsequent spans.\nThis information can be used to co-relate activities across services (modulo state compression)\nfor a synchronous API.", "title": "trace_info", "x-displayname": "Trace Info.", "x-ves-example": "Value", "x-f5xc-example": "value", "x-f5xc-description-short": "Trace_info holds information(::) of the request doing the object modification.", "x-f5xc-description-medium": "Trace_info holds information(::) of the request doing the object modification. This can be used on the watch side to create subsequent spans. This information can be used to co-relate activities across services (modulo state compression) for a synchronous API.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "vtrp_id": { "type": "string", "description": "Indicate origin of this object.", "title": "vtrp_id", "x-displayname": "VTRP ID", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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": "SystemObjectMetaType is metadata generated or populated by the system for all persisted objects and cannot be updated directly by users.", "x-f5xc-description-medium": "SystemObjectMetaType 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 schemaSystemObjectMetaType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemaSystemObjectMetaType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "schemaregistrationCreateSpecType": { "type": "object", "description": "VPM creates registration using this message, never used by users.", "title": "Create registration", "x-displayname": "Create Registration.", "x-ves-displayorder": "1,2,3", "x-ves-proto-message": "ves.io.schema.registration.CreateSpecType", "properties": { "infra": { "allOf": [ { "$ref": "#/components/schemas/registrationInfra" } ], "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "passport": { "allOf": [ { "$ref": "#/components/schemas/registrationPassport" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "token": { "type": "string", "description": "Token is used for machine and tenant identification.", "x-displayname": "Token", "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" }, "x-f5xc-description-short": "Token is used for machine and tenant identification.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "security", "maxLength": 1024, "minLength": 20, "metadata": { "source": "inferred", "confidence": 0.75, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } } }, "x-f5xc-description-short": "VPM creates registration using this message, never used by users.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for schemaregistrationCreateSpecType", "required_fields": [ "token" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemaregistrationCreateSpecType\nmetadata:\n name: example\n namespace: default\nspec:\n token: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"token\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-field-examples": { "spec.token": "value" }, "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Site registration is platform-level" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "schemaregistrationGetSpecType": { "type": "object", "description": "GET registration specification.", "title": "Get registration", "x-displayname": "GET Registration.", "x-ves-displayorder": "1,2,3", "x-ves-proto-message": "ves.io.schema.registration.GetSpecType", "properties": { "infra": { "allOf": [ { "$ref": "#/components/schemas/registrationInfra" } ], "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "passport": { "allOf": [ { "$ref": "#/components/schemas/registrationPassport" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "token": { "type": "string", "description": "Token is used for machine and tenant identification.", "x-displayname": "Token", "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" }, "x-f5xc-description-short": "Token is used for machine and tenant identification.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "security", "maxLength": 1024, "minLength": 20, "metadata": { "source": "inferred", "confidence": 0.75, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for schemaregistrationGetSpecType", "required_fields": [ "token" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemaregistrationGetSpecType\nmetadata:\n name: example\n namespace: default\nspec:\n token: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"token\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Site registration is platform-level" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "schemaregistrationGlobalSpecType": { "type": "object", "title": "Shape of the registration specification", "x-displayname": "Global Specification.", "x-ves-proto-message": "ves.io.schema.registration.GlobalSpecType", "properties": { "connected_regions": { "type": "array", "description": "Optional.\nREs in selected region to which CEs connect, contains primary and backup RE region info.", "title": "Connected Region", "items": { "type": "string" }, "x-displayname": "Connected Regions.", "x-ves-example": "Value", "x-f5xc-example": "value", "x-f5xc-description-short": "Optional. REs in selected region to which CEs connect, contains primary and backup RE region info.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "infra": { "allOf": [ { "$ref": "#/components/schemas/registrationInfra" } ], "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "passport": { "allOf": [ { "$ref": "#/components/schemas/registrationPassport" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "role": { "type": "array", "description": "Role of registered node. Used by system to determine what roles should be enforced.", "title": "Instance role", "items": { "type": "string" }, "x-displayname": "Role", "x-ves-example": "K8s-master, etcd.", "x-f5xc-example": "k8s-master, etcd", "x-f5xc-description-short": "Role of registered node. Used by system to determine what roles should be enforced.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "site": { "type": "array", "description": "Site for this registration, assigned after registration is assigned to site.", "title": "Site", "items": { "$ref": "#/components/schemas/ioschemaObjectRefType" }, "x-displayname": "Site", "x-f5xc-description-short": "Site for this registration, assigned after registration is assigned to site.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "token": { "type": "string", "description": "Token is used for machine and tenant identification.", "title": "Token", "x-displayname": "Token", "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" }, "x-f5xc-description-short": "Token is used for machine and tenant identification.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "security", "maxLength": 1024, "minLength": 20, "metadata": { "source": "inferred", "confidence": 0.75, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "tunnel_type": { "allOf": [ { "$ref": "#/components/schemas/schemaSiteToSiteTunnelType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for schemaregistrationGlobalSpecType", "required_fields": [ "token" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemaregistrationGlobalSpecType\nmetadata:\n name: example\n namespace: default\nspec:\n token: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"token\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Site registration is platform-level" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "schemaregistrationReplaceSpecType": { "type": "object", "description": "NO fields are allowed to be replaced.", "title": "Replace registration", "x-displayname": "Replace Registration.", "x-ves-proto-message": "ves.io.schema.registration.ReplaceSpecType", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for schemaregistrationReplaceSpecType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemaregistrationReplaceSpecType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Site registration is platform-level" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "schemaregistrationStatusType": { "type": "object", "description": "Most recent observer status of object.", "title": "Shape of the registration status", "x-displayname": "Status Type.", "x-ves-displayorder": "1,2,3", "x-ves-proto-message": "ves.io.schema.registration.StatusType", "properties": { "current_state": { "allOf": [ { "$ref": "#/components/schemas/registrationObjectState" } ], "x-f5xc-description-short": "Configuration parameter for current state.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "object_status": { "allOf": [ { "$ref": "#/components/schemas/ioschemaStatusType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "parent_current_state": { "allOf": [ { "$ref": "#/components/schemas/siteSiteState" } ], "x-f5xc-description-short": "Configuration parameter for parent current state.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "state_update_timestamp": { "type": "string", "description": "Time of last registration state update.", "title": "Modification timestamp for state of registration", "format": "date-time", "x-displayname": "Registration state update timestamp.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "format": "date-time", "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for schemaregistrationStatusType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemaregistrationStatusType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Site registration is platform-level" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "schemaregistrationSuggestValuesResp": { "type": "object", "description": "Response body of SuggestValues request.", "title": "SuggestValuesResp", "x-displayname": "Response for SuggestValues.", "x-ves-proto-message": "ves.io.schema.registration.SuggestValuesResp", "properties": { "items": { "type": "array", "description": "List of suggested items.", "title": "item_lists", "items": { "$ref": "#/components/schemas/schemaregistrationSuggestedItem" }, "x-displayname": "Suggested Items.", "x-f5xc-example": "[\"item1\", \"item2\", \"item3\"]", "x-f5xc-constraints": { "constraintType": "array", "category": "general", "minItems": 0, "maxItems": 256, "uniqueItems": false, "metadata": { "source": "inferred", "confidence": 0.7, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for schemaregistrationSuggestValuesResp", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemaregistrationSuggestValuesResp\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Site registration is platform-level" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "schemaregistrationSuggestedItem": { "type": "object", "description": "A tuple with a suggested value and it's description.", "title": "SuggestedItem", "x-displayname": "Suggested Item.", "x-ves-oneof-field-value_choice": "[\"ref_value\",\"str_value\"]", "x-ves-proto-message": "ves.io.schema.registration.SuggestedItem", "properties": { "description": { "type": "string", "description": "Optional description for the suggested value.", "title": "description", "x-displayname": "Description.", "x-f5xc-description-short": "Optional description for the suggested value.", "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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "ref_value": { "allOf": [ { "$ref": "#/components/schemas/schemaviewsObjectRefType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "str_value" ], "x-f5xc-references": [ { "resource_kind": "virtual_site", "field_path": "ref_value", "gated_by": { "choice": "value_choice" }, "required": false, "cardinality": "single" } ] }, "str_value": { "type": "string", "description": "Exclusive with [ref_value]", "title": "str_value", "x-displayname": "String", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "ref_value" ] } }, "x-f5xc-description-short": "Tuple with a suggested value and it's description.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for schemaregistrationSuggestedItem", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemaregistrationSuggestedItem\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Site registration is platform-level" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "siteBios": { "type": "object", "description": "BIOS information.", "title": "Bios Data", "x-displayname": "Bios Data", "x-ves-proto-message": "ves.io.schema.site.Bios", "properties": { "date": { "type": "string", "description": "Information from /sys/class/dmi/ID/bios_date.", "title": "date", "x-displayname": "Date", "x-ves-example": "Value", "x-f5xc-example": "value", "x-f5xc-description-short": "Information from /sys/class/dmi/ID/bios_date.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "temporal", "maxLength": 1024, "minLength": 10, "pattern": "^\\d{4}-\\d{2}-\\d{2}$", "format": "date", "formatDescription": "ISO 8601 date (e.g., 2026-01-19)", "validation": { "standard": "ISO 8601" }, "metadata": { "source": "inferred", "confidence": 0.95, "validatedAt": "2026-08-20T09:12:47+00:00" }, "deterministic": true }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "vendor": { "type": "string", "description": "Information from /sys/class/dmi/ID/bios_vendor.", "title": "vendor", "x-displayname": "Vendor", "x-ves-example": "Value", "x-f5xc-example": "value", "x-f5xc-description-short": "Information from /sys/class/dmi/ID/bios_vendor.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "version": { "type": "string", "description": "Information from /sys/class/dmi/ID/bios_version.", "title": "version", "x-displayname": "Version", "x-ves-example": "Value", "x-f5xc-example": "value", "x-f5xc-description-short": "Information from /sys/class/dmi/ID/bios_version.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "minLength": 1, "x-reconciled-from-discovery": true, "x-reconciled-at": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for siteBios", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for siteBios\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "siteBoard": { "type": "object", "description": "Board information.", "title": "Board Details", "x-displayname": "Board Details.", "x-ves-proto-message": "ves.io.schema.site.Board", "properties": { "asset_tag": { "type": "string", "description": "Information from /sys/class/dmi/ID/board_asset_tag.", "title": "asset_tag", "x-displayname": "Asset Tag", "x-ves-example": "Value", "x-f5xc-example": "value", "x-f5xc-description-short": "Information from /sys/class/dmi/ID/board_asset_tag.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "name": { "type": "string", "description": "Information from /sys/class/dmi/ID/board_name.", "title": "name", "x-displayname": "Name", "x-ves-example": "Value", "x-f5xc-example": "value", "x-f5xc-description-short": "Information from /sys/class/dmi/ID/board_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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" }, "serial": { "type": "string", "description": "Information from /sys/class/dmi/ID/board_serial.", "title": "serial", "x-displayname": "Serial Number.", "x-ves-example": "Value", "x-f5xc-example": "value", "x-f5xc-description-short": "Information from /sys/class/dmi/ID/board_serial.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "vendor": { "type": "string", "description": "Information from /sys/class/dmi/ID/board_vendor.", "title": "vendor", "x-displayname": "Vendor", "x-ves-example": "Value", "x-f5xc-example": "value", "x-f5xc-description-short": "Information from /sys/class/dmi/ID/board_vendor.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "version": { "type": "string", "description": "Information from /sys/class/dmi/ID/board_version.", "title": "version", "x-displayname": "Version", "x-ves-example": "Value", "x-f5xc-example": "value", "x-f5xc-description-short": "Information from /sys/class/dmi/ID/board_version.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "minLength": 1, "x-reconciled-from-discovery": true, "x-reconciled-at": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for siteBoard", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for siteBoard\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "siteChassis": { "type": "object", "description": "Chassis information.", "title": "Chassis Details", "x-displayname": "Chassis Details.", "x-ves-proto-message": "ves.io.schema.site.Chassis", "properties": { "asset_tag": { "type": "string", "description": "Information from /sys/class/dmi/ID/chassis_asset_tag.", "title": "asset_tag", "x-displayname": "Asset Tag", "x-ves-example": "Value", "x-f5xc-example": "value", "x-f5xc-description-short": "Information from /sys/class/dmi/ID/chassis_asset_tag.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "serial": { "type": "string", "description": "Information from /sys/class/dmi/ID/chassis_serial.", "title": "serial", "x-displayname": "Serial Number.", "x-ves-example": "Value", "x-f5xc-example": "value", "x-f5xc-description-short": "Information from /sys/class/dmi/ID/chassis_serial.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "type": { "type": "integer", "description": "Information from /sys/class/dmi/ID/chassis_type.", "title": "type", "format": "int64", "x-displayname": "Type", "x-ves-example": "0", "x-f5xc-example": "0", "x-f5xc-description-short": "Information from /sys/class/dmi/ID/chassis_type.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "vendor": { "type": "string", "description": "Information from /sys/class/dmi/ID/chassis_vendor.", "title": "vendor", "x-displayname": "Vendor", "x-ves-example": "Value", "x-f5xc-example": "value", "x-f5xc-description-short": "Information from /sys/class/dmi/ID/chassis_vendor.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "version": { "type": "string", "description": "Information from /sys/class/dmi/ID/chassis_version.", "title": "version", "x-displayname": "Version", "x-ves-example": "Value", "x-f5xc-example": "value", "x-f5xc-description-short": "Information from /sys/class/dmi/ID/chassis_version.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "minLength": 1, "x-reconciled-from-discovery": true, "x-reconciled-at": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for siteChassis", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for siteChassis\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "siteCpu": { "type": "object", "description": "CPU information.", "title": "Cpu information", "x-displayname": "CPU Information.", "x-ves-proto-message": "ves.io.schema.site.Cpu", "properties": { "cache": { "type": "integer", "description": "CPU cache size in KB.", "title": "cache", "format": "int64", "x-displayname": "Cache", "x-ves-example": "8192", "x-f5xc-example": "8192", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "cores": { "type": "integer", "description": "Number of physical CPU cores.", "title": "cores", "format": "int64", "x-displayname": "Cores", "x-ves-example": "4", "x-f5xc-example": "4", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "cpus": { "type": "integer", "description": "Number of physical CPUs.", "title": "cpus", "format": "int64", "x-displayname": "CPUs", "x-ves-example": "4", "x-f5xc-example": "4", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "model": { "type": "string", "description": "CPU model", "title": "model", "x-displayname": "Model", "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "speed": { "type": "integer", "description": "CPU clock rate in MHz.", "title": "speed", "format": "int64", "x-displayname": "Speed", "x-ves-example": "4200", "x-f5xc-example": "4200", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "threads": { "type": "integer", "description": "Number of logical (HT) CPU cores.", "title": "threads", "format": "int64", "x-displayname": "Threads", "x-ves-example": "4", "x-f5xc-example": "4", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "vendor": { "type": "string", "description": "CPU vendor.", "title": "vendor", "x-displayname": "Vendor", "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for siteCpu", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for siteCpu\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "siteGPU": { "type": "object", "description": "GPU information on server.", "title": "GPU", "x-displayname": "GPU", "x-ves-proto-message": "ves.io.schema.site.GPU", "properties": { "cuda_version": { "type": "string", "description": "GPU Cuda Version.", "title": "cudaVersion", "x-displayname": "Cuda Version.", "x-ves-example": "10.2", "x-f5xc-example": "10.2", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "driver_version": { "type": "string", "description": "GPU Driver Version.", "title": "driverVersion", "x-displayname": "Driver Version.", "x-ves-example": "440.82", "x-f5xc-example": "440.82", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "gpu_device": { "type": "array", "description": "List of GPU devices in server.", "title": "GPUDevice", "items": { "$ref": "#/components/schemas/siteGPUDevice" }, "x-displayname": "GPU devices.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for siteGPU", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for siteGPU\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "siteGPUDevice": { "type": "object", "title": "GPUDevice", "x-displayname": "GPUDevice", "x-ves-proto-message": "ves.io.schema.site.GPUDevice", "properties": { "id": { "type": "string", "description": "GPU ID", "title": "id", "x-displayname": "GPU ID", "x-ves-example": "00000000:17:00.0.", "x-f5xc-example": "00000000:17:00.0", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "processes": { "type": "string", "description": "GPU Processes.", "title": "processes", "x-displayname": "Processes", "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "product_name": { "type": "string", "description": "GPU Product Name.", "title": "productName", "x-displayname": "Product Name.", "x-ves-example": "Quadro P1000.", "x-f5xc-example": "Quadro P1000", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for siteGPUDevice", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for siteGPUDevice\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "siteKernel": { "type": "object", "description": "Kernel information.", "title": "Kernel Information", "x-displayname": "Kernel", "x-ves-proto-message": "ves.io.schema.site.Kernel", "properties": { "architecture": { "type": "string", "description": "Kernel architecture.", "title": "architecture", "x-displayname": "Architecture.", "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "release": { "type": "string", "description": "Kernel release.", "title": "release", "x-displayname": "Release", "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "version": { "type": "string", "description": "Kernel version.", "title": "version", "x-displayname": "Version", "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "minLength": 1, "x-reconciled-from-discovery": true, "x-reconciled-at": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for siteKernel", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for siteKernel\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "siteLinkQuality": { "type": "string", "description": "Link quality determined by VER using different probes\n\nUnknown quality\nLink quality is good\nLink quality is poor\nQuality disabled.", "title": "Link quality", "enum": [ "QUALITY_UNKNOWN", "QUALITY_GOOD", "QUALITY_POOR", "QUALITY_DISABLED" ], "default": "QUALITY_UNKNOWN", "x-displayname": "Link quality.", "x-ves-proto-enum": "ves.io.schema.site.LinkQuality", "x-f5xc-description-short": "Link quality determined by VER using different probes Unknown quality Link quality is good Link quality is poor Quality disabled.", "x-f5xc-description-medium": "Link quality determined by VER using different probes Unknown quality Link quality is good Link quality is poor Quality disabled.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for siteLinkQuality", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for siteLinkQuality\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "siteLinkType": { "type": "string", "description": "Link type of interface determined operationally\n\nLink type unknown\nLink type ethernet\nWi-Fi link of type 802.11ac\nWi-Fi link of type 802.11bgn\nLink type 4G\nWi-Fi link\nWan link.", "title": "Link type", "enum": [ "LINK_TYPE_UNKNOWN", "LINK_TYPE_ETHERNET", "LINK_TYPE_WIFI_802_11AC", "LINK_TYPE_WIFI_802_11BGN", "LINK_TYPE_4G", "LINK_TYPE_WIFI", "LINK_TYPE_WAN" ], "default": "LINK_TYPE_UNKNOWN", "x-displayname": "Link type", "x-ves-proto-enum": "ves.io.schema.site.LinkType", "x-f5xc-description-short": "Link type of interface determined operationally Link type unknown Link type ethernet Wi-Fi link of type 802.11ac Wi-Fi link of type 802.11bgn Link...", "x-f5xc-description-medium": "Link type of interface determined operationally Link type unknown Link type ethernet Wi-Fi link of type 802.11ac Wi-Fi link of type 802.11bgn Link type 4G Wi-Fi link Wan link.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for siteLinkType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for siteLinkType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "siteMemory": { "type": "object", "description": "Memory information.", "title": "Memory Information", "x-displayname": "Memory Information.", "x-ves-proto-message": "ves.io.schema.site.Memory", "properties": { "size_mb": { "type": "integer", "description": "RAM size in MB.", "title": "size_mb", "format": "int64", "x-displayname": "RAM", "x-ves-example": "Value", "x-f5xc-example": "value", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "speed": { "type": "integer", "description": "RAM data rate in MT/s.", "title": "speed", "format": "int64", "x-displayname": "Speed", "x-ves-example": "Value", "x-f5xc-example": "value", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "type": { "type": "string", "description": "Type of memory, eg. DDR4.", "title": "type", "x-displayname": "Type", "x-ves-example": "DDR4", "x-f5xc-example": "DDR4", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for siteMemory", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for siteMemory\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "siteNetworkDevice": { "type": "object", "description": "NetworkDevice information.", "title": "Network Device Information", "x-displayname": "Network Device Information.", "x-ves-proto-message": "ves.io.schema.site.NetworkDevice", "properties": { "driver": { "type": "string", "description": "Driver of device, eg. E1000e.", "title": "driver", "x-displayname": "Driver", "x-ves-example": "E1000e", "x-f5xc-example": "e1000e", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "ip_address": { "type": "array", "description": "IP address on interface.", "title": "ip_address", "items": { "type": "string" }, "x-displayname": "IP Address.", "x-ves-example": "192.0.2.242.", "x-f5xc-example": "192.0.2.242", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "link_quality": { "allOf": [ { "$ref": "#/components/schemas/siteLinkQuality" } ], "x-f5xc-description-short": "Configuration parameter for link quality.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "link_type": { "allOf": [ { "$ref": "#/components/schemas/siteLinkType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "mac_address": { "type": "string", "description": "MAC address on interface.", "title": "mac_address", "x-displayname": "MAC Address.", "x-ves-example": "Value", "x-f5xc-example": "value", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "network", "maxLength": 1024, "minLength": 17, "pattern": "^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$", "format": "mac-address", "formatDescription": "MAC address (e.g., 00:1A:2B:3C:4D:5E)", "metadata": { "source": "inferred", "confidence": 0.95, "validatedAt": "2026-08-20T09:12:47+00:00" }, "deterministic": true }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "name": { "type": "string", "description": "Name of device, eg. Eth0.", "title": "name", "x-displayname": "Name", "x-ves-example": "Eth0", "x-f5xc-example": "eth0", "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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" }, "port": { "type": "string", "description": "Used port, eg. Tp.", "title": "port", "x-displayname": "Port", "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "speed": { "type": "integer", "description": "Device max supported speed in Mbps.", "title": "speed", "format": "int64", "x-displayname": "Speed", "x-ves-example": "1000", "x-f5xc-example": "1000", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for siteNetworkDevice", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for siteNetworkDevice\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "siteOS": { "type": "object", "description": "Details of Operating System.", "title": "OS", "x-displayname": "OS", "x-ves-proto-message": "ves.io.schema.site.OS", "properties": { "architecture": { "type": "string", "description": "Architecture of OS.", "title": "architecture", "x-displayname": "Architecture.", "x-ves-example": "Amd64", "x-f5xc-example": "amd64", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "name": { "type": "string", "description": "Name of OS.", "title": "name", "x-displayname": "Name", "x-ves-example": "Container Linux by CoreOS 1855.4.0 (Rhyolite)", "x-f5xc-example": "Container Linux by CoreOS 1855.4.0 (Rhyolite)", "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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" }, "release": { "type": "string", "description": "Release of the OS.", "title": "release", "x-displayname": "Release", "x-ves-example": "20.04", "x-f5xc-example": "20.04", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "vendor": { "type": "string", "description": "Vendor of OS.", "title": "vendor", "x-displayname": "Vendor", "x-ves-example": "Coreos", "x-f5xc-example": "coreos", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "version": { "type": "string", "description": "Version of OS.", "title": "version", "x-displayname": "Version", "x-ves-example": "1855.4.0", "x-f5xc-example": "1855.4.0", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "minLength": 1, "x-reconciled-from-discovery": true, "x-reconciled-at": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for siteOS", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for siteOS\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "siteOsInfo": { "type": "object", "description": "OsInfo holds information about host OS and HW.", "title": "OsInfo", "x-displayname": "OS Info", "x-ves-proto-message": "ves.io.schema.site.OsInfo", "properties": { "bios": { "allOf": [ { "$ref": "#/components/schemas/siteBios" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "board": { "allOf": [ { "$ref": "#/components/schemas/siteBoard" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "chassis": { "allOf": [ { "$ref": "#/components/schemas/siteChassis" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "cpu": { "allOf": [ { "$ref": "#/components/schemas/siteCpu" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "gpu": { "allOf": [ { "$ref": "#/components/schemas/siteGPU" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "kernel": { "allOf": [ { "$ref": "#/components/schemas/siteKernel" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "memory": { "allOf": [ { "$ref": "#/components/schemas/siteMemory" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "network": { "type": "array", "description": "List of network devices in server.", "title": "network", "items": { "$ref": "#/components/schemas/siteNetworkDevice" }, "x-displayname": "Network", "x-f5xc-example": "192.0.2.0/24", "x-f5xc-constraints": { "constraintType": "array", "category": "networking", "minItems": 0, "maxItems": 32, "uniqueItems": false, "metadata": { "source": "inferred", "confidence": 0.8, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "numa_nodes": { "type": "integer", "description": "Non-uniform memory access (NUMA) nodes count.", "title": "NUMA Nodes Count", "format": "int32", "x-displayname": "NUMA nodes count.", "x-ves-example": "1", "x-ves-validation-rules": { "ves.io.schema.rules.int32.gte": "0" }, "x-f5xc-example": "1", "x-validation-rules": { "ves.io.schema.rules.int32.gte": "0" }, "x-f5xc-description-short": "Non-uniform memory access (NUMA) nodes count.", "x-f5xc-constraints": { "constraintType": "number", "category": "discovery", "minimum": 0, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "os": { "allOf": [ { "$ref": "#/components/schemas/siteOS" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "product": { "allOf": [ { "$ref": "#/components/schemas/siteProduct" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "storage": { "type": "array", "description": "List of storage devices in server.", "title": "storage", "items": { "$ref": "#/components/schemas/siteStorageDevice" }, "x-displayname": "Storage", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "usb": { "type": "array", "description": "List of USB devices in server.", "title": "USBDevice", "items": { "$ref": "#/components/schemas/siteUSBDevice" }, "x-displayname": "USB devices.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "OsInfo holds information about host OS and HW.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for siteOsInfo", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for siteOsInfo\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "siteProduct": { "type": "object", "description": "Product information.", "title": "Product Information", "x-displayname": "Product Information.", "x-ves-proto-message": "ves.io.schema.site.Product", "properties": { "name": { "type": "string", "description": "Product name, eg. For AWS m5a.xlarge. Info taken from /sys/class/dmi/ID/product_name.", "title": "name", "x-displayname": "Name", "x-ves-example": "m5a.xlarge.", "x-f5xc-example": "m5a.xlarge", "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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" }, "serial": { "type": "string", "description": "Serial number, eg. For AWS 00000000-0000-4000-8000-23460f645a1f. Info taken from /sys/class/dmi/ID/product_serial.", "title": "serial", "x-displayname": "Serial Number.", "x-ves-example": "00000000-0000-4000-8000-23460f645a1f.", "x-f5xc-example": "00000000-0000-4000-8000-23460f645a1f", "x-f5xc-description-short": "Serial number, eg. For AWS 00000000-0000-4000-8000-23460f645a1f.", "x-f5xc-description-medium": "Serial number, eg. For AWS 00000000-0000-4000-8000-23460f645a1f. Info taken from /sys/class/dmi/ID/product_serial.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "vendor": { "type": "string", "description": "Vendor name, eg. For AWS Amazon EC2. Info taken from /sys/class/dmi/ID/product_vendor.", "title": "vendor", "x-displayname": "Vendor", "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "version": { "type": "string", "description": "Version name. Info taken from /sys/class/dmi/ID/product_version.", "title": "version", "x-displayname": "Version", "x-ves-example": "Value", "x-f5xc-example": "value", "x-f5xc-description-short": "Version name. Info taken from /sys/class/dmi/ID/product_version.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "minLength": 1, "x-reconciled-from-discovery": true, "x-reconciled-at": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for siteProduct", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for siteProduct\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "siteSiteState": { "type": "string", "description": "State of Site defines in which operational state site itself is.\n\nSite is online and operational.\nSite is in provisioning state. For instance during site deployment or switching to different connected Regional Edge.\nSite is in process of upgrade. It transition to ONLINE or FAILED state.\nSite is in Standby before goes to ONLINE. This is mainly for Regional Edge sites to do their verification before they go to ONLINE state.\nSite is in failed state. It failed during provisioning or upgrade phase. Site Status Objects contain more details.\nReregistration was requested\nReregistration is in progress and maurice is waiting for nodes\nSite deletion is in progress\nSite is waiting for registration\nSite resources are waiting to be orchestrated for F5XC managed site. Check Status objects for more details\nSite resources are orchestrated for F5XC managed site.\nAn Error occurred while site resource orchestration for F5XC managed site. Check Status objects for more details.\nSite resources are waiting to be orchestrated for F5XC managed site. Check Status objects for more details\nSite resources orchestrated for F5XC managed site are deleted.\nAn Error occurred while site resource DELETE operation for F5XC managed site. Check Status objects for more details.\nValidation for F5XC managed site is in progress. Check Status objects for more details.\nValidation for F5XC managed site succeeded. Orchestration will start for Site resources\nValidation for F5XC managed site failed. Check Status objects for more details.\nSite is in failed state for prolong period of time. Site Status Objects contain more details.\nSite resources are waiting to be updated. Check Status objects for more details\nAn Error occurred while updating cloud resources for F5XC managed site. Check Status objects for more details.\nSite resources orchestration is queued for F5XC managed site. Check Status objects for more details\nSite resources update is queued for F5XC managed site. Check Status objects for more details\nSite resources DELETE is queued for F5XC managed site. Check Status objects for more details.", "title": "SiteState", "enum": [ "ONLINE", "PROVISIONING", "UPGRADING", "STANDBY", "FAILED", "REREGISTRATION", "WAITINGNODES", "DECOMMISSIONING", "WAITING_FOR_REGISTRATION", "ORCHESTRATION_IN_PROGRESS", "ORCHESTRATION_COMPLETE", "ERROR_IN_ORCHESTRATION", "DELETING_CLOUD_RESOURCES", "DELETED_CLOUD_RESOURCES", "ERROR_DELETING_CLOUD_RESOURCES", "VALIDATION_IN_PROGRESS", "VALIDATION_SUCCESS", "VALIDATION_FAILED", "FAILED_INACTIVE", "UPDATING_CLOUD_RESOURCES", "ERROR_UPDATING_CLOUD_RESOURCES", "ORCHESTRATION_QUEUED", "UPDATE_QUEUED", "DELETE_QUEUED" ], "default": "ONLINE", "x-displayname": "Site State.", "x-ves-proto-enum": "ves.io.schema.site.SiteState", "x-f5xc-description-short": "State of Site defines in which operational state site itself is. Site is online and operational.", "x-f5xc-description-medium": "State of Site defines in which operational state site itself is. Site is online and operational. Site is in provisioning state. For instance during site deployment or switching to different connected Regional Edge. Site is in process of upgrade.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for siteSiteState", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for siteSiteState\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "siteStorageDevice": { "type": "object", "description": "StorageDevice information.", "title": "Storage Information", "x-displayname": "Storage Information.", "x-ves-proto-message": "ves.io.schema.site.StorageDevice", "properties": { "driver": { "type": "string", "description": "Driver of device.", "title": "driver", "x-displayname": "Driver", "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "model": { "type": "string", "description": "Model of device.", "title": "model", "x-displayname": "Model", "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "name": { "type": "string", "description": "Name of device, eg. Nvme0n1.", "title": "name", "x-displayname": "Name", "x-ves-example": "Nvme0n1", "x-f5xc-example": "nvme0n1", "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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" }, "serial": { "type": "string", "description": "Serial of device.", "title": "serial", "x-displayname": "Serial Number.", "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "size_gb": { "type": "integer", "description": "Device size in GB.", "title": "size_gb", "format": "int64", "x-displayname": "Size(GB)", "x-ves-example": "Value", "x-f5xc-example": "value", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "vendor": { "type": "string", "description": "Vendor of device.", "title": "vendor", "x-displayname": "Vendor", "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for siteStorageDevice", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for siteStorageDevice\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "siteUSBDevice": { "type": "object", "description": "Information about USB device.", "title": "USB device", "x-displayname": "USB Device information.", "x-ves-proto-message": "ves.io.schema.site.USBDevice", "properties": { "address": { "type": "integer", "description": "Address of the device on the bus in decimal.", "title": "address", "format": "int64", "x-displayname": "Address", "x-ves-example": "4", "x-f5xc-example": "4", "x-f5xc-description-short": "Address of the device on the bus in decimal.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "b_device_class": { "type": "string", "description": "The class of this device.", "title": "b_device_class", "x-displayname": "Class", "x-ves-example": "Hub", "x-f5xc-example": "hub", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "b_device_protocol": { "type": "string", "description": "The protocol (within the sub-class) of this device.", "title": "b_device_protocol", "x-displayname": "Protocol", "x-ves-example": "0002", "x-f5xc-example": "0002", "x-f5xc-description-short": "The protocol (within the sub-class) of this device.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "b_device_sub_class": { "type": "string", "description": "The sub-class (within the class) of this device.", "title": "b_device_sub_class", "x-displayname": "Subclass", "x-ves-example": "Hub", "x-f5xc-example": "hub", "x-f5xc-description-short": "The sub-class (within the class) of this device.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "b_max_packet_size": { "type": "integer", "description": "Maximum size of the control transfer.", "title": "b_max_packet_size", "format": "int64", "x-displayname": "Max packet size.", "x-ves-example": "64", "x-f5xc-example": "64", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "bcd_device": { "type": "string", "description": "The device version.", "title": "bcd_device", "x-displayname": "BCD Device.", "x-ves-example": "5.05", "x-f5xc-example": "5.05", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "bcd_usb": { "type": "string", "description": "USB Specification Release Number.", "title": "bcd_usb", "x-displayname": "BCD Spec", "x-ves-example": "2.0", "x-f5xc-example": "2.0", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "bus": { "type": "integer", "description": "The bus on which the device was detected in decimal.", "title": "bus", "format": "int64", "x-displayname": "Bus", "x-ves-example": "1", "x-f5xc-example": "1", "x-f5xc-description-short": "The bus on which the device was detected in decimal.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "description": { "type": "string", "description": "Device description.", "title": "description", "x-displayname": "Description.", "x-ves-example": "NetVista Full Width Keyboard (IBM Corp.)", "x-f5xc-example": "NetVista Full Width Keyboard (IBM Corp.)", "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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "i_manufacturer": { "type": "string", "description": "Manufacturer name.", "title": "i_manufacturer", "x-displayname": "Manufacturer.", "x-ves-example": "Voltera", "x-f5xc-example": "Voltera", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "i_product": { "type": "string", "description": "Product name reported by device.", "title": "i_product", "x-displayname": "Device product.", "x-ves-example": "XHCI Host Controller.", "x-f5xc-example": "xHCI Host Controller", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "i_serial": { "type": "string", "description": "Index of Serial Number String Descriptor.", "title": "i_serial_number", "x-displayname": "ISerialNumber.", "x-ves-example": "0000:00:14.0.", "x-f5xc-example": "0000:00:14.0", "x-f5xc-description-short": "Index of Serial Number String Descriptor.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "id_product": { "type": "string", "description": "Product ID (Assigned by Manufacturer) in hex.", "title": "id_product", "x-displayname": "Product ID.", "x-ves-example": "0x0002", "x-f5xc-example": "0x0002", "x-f5xc-description-short": "Product ID (Assigned by Manufacturer) in hex.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "id_vendor": { "type": "string", "description": "Vendor ID (Assigned by USB Org) in hex.", "title": "id_vendor", "x-displayname": "Vendor ID", "x-ves-example": "0x1d6b", "x-f5xc-example": "0x1d6b", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "port": { "type": "integer", "description": "Port on which the device was detected in decimal.", "title": "port", "format": "int64", "x-displayname": "Port", "x-ves-example": "3", "x-f5xc-example": "3", "x-f5xc-description-short": "Port on which the device was detected in decimal.", "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-08-20T09:12:47+00:00" }, "deterministic": true }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "product_name": { "type": "string", "description": "Product ID translated to name (if available)", "title": "product_name", "x-displayname": "Product name.", "x-ves-example": "NetVista Full Width Keyboard.", "x-f5xc-example": "NetVista Full Width Keyboard", "x-f5xc-description-short": "Product ID translated to name (if available).", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "speed": { "type": "string", "description": "The negotiated operating speed for the device.", "title": "speed", "x-displayname": "Speed", "x-ves-example": "High", "x-f5xc-example": "high", "x-f5xc-description-short": "The negotiated operating speed for the device.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "usb_type": { "allOf": [ { "$ref": "#/components/schemas/siteUsbType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "vendor_name": { "type": "string", "description": "Vendor ID translated to name (if available)", "title": "vendor_name", "x-displayname": "Vendor name.", "x-ves-example": "IBM Corp.", "x-f5xc-example": "IBM Corp.", "x-f5xc-description-short": "Vendor ID translated to name (if available).", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for siteUSBDevice", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for siteUSBDevice\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "siteUsbType": { "type": "string", "description": "Type of USB device\n\nUnknown USB device type\nInternal USB present in Certified HW\nUSB device present during node registration\nUSB device that can be matched by USB rules.", "title": "UsbType", "enum": [ "UNKNOWN_USB", "INTERNAL", "REGISTERED", "CONFIGURABLE" ], "default": "UNKNOWN_USB", "x-displayname": "USB Type", "x-ves-proto-enum": "ves.io.schema.site.UsbType", "x-f5xc-description-short": "Type of USB device Unknown USB device type Internal USB present in Certified HW USB device present during node registration USB device that can be...", "x-f5xc-description-medium": "Type of USB device Unknown USB device type Internal USB present in Certified HW USB device present during node registration USB device that can be matched by USB rules.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for siteUsbType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for siteUsbType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "usb_policyCreateRequest": { "type": "object", "description": "This is the input message of the 'Create' RPC.", "title": "CreateRequest is used to create an instance of usb_policy", "x-displayname": "Create Request.", "x-ves-proto-message": "ves.io.schema.usb_policy.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/usb_policyCreateSpecType" } ], "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 usb_policyCreateRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for usb_policyCreateRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "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" } } }, "usb_policyCreateResponse": { "type": "object", "x-ves-proto-message": "ves.io.schema.usb_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/usb_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 usb_policyCreateResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for usb_policyCreateResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "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" } } }, "usb_policyCreateSpecType": { "type": "object", "description": "Creates a new USB policy object.", "title": "Create USB policy", "x-displayname": "Create USB policy.", "x-ves-proto-message": "ves.io.schema.usb_policy.CreateSpecType", "properties": { "allowed_devices": { "type": "array", "description": "List of allowed USB devices.", "minItems": 1, "maxItems": 32, "items": { "$ref": "#/components/schemas/usb_policyRule" }, "x-displayname": "Allowed USB devices.", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.repeated.items.message.required_one_nonzero_field": "true", "ves.io.schema.rules.repeated.max_items": "32", "ves.io.schema.rules.repeated.min_items": "1" }, "x-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.repeated.items.message.required_one_nonzero_field": "true", "ves.io.schema.rules.repeated.max_items": "32", "ves.io.schema.rules.repeated.min_items": "1" }, "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "minItems": 1, "maxItems": 32, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for usb_policyCreateSpecType", "required_fields": [ "allowed_devices" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for usb_policyCreateSpecType\nmetadata:\n name: example\n namespace: default\nspec:\n allowed_devices: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"allowed_devices\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-field-examples": { "spec.allowed_devices": "value" }, "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" } } }, "usb_policyDeleteRequest": { "type": "object", "description": "This is the input message of the 'DELETE' RPC.", "title": "DeleteRequest is used to delete a usb_policy", "x-displayname": "DELETE Request.", "x-ves-proto-message": "ves.io.schema.usb_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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for usb_policyDeleteRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for usb_policyDeleteRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "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" } } }, "usb_policyGetResponse": { "type": "object", "description": "This is the output message of the 'GET' RPC.", "title": "GetResponse is the shape of a read usb_policy", "x-displayname": "GET Response.", "x-ves-proto-message": "ves.io.schema.usb_policy.GetResponse", "properties": { "create_form": { "allOf": [ { "$ref": "#/components/schemas/usb_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/usb_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/usb_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/usb_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-08-20T09:12:47+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 usb_policyGetResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for usb_policyGetResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "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" } } }, "usb_policyGetSpecType": { "type": "object", "description": "GET the USB policy object.", "title": "Get USB policy", "x-displayname": "GET USB policy.", "x-ves-proto-message": "ves.io.schema.usb_policy.GetSpecType", "properties": { "allowed_devices": { "type": "array", "description": "List of allowed USB devices.", "minItems": 1, "maxItems": 32, "items": { "$ref": "#/components/schemas/usb_policyRule" }, "x-displayname": "Allowed USB devices.", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.repeated.items.message.required_one_nonzero_field": "true", "ves.io.schema.rules.repeated.max_items": "32", "ves.io.schema.rules.repeated.min_items": "1" }, "x-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.repeated.items.message.required_one_nonzero_field": "true", "ves.io.schema.rules.repeated.max_items": "32", "ves.io.schema.rules.repeated.min_items": "1" }, "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "minItems": 1, "maxItems": 32, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for usb_policyGetSpecType", "required_fields": [ "allowed_devices" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for usb_policyGetSpecType\nmetadata:\n name: example\n namespace: default\nspec:\n allowed_devices: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"allowed_devices\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "ce_management", "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" } } }, "usb_policyListResponse": { "type": "object", "description": "This is the output message of 'List' RPC.", "title": "ListResponse is the collection of usb_policy", "x-displayname": "List Response.", "x-ves-proto-message": "ves.io.schema.usb_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/usb_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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for usb_policyListResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for usb_policyListResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "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" } } }, "usb_policyListResponseItem": { "type": "object", "description": "By default a summary of usb_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 usb_policy", "x-displayname": "List Item", "x-ves-proto-message": "ves.io.schema.usb_policy.ListResponseItem", "properties": { "annotations": { "type": "object", "description": "The set of annotations present on this usb_policy.", "title": "annotations", "x-displayname": "Annotations.", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "The set of annotations present on this usb_policy.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "description": { "type": "string", "description": "The description set for this usb_policy.", "title": "description", "x-displayname": "Description.", "x-f5xc-description-short": "The description set for this usb_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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "disabled": { "type": "boolean", "description": "A value of true indicates usb_policy is administratively disabled.", "title": "disabled", "format": "boolean", "x-displayname": "Disabled", "x-f5xc-example": "True", "x-f5xc-description-short": "Value of true indicates usb_policy is administratively disabled.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "get_spec": { "allOf": [ { "$ref": "#/components/schemas/usb_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 usb_policy.", "title": "labels", "x-displayname": "Labels", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "The set of labels present on this usb_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 usb_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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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/usb_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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "uid": { "type": "string", "description": "The unique uid of this usb_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-08-20T09:12:47+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-08-20T09:12:47+00:00" } }, "x-f5xc-description-short": "By default a summary of usb_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 usb_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 usb_policyListResponseItem", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for usb_policyListResponseItem\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "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" } } }, "usb_policyReplaceRequest": { "type": "object", "description": "This is the input message of the 'Replace' RPC.", "title": "ReplaceRequest is used to replace contents of a usb_policy", "x-displayname": "Replace Request.", "x-ves-proto-message": "ves.io.schema.usb_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/usb_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": "Minimum configuration for usb_policyReplaceRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for usb_policyReplaceRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "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" } } }, "usb_policyReplaceResponse": { "type": "object", "x-ves-proto-message": "ves.io.schema.usb_policy.ReplaceResponse", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for usb_policyReplaceResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for usb_policyReplaceResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "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" } } }, "usb_policyReplaceSpecType": { "type": "object", "description": "Replaces the content of an USB policy object.", "title": "Replace USB policy", "x-displayname": "Replace USB policy.", "x-ves-proto-message": "ves.io.schema.usb_policy.ReplaceSpecType", "properties": { "allowed_devices": { "type": "array", "description": "List of allowed USB devices.", "minItems": 1, "maxItems": 32, "items": { "$ref": "#/components/schemas/usb_policyRule" }, "x-displayname": "Allowed USB devices.", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.repeated.items.message.required_one_nonzero_field": "true", "ves.io.schema.rules.repeated.max_items": "32", "ves.io.schema.rules.repeated.min_items": "1" }, "x-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.repeated.items.message.required_one_nonzero_field": "true", "ves.io.schema.rules.repeated.max_items": "32", "ves.io.schema.rules.repeated.min_items": "1" }, "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "minItems": 1, "maxItems": 32, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } } }, "x-f5xc-description-short": "Replaces the content of an USB policy object.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for usb_policyReplaceSpecType", "required_fields": [ "allowed_devices" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for usb_policyReplaceSpecType\nmetadata:\n name: example\n namespace: default\nspec:\n allowed_devices: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"allowed_devices\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "ce_management", "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" } } }, "usb_policyRule": { "type": "object", "description": "USB Enablement Rule.", "title": "Rule", "x-displayname": "USB Enablement Rule.", "x-ves-proto-message": "ves.io.schema.usb_policy.Rule", "properties": { "b_device_class": { "type": "string", "description": "The class of this device.", "title": "b_device_class", "x-displayname": "Class", "x-ves-example": "Hub", "x-f5xc-example": "hub", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "b_device_protocol": { "type": "string", "description": "The protocol (within the sub-class) of this device.", "title": "b_device_protocol", "x-displayname": "Protocol", "x-ves-example": "0002", "x-f5xc-example": "0002", "x-f5xc-description-short": "The protocol (within the sub-class) of this device.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "b_device_sub_class": { "type": "string", "description": "The sub-class (within the class) of this device.", "title": "b_device_sub_class", "x-displayname": "Subclass", "x-ves-example": "Hub", "x-f5xc-example": "hub", "x-f5xc-description-short": "The sub-class (within the class) of this device.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "i_serial": { "type": "string", "description": "Index of Serial Number String Descriptor.", "title": "i_serial_number", "x-displayname": "ISerialNumber.", "x-ves-example": "0000:00:14.0.", "x-f5xc-example": "0000:00:14.0", "x-f5xc-description-short": "Index of Serial Number String Descriptor.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "id_product": { "type": "string", "description": "Product ID (Assigned by Manufacturer) in hex.", "title": "id_product", "x-displayname": "Product ID.", "x-ves-example": "0x0002", "x-f5xc-example": "0x0002", "x-f5xc-description-short": "Product ID (Assigned by Manufacturer) in hex.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "id_vendor": { "type": "string", "description": "Vendor ID (Assigned by USB Org) in hex.", "title": "id_vendor", "x-displayname": "Vendor ID", "x-ves-example": "0x1d6b", "x-f5xc-example": "0x1d6b", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for usb_policyRule", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for usb_policyRule\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "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" } } }, "usb_policyStatusObject": { "type": "object", "description": "Most recently observed status of object.", "title": "USB policy Status", "x-displayname": "Status Object.", "x-ves-proto-message": "ves.io.schema.usb_policy.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 usb_policyStatusObject", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for usb_policyStatusObject\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "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" } } }, "schemaupgrade_statusGlobalSpecType": { "type": "object", "title": "Shape of the status specification", "x-displayname": "Global Specification.", "x-ves-proto-message": "ves.io.schema.upgrade_status.GlobalSpecType", "properties": { "sw_upgrade_progress": { "allOf": [ { "$ref": "#/components/schemas/upgrade_statusSWUpgradeProgress" } ], "x-f5xc-description-short": "Configuration parameter for sw upgrade progress.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for schemaupgrade_statusGlobalSpecType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemaupgrade_statusGlobalSpecType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "upgrade_statusApplicationObj": { "type": "object", "description": "ApplicationObj shows the upgrade status of each object in a application in either site/node level upgrades.", "title": "ApplicationObj", "x-displayname": "Application Object.", "x-ves-proto-message": "ves.io.schema.upgrade_status.ApplicationObj", "properties": { "conditions": { "type": "array", "title": "x-displayName: \"Conditions\"\nname of object", "items": { "$ref": "#/components/schemas/upgrade_statusCondition" }, "description": "Configuration parameter for conditions", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "debug": { "type": "string", "title": "x-displayName: \"Name\"\ndebug? TODO: What is this, reference maurice deployment status object", "description": "Configuration parameter for debug", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "deploy_strategy": { "type": "string", "title": "x-displayName: \"Deploy Strategy\"\nDeployment strategy of object", "description": "Configuration parameter for deploy strategy", "x-f5xc-description-short": "Configuration parameter for deploy strategy.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "kind": { "type": "string", "title": "x-displayName: \"Kind\"\nKubernetes object kind", "description": "Resource type or kind", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "name": { "type": "string", "title": "x-displayName: \"Name\"\nname of object", "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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" } }, "x-f5xc-description-short": "ApplicationObj shows the upgrade status of each object in a application in either site/node level upgrades.", "x-f5xc-description-medium": "ApplicationObj shows the upgrade status of each object in a application in either site/node level upgrades.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for upgrade_statusApplicationObj", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for upgrade_statusApplicationObj\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "upgrade_statusChecklist": { "type": "object", "x-ves-proto-message": "ves.io.schema.upgrade_status.Checklist", "properties": { "item": { "type": "string", "description": "Description of the checklist item.", "title": "item", "x-displayname": "Item", "x-ves-example": "Node Failures.", "x-f5xc-example": "Node Failures", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "minLength": 15, "x-reconciled-from-discovery": true, "x-reconciled-at": "2026-08-20T09:12:47+00:00" }, "reason": { "type": "string", "description": "Reason for error.", "title": "reason", "x-displayname": "Reason", "x-ves-example": "Could not reach one of the nodes.", "x-f5xc-example": "Could not reach one of the nodes.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "status": { "allOf": [ { "$ref": "#/components/schemas/upgrade_statusChecklistStatus" } ], "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-08-20T09:12:47+00:00" } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for upgrade_statusChecklist", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for upgrade_statusChecklist\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "upgrade_statusChecklistStatus": { "type": "string", "description": "Upgrade check is unknown, likely backend issue where it cannot be determined.\nUpgrade check has passed.\nUpgrade check has failed.\nUpgrade check reports warning, but permissible.", "enum": [ "CHECKLIST_UNKNOWN", "CHECKLIST_PASSED", "CHECKLIST_FAILED", "CHECKLIST_WARNING" ], "default": "CHECKLIST_UNKNOWN", "x-displayname": "", "x-ves-proto-enum": "ves.io.schema.upgrade_status.ChecklistStatus", "x-f5xc-description-short": "Upgrade check is unknown, likely backend issue where it cannot be determined. Upgrade check has passed.", "x-f5xc-description-medium": "Upgrade check is unknown, likely backend issue where it cannot be determined. Upgrade check has passed. Upgrade check has failed. Upgrade check reports warning, but permissible.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for upgrade_statusChecklistStatus", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for upgrade_statusChecklistStatus\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "upgrade_statusCondition": { "type": "object", "description": "Condition of object in each phase of installation.", "title": "Condition", "x-displayname": "Condition", "x-ves-proto-message": "ves.io.schema.upgrade_status.Condition", "properties": { "message": { "type": "string", "description": "Message of action.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "result": { "type": "string", "description": "Result of action, i.e. Success etc.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "type": { "type": "string", "title": "x-displayName: \"Type\"\nType of action to was applied with object, i.e. load, apply, running, status", "description": "Type or category classification", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Condition of object in each phase of installation.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for upgrade_statusCondition", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for upgrade_statusCondition\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "upgrade_statusGetUpgradableSWVersionsResponse": { "type": "object", "description": "Response to GET the list of upgradable sw versions.", "title": "GetUpgradableSWVersionsResponse", "x-displayname": "GET upgradable sw versions response.", "x-ves-proto-message": "ves.io.schema.upgrade_status.GetUpgradableSWVersionsResponse", "properties": { "sw_versions": { "type": "array", "description": "Fetch upgradable sw versions for site.", "title": "sw_versions", "items": { "type": "string" }, "x-displayname": "SW Versions.", "x-ves-example": "[\\\"crt-20241107-1123\\\"]", "x-f5xc-example": "\"[\\\"crt-20241107-1123\\\"]\"", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Response to GET the list of upgradable sw versions.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for upgrade_statusGetUpgradableSWVersionsResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for upgrade_statusGetUpgradableSWVersionsResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "upgrade_statusGetUpgradeStatusResponse": { "type": "object", "description": "Response to GET the upgrade status.", "title": "GetUpgradeStatusResponse", "x-displayname": "GET upgrade status response.", "x-ves-proto-message": "ves.io.schema.upgrade_status.GetUpgradeStatusResponse", "properties": { "upgrade_status": { "allOf": [ { "$ref": "#/components/schemas/schemaupgrade_statusGlobalSpecType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for upgrade_statusGetUpgradeStatusResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for upgrade_statusGetUpgradeStatusResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "upgrade_statusImageDownload": { "type": "object", "description": "ImageDownload shows each the entire image download stage.", "title": "ImageDownload", "x-displayname": "Image Download Stage.", "x-ves-proto-message": "ves.io.schema.upgrade_status.ImageDownload", "properties": { "results": { "type": "array", "description": "Results of each node in OS Setup.", "items": { "$ref": "#/components/schemas/upgrade_statusInstallResult" }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "start_timestamp": { "type": "string", "description": "Start timestamp of Image download.", "format": "date-time", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "format": "date-time", "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "status": { "allOf": [ { "$ref": "#/components/schemas/upgrade_statusStatus" } ], "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-08-20T09:12:47+00:00" } }, "x-f5xc-description-short": "ImageDownload shows each the entire image download stage.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for upgrade_statusImageDownload", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for upgrade_statusImageDownload\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "upgrade_statusInstallResult": { "type": "object", "description": "InstallResult shows the result each application/process.", "title": "Install Result", "x-displayname": "Install Result.", "x-ves-proto-message": "ves.io.schema.upgrade_status.InstallResult", "properties": { "message": { "type": "string", "description": "Message of this stage.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "name": { "type": "string", "title": "x-displayName: \"Name\"\nName of this application/process", "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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" }, "status": { "allOf": [ { "$ref": "#/components/schemas/upgrade_statusStatus" } ], "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-08-20T09:12:47+00:00" }, "type": { "type": "string", "title": "x-displayName: \"Type\"\nType of upgrade", "description": "Type or category classification", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "InstallResult shows the result each application/process.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for upgrade_statusInstallResult", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for upgrade_statusInstallResult\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "upgrade_statusNodeLevelUpgrade": { "type": "object", "description": "Node level upgrade shows the upgrades that are happening on a site level as opposed to site level.", "title": "Node Level Upgrade", "x-displayname": "Node Level Upgrade Stage.", "x-ves-proto-message": "ves.io.schema.upgrade_status.NodeLevelUpgrade", "properties": { "results": { "type": "array", "title": "x-displayName: \"Results\"\nResults for each stage in site level upgrades", "items": { "$ref": "#/components/schemas/upgrade_statusNodeUpgradeResult" }, "description": "Configuration parameter for results", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "start_timestamp": { "type": "string", "description": "Start timestamp of Image download.", "format": "date-time", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "format": "date-time", "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "status": { "allOf": [ { "$ref": "#/components/schemas/upgrade_statusStatus" } ], "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-08-20T09:12:47+00:00" } }, "x-f5xc-description-short": "Node level upgrade shows the upgrades that are happening on a site level as opposed to site level.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for upgrade_statusNodeLevelUpgrade", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for upgrade_statusNodeLevelUpgrade\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "upgrade_statusNodeUpgradeResult": { "type": "object", "x-ves-proto-message": "ves.io.schema.upgrade_status.NodeUpgradeResult", "properties": { "name": { "type": "string", "description": "Name of node.", "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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" }, "progress": { "allOf": [ { "$ref": "#/components/schemas/upgrade_statusUpgradeProgressCount" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "results": { "type": "array", "title": "x-displayName: \"Results\"\nResults for each node in node level upgrades", "items": { "$ref": "#/components/schemas/upgrade_statusStageUpgradeResults" }, "description": "Configuration parameter for results", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "status": { "allOf": [ { "$ref": "#/components/schemas/upgrade_statusStatus" } ], "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-08-20T09:12:47+00:00" } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for upgrade_statusNodeUpgradeResult", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for upgrade_statusNodeUpgradeResult\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "upgrade_statusOSNodeResult": { "type": "object", "description": "OSNodeResult shows the result of OS upgrade for each node.", "title": "OSNodeResult", "x-displayname": "OS Node Result.", "x-ves-proto-message": "ves.io.schema.upgrade_status.OSNodeResult", "properties": { "name": { "type": "string", "description": "Name of node.", "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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" }, "results": { "type": "array", "description": "Result of each component in each node.", "items": { "$ref": "#/components/schemas/upgrade_statusInstallResult" }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "status": { "allOf": [ { "$ref": "#/components/schemas/upgrade_statusStatus" } ], "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-08-20T09:12:47+00:00" } }, "x-f5xc-description-short": "OSNodeResult shows the result of OS upgrade for each node.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for upgrade_statusOSNodeResult", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for upgrade_statusOSNodeResult\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "upgrade_statusOSSetup": { "type": "object", "description": "OSSetup shows the OS Setup stage.", "title": "OSSetup", "x-displayname": "OS Setup Stage.", "x-ves-proto-message": "ves.io.schema.upgrade_status.OSSetup", "properties": { "results": { "type": "array", "description": "Results of each node in OS Setup.", "items": { "$ref": "#/components/schemas/upgrade_statusOSNodeResult" }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "start_timestamp": { "type": "string", "description": "Start timestamp of OS setup.", "format": "date-time", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "format": "date-time", "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "status": { "allOf": [ { "$ref": "#/components/schemas/upgrade_statusStatus" } ], "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-08-20T09:12:47+00:00" } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for upgrade_statusOSSetup", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for upgrade_statusOSSetup\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "upgrade_statusPreUpgradeCheckResponse": { "type": "object", "description": "Result of pre upgrade checks.", "title": "GetUpgradableSWVersionsResponse", "x-displayname": "Pre upgrade check response.", "x-ves-proto-message": "ves.io.schema.upgrade_status.PreUpgradeCheckResponse", "properties": { "checklist": { "type": "array", "description": "Checklist containing the items for pre upgrade check.", "title": "checklist", "items": { "$ref": "#/components/schemas/upgrade_statusChecklist" }, "x-displayname": "Checklist", "x-f5xc-description-short": "Checklist containing the items for pre upgrade check.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for upgrade_statusPreUpgradeCheckResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for upgrade_statusPreUpgradeCheckResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "upgrade_statusSWUpgradeProgress": { "type": "object", "description": "SWStatus stores information about CE Site upgrade status.", "title": "SW Upgrade status information", "x-displayname": "Software Upgrade Status Information.", "x-ves-proto-message": "ves.io.schema.upgrade_status.SWUpgradeProgress", "properties": { "failure_reason": { "type": "string", "description": "Reason for failure.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "image_download": { "allOf": [ { "$ref": "#/components/schemas/upgrade_statusImageDownload" } ], "x-f5xc-description-short": "Configuration parameter for image download.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "node_level_upgrade": { "allOf": [ { "$ref": "#/components/schemas/upgrade_statusNodeLevelUpgrade" } ], "x-f5xc-description-short": "Configuration parameter for node level upgrade.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "os_setup": { "allOf": [ { "$ref": "#/components/schemas/upgrade_statusOSSetup" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "retries": { "type": "integer", "description": "Number of retries that has been issued.", "format": "int32", "x-f5xc-constraints": { "constraintType": "number", "category": "resilience", "minimum": 0, "maximum": 10, "multipleOf": 1, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "site": { "type": "string", "description": "Site for this upgrade status, assigned after status is assigned to site.", "x-f5xc-description-short": "Site for this upgrade status, assigned after status is assigned to site.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "site_level_upgrade": { "allOf": [ { "$ref": "#/components/schemas/upgrade_statusSiteLevelUpgrade" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "status": { "allOf": [ { "$ref": "#/components/schemas/upgrade_statusStatus" } ], "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-08-20T09:12:47+00:00" }, "validation": { "allOf": [ { "$ref": "#/components/schemas/upgrade_statusValidation" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "version": { "type": "string", "description": "Version that software is upgrading to.", "x-f5xc-example": "v1.2.3", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "minLength": 1, "x-reconciled-from-discovery": true, "x-reconciled-at": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-description-short": "SWStatus stores information about CE Site upgrade status.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for upgrade_statusSWUpgradeProgress", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for upgrade_statusSWUpgradeProgress\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "upgrade_statusSiteLevelUpgrade": { "type": "object", "description": "Site level upgrade shows the upgrades that are happening on a site level as opposed to node level.", "title": "Site Level Upgrade", "x-displayname": "Site Level Upgrade Stage.", "x-ves-proto-message": "ves.io.schema.upgrade_status.SiteLevelUpgrade", "properties": { "progress": { "allOf": [ { "$ref": "#/components/schemas/upgrade_statusUpgradeProgressCount" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "results": { "type": "array", "title": "x-displayName: \"Results\"\nResults for each stage in site level upgrades", "items": { "$ref": "#/components/schemas/upgrade_statusStageUpgradeResults" }, "description": "Configuration parameter for results", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "start_timestamp": { "type": "string", "description": "Start timestamp of Image download.", "format": "date-time", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "format": "date-time", "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "status": { "allOf": [ { "$ref": "#/components/schemas/upgrade_statusStatus" } ], "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-08-20T09:12:47+00:00" } }, "x-f5xc-description-short": "Site level upgrade shows the upgrades that are happening on a site level as opposed to node level.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for upgrade_statusSiteLevelUpgrade", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for upgrade_statusSiteLevelUpgrade\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "upgrade_statusStageApplication": { "type": "object", "description": "StageApplication shows the upgrade status of each application in either site/node level upgrades.", "title": "StageApplication", "x-displayname": "Stage Application.", "x-ves-proto-message": "ves.io.schema.upgrade_status.StageApplication", "properties": { "name": { "type": "string", "description": "Name of stage.", "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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" }, "objects": { "type": "array", "title": "x-displayName: \"objects\"\nStatus of application objects in each application", "items": { "$ref": "#/components/schemas/upgrade_statusApplicationObj" }, "description": "Configuration parameter for objects", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "status": { "allOf": [ { "$ref": "#/components/schemas/upgrade_statusStatus" } ], "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-08-20T09:12:47+00:00" } }, "x-f5xc-description-short": "StageApplication shows the upgrade status of each application in either site/node level upgrades.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for upgrade_statusStageApplication", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for upgrade_statusStageApplication\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "upgrade_statusStageUpgradeResults": { "type": "object", "description": "SiteLevelStageUpgradeResults shows the upgrade status of each stage and applications within the stage.", "title": "SiteLevelStageUpgradeResults", "x-displayname": "Site Level Stage Upgrade Results.", "x-ves-proto-message": "ves.io.schema.upgrade_status.StageUpgradeResults", "properties": { "applications": { "type": "array", "title": "x-displayName: \"Applications\"\nStatus of application objects in each application", "items": { "$ref": "#/components/schemas/upgrade_statusStageApplication" }, "description": "Configuration parameter for applications", "x-f5xc-description-short": "Configuration parameter for applications.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "name": { "type": "string", "description": "Name of stage.", "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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" }, "status": { "allOf": [ { "$ref": "#/components/schemas/upgrade_statusStatus" } ], "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-08-20T09:12:47+00:00" } }, "x-f5xc-description-short": "SiteLevelStageUpgradeResults shows the upgrade status of each stage and applications within the stage.", "x-f5xc-description-medium": "SiteLevelStageUpgradeResults shows the upgrade status of each stage and applications within the stage.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for upgrade_statusStageUpgradeResults", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for upgrade_statusStageUpgradeResults\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "upgrade_statusStatus": { "type": "string", "description": "Displays upgrade status for each section of the upgrade.\n\nUpgrade is scheduled but not started\nUpgrade is scheduled but not started\nUpgrade is in progress\nUpgrade has completed\nUpgrade has failed.\nUpgrade for this stage is skipped.", "title": "Upgrade status types", "enum": [ "UNKNOWN", "SCHEDULED", "IN_PROGRESS", "COMPLETED", "FAILED", "SKIPPED" ], "default": "UNKNOWN", "x-displayname": "Upgrade Status.", "x-ves-proto-enum": "ves.io.schema.upgrade_status.Status", "x-f5xc-description-short": "Displays upgrade status for each section of the upgrade.", "x-f5xc-description-medium": "Displays upgrade status for each section of the upgrade. Upgrade is scheduled but not started Upgrade is scheduled but not started Upgrade is in progress Upgrade has completed Upgrade has failed. Upgrade for this stage is skipped.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for upgrade_statusStatus", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for upgrade_statusStatus\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "upgrade_statusUpgradeProgressCount": { "type": "object", "description": "UpgradeProgressCount counts the total and completed apps that have been upgraded.", "title": "UpgradeProgressCount", "x-displayname": "Upgrade progress count.", "x-ves-proto-message": "ves.io.schema.upgrade_status.UpgradeProgressCount", "properties": { "completed": { "type": "integer", "description": "Number of apps that have been upgraded within a level.", "format": "int32", "x-f5xc-description-short": "Number of apps that have been upgraded within a level.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "total": { "type": "integer", "description": "Total number of apps to upgrade.", "format": "int32", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "UpgradeProgressCount counts the total and completed apps that have been upgraded.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for upgrade_statusUpgradeProgressCount", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for upgrade_statusUpgradeProgressCount\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "upgrade_statusValidation": { "type": "object", "description": "Validation represents the last stage in the upgrade phase, checking if everything has been upgraded properly.", "title": "Validation", "x-displayname": "Validation stage.", "x-ves-proto-message": "ves.io.schema.upgrade_status.Validation", "properties": { "results": { "type": "array", "description": "String of messages from validation stage.", "items": { "type": "string" }, "x-f5xc-description-short": "String of messages from validation stage.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "start_timestamp": { "type": "string", "description": "Start timestamp of Image download.", "format": "date-time", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "format": "date-time", "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "status": { "allOf": [ { "$ref": "#/components/schemas/upgrade_statusStatus" } ], "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-08-20T09:12:47+00:00" } }, "x-f5xc-description-short": "Validation represents the last stage in the upgrade phase, checking if everything has been upgraded properly.", "x-f5xc-description-medium": "Validation represents the last stage in the upgrade phase, checking if everything has been upgraded properly.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for upgrade_statusValidation", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for upgrade_statusValidation\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Fleet management is platform-level orchestration" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } } }, "responses": {}, "parameters": {}, "requestBodies": {} } }, "certificates": { "openapi": "3.0.3", "info": { "title": "Certificates", "description": "X.509 certificate chains with intermediate and root CA support. Trusted CA list bundles for client authentication and mTLS validation. CRL distribution points and OCSP stapling configuration. Certificate manifests link credentials to load balancers and gateways. Automatic expiration tracking and renewal notifications.", "version": "4.0.0", "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": "X.509 certificate chains with intermediate and root CA support. Trusted CA list bundles for client authentication and mTLS validation. CRL distribution points and OCSP stapling configuration. Certificate manifests link credentials to load balancers and gateways. Automatic expiration tracking and renewal notifications.", "x-f5xc-summary": "Certificate chains and trusted CA bundles. Revocation list management and manifest configuration for PKI operations.", "x-f5xc-cli-domain": "certificates", "externalDocs": { "url": "https://docs.cloud.f5.com/docs/how-to/app-security/tls-certificates", "description": "F5 XC Documentation - Certificate Management" }, "x-f5xc-api-reference-url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/certificates/", "x-f5xc-best-practices": { "common_errors": [ { "code": 400, "message": "Certificate chain incomplete", "resolution": "Include intermediate certificates in chain", "prevention": "Validate certificate chain before upload" }, { "code": 400, "message": "Private key mismatch", "resolution": "Ensure private key matches certificate", "prevention": "Verify key-cert pair before upload" }, { "code": 400, "message": "Certificate expired", "resolution": "Renew certificate and upload new version", "prevention": "Set up certificate expiry monitoring" } ], "security_notes": [ "Use certificates with at least 2048-bit RSA or 256-bit ECDSA keys", "Enable OCSP stapling for revocation checking", "Configure certificate transparency logging", "Use separate certificates for different environments" ], "performance_tips": [ "Use ECDSA certificates for faster TLS handshakes", "Enable session resumption for repeat visitors", "Configure OCSP stapling to reduce client latency" ] }, "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Certificate revocation lists should be centralized" }, "classification": { "category": "certificate", "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": "config" } ], "paths": { "/api/config/namespaces/{metadata.namespace}/crls": { "post": { "summary": "Create CRL.", "description": "API to create CRL object.", "operationId": "ves.io.schema.crl.API.Create", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/crlCreateResponse" } } } }, "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/crlCreateRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/certificates/" }, "x-ves-proto-rpc": "ves.io.schema.crl.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": [ "Crl resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "crl" ] }, "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": [ "crl" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "CRL", "x-ves-proto-service": "ves.io.schema.crl.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{metadata.namespace}/crls/{metadata.name}": { "put": { "summary": "Replace CRL.", "description": "API to replace CRL object.", "operationId": "ves.io.schema.crl.API.Replace", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/crlReplaceResponse" } } } }, "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/crlReplaceRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/certificates/" }, "x-ves-proto-rpc": "ves.io.schema.crl.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": [ "crl" ] }, "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": [ "crl" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 800, "p95_ms": 2500, "p99_ms": 6000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "CRL", "x-ves-proto-service": "ves.io.schema.crl.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{namespace}/crls": { "get": { "summary": "List CRL", "description": "List the set of CRL in a namespace.", "operationId": "ves.io.schema.crl.API.List", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/crlListResponse" } } } }, "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 CRL.", "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/certificates/" }, "x-ves-proto-rpc": "ves.io.schema.crl.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": "CRL", "x-ves-proto-service": "ves.io.schema.crl.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{namespace}/crls/{name}": { "get": { "summary": "GET CRL", "description": "API to GET CRL.", "operationId": "ves.io.schema.crl.API.Get", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/crlGetResponse" } } } }, "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/certificates/" }, "x-ves-proto-rpc": "ves.io.schema.crl.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 CRL.", "description": "DELETE the specified CRL.", "operationId": "ves.io.schema.crl.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/crlDeleteRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/certificates/" }, "x-ves-proto-rpc": "ves.io.schema.crl.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": [ "crl", "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": [ "crl", "contained_resources" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 500, "p95_ms": 1500, "p99_ms": 4000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "CRL", "x-ves-proto-service": "ves.io.schema.crl.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{metadata.namespace}/certificates": { "post": { "summary": "Create Certificate.", "description": "Shape of the Certificate specification.", "operationId": "ves.io.schema.certificate.API.Create", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/certificateCreateResponse" } } } }, "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/certificateCreateRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/certificates/" }, "x-ves-proto-rpc": "ves.io.schema.certificate.API.Create", "tags": [ "config" ], "x-f5xc-operation-metadata": { "purpose": "TLS/SSL certificate for secure connections", "required_fields": [ "metadata.name", "metadata.namespace", "path.metadata.namespace" ], "optional_fields": [], "field_docs": {}, "conditions": { "prerequisites": [ "Active namespace", "Certificate file or data" ], "postconditions": [ "Certificate resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "certificate" ] }, "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": [ "certificate" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "Certificate.", "x-ves-proto-service": "ves.io.schema.certificate.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{metadata.namespace}/certificates/{metadata.name}": { "put": { "summary": "Replace Certificate.", "description": "Shape of the Certificate specification.", "operationId": "ves.io.schema.certificate.API.Replace", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/certificateReplaceResponse" } } } }, "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/certificateReplaceRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/certificates/" }, "x-ves-proto-rpc": "ves.io.schema.certificate.API.Replace", "tags": [ "config" ], "x-f5xc-operation-metadata": { "purpose": "TLS/SSL certificate for secure connections", "required_fields": [ "path.metadata.name", "path.metadata.namespace" ], "optional_fields": [], "field_docs": {}, "conditions": { "prerequisites": [ "Active namespace", "Certificate file or data" ], "postconditions": [ "Resource updated with new values" ] }, "side_effects": { "modifies": [ "certificate" ] }, "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": [ "certificate" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 800, "p95_ms": 2500, "p99_ms": 6000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "Certificate.", "x-ves-proto-service": "ves.io.schema.certificate.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{namespace}/certificates": { "get": { "summary": "List Certificate.", "description": "List the set of certificate in a namespace.", "operationId": "ves.io.schema.certificate.API.List", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/certificateListResponse" } } } }, "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 certificate.", "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/certificates/" }, "x-ves-proto-rpc": "ves.io.schema.certificate.API.List", "tags": [ "config" ], "x-f5xc-operation-metadata": { "purpose": "TLS/SSL certificate for secure connections", "required_fields": [ "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.namespace" ], "x-f5xc-danger-level": "low", "x-discovered-response-time-ms": 159.59, "x-discovered-sample-size": 1, "x-f5xc-discovered-response-time": { "p50_ms": 159.59, "p95_ms": 319.18, "p99_ms": 478.77, "sample_count": 1, "source": "discovery", "last_measured": "2025-12-20T19:39:20.211392+00:00" } }, "x-displayname": "Certificate.", "x-ves-proto-service": "ves.io.schema.certificate.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{namespace}/certificates/{name}": { "get": { "summary": "GET Certificate.", "description": "Shape of the Certificate specification.", "operationId": "ves.io.schema.certificate.API.Get", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/certificateGetResponse" } } } }, "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/certificates/" }, "x-ves-proto-rpc": "ves.io.schema.certificate.API.Get", "tags": [ "config" ], "x-f5xc-operation-metadata": { "purpose": "TLS/SSL certificate for secure connections", "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": "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 Certificate.", "description": "DELETE the specified certificate.", "operationId": "ves.io.schema.certificate.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/certificateDeleteRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/certificates/" }, "x-ves-proto-rpc": "ves.io.schema.certificate.API.Delete", "tags": [ "config" ], "x-f5xc-operation-metadata": { "purpose": "TLS/SSL certificate for secure connections", "required_fields": [ "path.name", "path.namespace" ], "optional_fields": [], "field_docs": {}, "conditions": { "prerequisites": [ "Active namespace", "Certificate file or data" ], "postconditions": [ "Resource removed from system", "Associated resources may be affected" ] }, "side_effects": { "deletes": [ "certificate", "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": [ "certificate", "contained_resources" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 500, "p95_ms": 1500, "p99_ms": 4000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "Certificate.", "x-ves-proto-service": "ves.io.schema.certificate.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{metadata.namespace}/certificate_chains": { "post": { "summary": "Create Certificate Chain.", "description": "Shape of the Certificate Chain specification.", "operationId": "ves.io.schema.certificate_chain.API.Create", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/certificate_chainCreateResponse" } } } }, "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/certificate_chainCreateRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/certificates/" }, "x-ves-proto-rpc": "ves.io.schema.certificate_chain.API.Create", "tags": [ "config" ], "x-f5xc-operation-metadata": { "purpose": "TLS/SSL certificate management", "required_fields": [ "metadata.name", "metadata.namespace", "path.metadata.namespace" ], "optional_fields": [], "field_docs": {}, "conditions": { "prerequisites": [ "Active namespace", "Certificate file or data" ], "postconditions": [ "Certificate-chain resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "certificate-chain" ] }, "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": [ "certificate-chain" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "Certificate Chain.", "x-ves-proto-service": "ves.io.schema.certificate_chain.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{metadata.namespace}/certificate_chains/{metadata.name}": { "put": { "summary": "Replace Certificate Chain.", "description": "Shape of the Certificate Chain specification.", "operationId": "ves.io.schema.certificate_chain.API.Replace", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/certificate_chainReplaceResponse" } } } }, "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/certificate_chainReplaceRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/certificates/" }, "x-ves-proto-rpc": "ves.io.schema.certificate_chain.API.Replace", "tags": [ "config" ], "x-f5xc-operation-metadata": { "purpose": "TLS/SSL certificate management", "required_fields": [ "path.metadata.name", "path.metadata.namespace" ], "optional_fields": [], "field_docs": {}, "conditions": { "prerequisites": [ "Active namespace", "Certificate file or data" ], "postconditions": [ "Resource updated with new values" ] }, "side_effects": { "modifies": [ "certificate-chain" ] }, "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": [ "certificate-chain" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 800, "p95_ms": 2500, "p99_ms": 6000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "Certificate Chain.", "x-ves-proto-service": "ves.io.schema.certificate_chain.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{namespace}/certificate_chains": { "get": { "summary": "List Certificate Chain.", "description": "List the set of certificate_chain in a namespace.", "operationId": "ves.io.schema.certificate_chain.API.List", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/certificate_chainListResponse" } } } }, "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 certificate_chain.", "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/certificates/" }, "x-ves-proto-rpc": "ves.io.schema.certificate_chain.API.List", "tags": [ "config" ], "x-f5xc-operation-metadata": { "purpose": "TLS/SSL certificate management", "required_fields": [ "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.namespace" ], "x-f5xc-danger-level": "low", "x-discovered-response-time-ms": 152.78, "x-discovered-sample-size": 1, "x-f5xc-discovered-response-time": { "p50_ms": 152.78, "p95_ms": 305.56, "p99_ms": 458.34, "sample_count": 1, "source": "discovery", "last_measured": "2025-12-20T19:39:20.211392+00:00" } }, "x-displayname": "Certificate Chain.", "x-ves-proto-service": "ves.io.schema.certificate_chain.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{namespace}/certificate_chains/{name}": { "get": { "summary": "GET Certificate Chain.", "description": "Shape of the Certificate Chain specification.", "operationId": "ves.io.schema.certificate_chain.API.Get", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/certificate_chainGetResponse" } } } }, "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/certificates/" }, "x-ves-proto-rpc": "ves.io.schema.certificate_chain.API.Get", "tags": [ "config" ], "x-f5xc-operation-metadata": { "purpose": "TLS/SSL certificate management", "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": "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 Certificate Chain.", "description": "DELETE the specified certificate_chain.", "operationId": "ves.io.schema.certificate_chain.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/certificate_chainDeleteRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/certificates/" }, "x-ves-proto-rpc": "ves.io.schema.certificate_chain.API.Delete", "tags": [ "config" ], "x-f5xc-operation-metadata": { "purpose": "TLS/SSL certificate management", "required_fields": [ "path.name", "path.namespace" ], "optional_fields": [], "field_docs": {}, "conditions": { "prerequisites": [ "Active namespace", "Certificate file or data" ], "postconditions": [ "Resource removed from system", "Associated resources may be affected" ] }, "side_effects": { "deletes": [ "certificate-chain", "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": [ "certificate-chain", "contained_resources" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 500, "p95_ms": 1500, "p99_ms": 4000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "Certificate Chain.", "x-ves-proto-service": "ves.io.schema.certificate_chain.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{metadata.namespace}/trusted_ca_lists": { "post": { "summary": "Create Root CA Certificate.", "description": "Shape of the Root CA Certificate specification.", "operationId": "ves.io.schema.trusted_ca_list.API.Create", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/trusted_ca_listCreateResponse" } } } }, "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/trusted_ca_listCreateRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/certificates/" }, "x-ves-proto-rpc": "ves.io.schema.trusted_ca_list.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": [ "Trusted-ca-list resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "trusted-ca-list" ] }, "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": [ "trusted-ca-list" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "Root CA Certificate.", "x-ves-proto-service": "ves.io.schema.trusted_ca_list.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{metadata.namespace}/trusted_ca_lists/{metadata.name}": { "put": { "summary": "Replace Root CA Certificate.", "description": "Shape of the Root CA Certificate specification.", "operationId": "ves.io.schema.trusted_ca_list.API.Replace", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/trusted_ca_listReplaceResponse" } } } }, "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/trusted_ca_listReplaceRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/certificates/" }, "x-ves-proto-rpc": "ves.io.schema.trusted_ca_list.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": [ "trusted-ca-list" ] }, "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": [ "trusted-ca-list" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 800, "p95_ms": 2500, "p99_ms": 6000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "Root CA Certificate.", "x-ves-proto-service": "ves.io.schema.trusted_ca_list.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{namespace}/trusted_ca_lists": { "get": { "summary": "List Root CA Certificate.", "description": "List the set of trusted_ca_list in a namespace.", "operationId": "ves.io.schema.trusted_ca_list.API.List", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/trusted_ca_listListResponse" } } } }, "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 trusted_ca_list.", "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/certificates/" }, "x-ves-proto-rpc": "ves.io.schema.trusted_ca_list.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": "Root CA Certificate.", "x-ves-proto-service": "ves.io.schema.trusted_ca_list.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{namespace}/trusted_ca_lists/{name}": { "get": { "summary": "GET Root CA Certificate.", "description": "Shape of the Root CA Certificate specification.", "operationId": "ves.io.schema.trusted_ca_list.API.Get", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/trusted_ca_listGetResponse" } } } }, "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/certificates/" }, "x-ves-proto-rpc": "ves.io.schema.trusted_ca_list.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 Root CA Certificate.", "description": "DELETE the specified trusted_ca_list.", "operationId": "ves.io.schema.trusted_ca_list.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/trusted_ca_listDeleteRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/certificates/" }, "x-ves-proto-rpc": "ves.io.schema.trusted_ca_list.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": [ "trusted-ca-list", "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": [ "trusted-ca-list", "contained_resources" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 500, "p95_ms": 1500, "p99_ms": 4000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "Root CA Certificate.", "x-ves-proto-service": "ves.io.schema.trusted_ca_list.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" } }, "components": { "securitySchemes": { "ApiToken": { "type": "apiKey", "name": "Authorization", "in": "header", "description": "API Token authentication. Format: 'APIToken '" }, "apiKeyAuth": { "type": "apiKey", "in": "header", "name": "Authorization", "description": "F5 XC API Token (format: APIToken )" } }, "schemas": { "crlCreateRequest": { "type": "object", "description": "This is the input message of the 'Create' RPC.", "title": "CreateRequest is used to create an instance of crl", "x-displayname": "Create Request.", "x-ves-proto-message": "ves.io.schema.crl.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/crlCreateSpecType" } ], "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 crlCreateRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for crlCreateRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "certificates", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Certificate revocation lists should be centralized" }, "classification": { "category": "certificate", "multi_tenant_pattern": "shared-ref" } } }, "crlCreateResponse": { "type": "object", "x-ves-proto-message": "ves.io.schema.crl.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/crlGetSpecType" } ], "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 crlCreateResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for crlCreateResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "certificates", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Certificate revocation lists should be centralized" }, "classification": { "category": "certificate", "multi_tenant_pattern": "shared-ref" } } }, "crlCreateSpecType": { "type": "object", "description": "API to create CRL object.", "title": "Create CRL", "x-displayname": "Create CRL.", "x-ves-oneof-field-access_info_choice": "[\"http_access\"]", "x-ves-proto-message": "ves.io.schema.crl.CreateSpecType", "properties": { "http_access": { "allOf": [ { "$ref": "#/components/schemas/crlHTTPAccessInfo" } ], "x-f5xc-description-short": "Configuration parameter for http access.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "refresh_interval": { "type": "integer", "description": "CRL refresh interval, in hours.", "format": "int64", "x-displayname": "CRL Refresh interval.", "x-ves-example": "24", "x-ves-validation-rules": { "ves.io.schema.rules.uint32.gte": "6", "ves.io.schema.rules.uint32.lte": "168" }, "x-f5xc-example": "24", "x-validation-rules": { "ves.io.schema.rules.uint32.gte": "6", "ves.io.schema.rules.uint32.lte": "168" }, "x-f5xc-constraints": { "constraintType": "number", "category": "discovery", "minimum": 6, "maximum": 168, "deterministic": true, "metadata": { "source": "api-probed", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "server_address": { "type": "string", "description": "CRL server address or hostname.", "maxLength": 255, "x-displayname": "CRL Server address.", "x-ves-example": "example-crl.it.com.", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.string.hostname_or_ip": "true", "ves.io.schema.rules.string.max_len": "255" }, "x-f5xc-example": "example-crl.it.com", "x-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.string.hostname_or_ip": "true", "ves.io.schema.rules.string.max_len": "255" }, "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 255, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "server_port": { "type": "integer", "description": "Set CRL Server port number.", "format": "int64", "x-displayname": "CRL Server Port.", "x-ves-example": "80", "x-ves-validation-rules": { "ves.io.schema.rules.uint32.gte": "1", "ves.io.schema.rules.uint32.lte": "65535" }, "x-f5xc-example": "80", "x-validation-rules": { "ves.io.schema.rules.uint32.gte": "1", "ves.io.schema.rules.uint32.lte": "65535" }, "x-f5xc-constraints": { "constraintType": "number", "category": "discovery", "minimum": 1, "maximum": 65535, "deterministic": true, "metadata": { "source": "api-probed", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "timeout": { "type": "integer", "description": "CRL download wait time, in seconds.", "format": "int64", "x-displayname": "CRL download timeout.", "x-ves-example": "10", "x-ves-validation-rules": { "ves.io.schema.rules.uint32.gte": "1", "ves.io.schema.rules.uint32.lte": "180" }, "x-f5xc-example": "10", "x-validation-rules": { "ves.io.schema.rules.uint32.gte": "1", "ves.io.schema.rules.uint32.lte": "180" }, "x-f5xc-constraints": { "constraintType": "number", "category": "discovery", "minimum": 1, "maximum": 180, "multipleOf": 1, "metadata": { "source": "api-probed", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+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 crlCreateSpecType", "required_fields": [ "server_address" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for crlCreateSpecType\nmetadata:\n name: example\n namespace: default\nspec:\n server_address: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"server_address\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "certificates", "x-f5xc-field-examples": { "spec.server_address": "value" }, "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Certificate revocation lists should be centralized" }, "classification": { "category": "certificate", "multi_tenant_pattern": "shared-ref" } } }, "crlDeleteRequest": { "type": "object", "description": "This is the input message of the 'DELETE' RPC.", "title": "DeleteRequest is used to delete a crl", "x-displayname": "DELETE Request.", "x-ves-proto-message": "ves.io.schema.crl.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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for crlDeleteRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for crlDeleteRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "certificates", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Certificate revocation lists should be centralized" }, "classification": { "category": "certificate", "multi_tenant_pattern": "shared-ref" } } }, "crlGetResponse": { "type": "object", "description": "This is the output message of the 'GET' RPC.", "title": "GetResponse is the shape of a read crl", "x-displayname": "GET Response.", "x-ves-proto-message": "ves.io.schema.crl.GetResponse", "properties": { "create_form": { "allOf": [ { "$ref": "#/components/schemas/crlCreateRequest" } ], "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/crlReplaceRequest" } ], "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/crlGetSpecType" } ], "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/crlStatusObject" }, "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-08-20T09:12:47+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 crlGetResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for crlGetResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "certificates", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Certificate revocation lists should be centralized" }, "classification": { "category": "certificate", "multi_tenant_pattern": "shared-ref" } } }, "crlGetSpecType": { "type": "object", "description": "API to GET CRL.", "title": "Get CRL", "x-displayname": "GET CRL", "x-ves-oneof-field-access_info_choice": "[\"http_access\"]", "x-ves-proto-message": "ves.io.schema.crl.GetSpecType", "properties": { "http_access": { "allOf": [ { "$ref": "#/components/schemas/crlHTTPAccessInfo" } ], "x-f5xc-description-short": "Configuration parameter for http access.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "refresh_interval": { "type": "integer", "description": "CRL refresh interval, in hours.", "format": "int64", "x-displayname": "CRL Refresh interval.", "x-ves-example": "24", "x-ves-validation-rules": { "ves.io.schema.rules.uint32.gte": "6", "ves.io.schema.rules.uint32.lte": "168" }, "x-f5xc-example": "24", "x-validation-rules": { "ves.io.schema.rules.uint32.gte": "6", "ves.io.schema.rules.uint32.lte": "168" }, "x-f5xc-constraints": { "constraintType": "number", "category": "discovery", "minimum": 6, "maximum": 168, "deterministic": true, "metadata": { "source": "api-probed", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "server_address": { "type": "string", "description": "CRL server address or hostname.", "maxLength": 255, "x-displayname": "CRL Server address.", "x-ves-example": "example-crl.it.com.", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.string.hostname_or_ip": "true", "ves.io.schema.rules.string.max_len": "255" }, "x-f5xc-example": "example-crl.it.com", "x-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.string.hostname_or_ip": "true", "ves.io.schema.rules.string.max_len": "255" }, "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 255, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "server_port": { "type": "integer", "description": "Set CRL Server port number.", "format": "int64", "x-displayname": "CRL Server Port.", "x-ves-example": "80", "x-ves-validation-rules": { "ves.io.schema.rules.uint32.gte": "1", "ves.io.schema.rules.uint32.lte": "65535" }, "x-f5xc-example": "80", "x-validation-rules": { "ves.io.schema.rules.uint32.gte": "1", "ves.io.schema.rules.uint32.lte": "65535" }, "x-f5xc-constraints": { "constraintType": "number", "category": "discovery", "minimum": 1, "maximum": 65535, "deterministic": true, "metadata": { "source": "api-probed", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "timeout": { "type": "integer", "description": "CRL download wait time, in seconds.", "format": "int64", "x-displayname": "CRL download timeout.", "x-ves-example": "10", "x-ves-validation-rules": { "ves.io.schema.rules.uint32.gte": "1", "ves.io.schema.rules.uint32.lte": "180" }, "x-f5xc-example": "10", "x-validation-rules": { "ves.io.schema.rules.uint32.gte": "1", "ves.io.schema.rules.uint32.lte": "180" }, "x-f5xc-constraints": { "constraintType": "number", "category": "discovery", "minimum": 1, "maximum": 180, "multipleOf": 1, "metadata": { "source": "api-probed", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+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 crlGetSpecType", "required_fields": [ "server_address" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for crlGetSpecType\nmetadata:\n name: example\n namespace: default\nspec:\n server_address: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"server_address\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "certificates", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Certificate revocation lists should be centralized" }, "classification": { "category": "certificate", "multi_tenant_pattern": "shared-ref" } } }, "crlHTTPAccessInfo": { "type": "object", "title": "HTTPAccessInfo", "x-displayname": "HTTPAccessInfo.", "x-ves-proto-message": "ves.io.schema.crl.HTTPAccessInfo", "properties": { "path": { "type": "string", "description": "CRL file location.", "title": "path", "maxLength": 256, "x-displayname": "CRL File path.", "x-ves-example": "/repo/latest.crl.", "x-ves-validation-rules": { "ves.io.schema.rules.string.http_path": "true", "ves.io.schema.rules.string.max_len": "256" }, "x-f5xc-example": "/repo/latest.crl", "x-validation-rules": { "ves.io.schema.rules.string.http_path": "true", "ves.io.schema.rules.string.max_len": "256" }, "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 256, "minLength": 1, "pattern": "^[/a-zA-Z0-9._-]+$", "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+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 crlHTTPAccessInfo", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for crlHTTPAccessInfo\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "certificates", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Certificate revocation lists should be centralized" }, "classification": { "category": "certificate", "multi_tenant_pattern": "shared-ref" } } }, "crlListResponse": { "type": "object", "description": "This is the output message of 'List' RPC.", "title": "ListResponse is the collection of crl", "x-displayname": "List Response.", "x-ves-proto-message": "ves.io.schema.crl.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/crlListResponseItem" }, "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for crlListResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for crlListResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "certificates", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Certificate revocation lists should be centralized" }, "classification": { "category": "certificate", "multi_tenant_pattern": "shared-ref" } } }, "crlListResponseItem": { "type": "object", "description": "By default a summary of CRL 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 crl", "x-displayname": "List Item", "x-ves-proto-message": "ves.io.schema.crl.ListResponseItem", "properties": { "annotations": { "type": "object", "description": "The set of annotations present on this CRL.", "title": "annotations", "x-displayname": "Annotations.", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "The set of annotations present on this CRL.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "description": { "type": "string", "description": "The description set for this CRL.", "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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "disabled": { "type": "boolean", "description": "A value of true indicates CRL is administratively disabled.", "title": "disabled", "format": "boolean", "x-displayname": "Disabled", "x-f5xc-example": "True", "x-f5xc-description-short": "Value of true indicates CRL is administratively disabled.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "get_spec": { "allOf": [ { "$ref": "#/components/schemas/crlGetSpecType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "labels": { "type": "object", "description": "The set of labels present on this CRL.", "title": "labels", "x-displayname": "Labels", "x-f5xc-example": "{\"key\": \"value\"}", "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 CRL.", "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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/crlStatusObject" }, "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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "uid": { "type": "string", "description": "The unique uid of this CRL.", "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-08-20T09:12:47+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-08-20T09:12:47+00:00" } }, "x-f5xc-description-short": "By default a summary of CRL 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 CRL 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 crlListResponseItem", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for crlListResponseItem\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "certificates", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Certificate revocation lists should be centralized" }, "classification": { "category": "certificate", "multi_tenant_pattern": "shared-ref" } } }, "crlReplaceRequest": { "type": "object", "description": "This is the input message of the 'Replace' RPC.", "title": "ReplaceRequest is used to replace contents of a crl", "x-displayname": "Replace Request.", "x-ves-proto-message": "ves.io.schema.crl.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/crlReplaceSpecType" } ], "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 crlReplaceRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for crlReplaceRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "certificates", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Certificate revocation lists should be centralized" }, "classification": { "category": "certificate", "multi_tenant_pattern": "shared-ref" } } }, "crlReplaceResponse": { "type": "object", "x-ves-proto-message": "ves.io.schema.crl.ReplaceResponse", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for crlReplaceResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for crlReplaceResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "certificates", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Certificate revocation lists should be centralized" }, "classification": { "category": "certificate", "multi_tenant_pattern": "shared-ref" } } }, "crlReplaceSpecType": { "type": "object", "description": "API to replace CRL object.", "title": "Replace CRL", "x-displayname": "Replace CRL.", "x-ves-oneof-field-access_info_choice": "[\"http_access\"]", "x-ves-proto-message": "ves.io.schema.crl.ReplaceSpecType", "properties": { "http_access": { "allOf": [ { "$ref": "#/components/schemas/crlHTTPAccessInfo" } ], "x-f5xc-description-short": "Configuration parameter for http access.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "refresh_interval": { "type": "integer", "description": "CRL refresh interval, in hours.", "format": "int64", "x-displayname": "CRL Refresh interval.", "x-ves-example": "24", "x-ves-validation-rules": { "ves.io.schema.rules.uint32.gte": "6", "ves.io.schema.rules.uint32.lte": "168" }, "x-f5xc-example": "24", "x-validation-rules": { "ves.io.schema.rules.uint32.gte": "6", "ves.io.schema.rules.uint32.lte": "168" }, "x-f5xc-constraints": { "constraintType": "number", "category": "discovery", "minimum": 6, "maximum": 168, "deterministic": true, "metadata": { "source": "api-probed", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "server_address": { "type": "string", "description": "CRL server address or hostname.", "maxLength": 255, "x-displayname": "CRL Server address.", "x-ves-example": "example-crl.it.com.", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.string.hostname_or_ip": "true", "ves.io.schema.rules.string.max_len": "255" }, "x-f5xc-example": "example-crl.it.com", "x-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.string.hostname_or_ip": "true", "ves.io.schema.rules.string.max_len": "255" }, "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 255, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "server_port": { "type": "integer", "description": "Set CRL Server port number.", "format": "int64", "x-displayname": "CRL Server Port.", "x-ves-example": "80", "x-ves-validation-rules": { "ves.io.schema.rules.uint32.gte": "1", "ves.io.schema.rules.uint32.lte": "65535" }, "x-f5xc-example": "80", "x-validation-rules": { "ves.io.schema.rules.uint32.gte": "1", "ves.io.schema.rules.uint32.lte": "65535" }, "x-f5xc-constraints": { "constraintType": "number", "category": "discovery", "minimum": 1, "maximum": 65535, "deterministic": true, "metadata": { "source": "api-probed", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "timeout": { "type": "integer", "description": "CRL download wait time, in seconds.", "format": "int64", "x-displayname": "CRL download timeout.", "x-ves-example": "10", "x-ves-validation-rules": { "ves.io.schema.rules.uint32.gte": "1", "ves.io.schema.rules.uint32.lte": "180" }, "x-f5xc-example": "10", "x-validation-rules": { "ves.io.schema.rules.uint32.gte": "1", "ves.io.schema.rules.uint32.lte": "180" }, "x-f5xc-constraints": { "constraintType": "number", "category": "discovery", "minimum": 1, "maximum": 180, "multipleOf": 1, "metadata": { "source": "api-probed", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+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 crlReplaceSpecType", "required_fields": [ "server_address" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for crlReplaceSpecType\nmetadata:\n name: example\n namespace: default\nspec:\n server_address: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"server_address\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "certificates", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Certificate revocation lists should be centralized" }, "classification": { "category": "certificate", "multi_tenant_pattern": "shared-ref" } } }, "crlStatusObject": { "type": "object", "description": "Most recently observed status of object.", "title": "CRL Status Object", "x-displayname": "CRL Status.", "x-ves-proto-message": "ves.io.schema.crl.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 crlStatusObject", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for crlStatusObject\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "certificates", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Certificate revocation lists should be centralized" }, "classification": { "category": "certificate", "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\": ,\n\"lastName\": \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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for protobufAny\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Certificate revocation lists should be centralized" }, "classification": { "category": "certificate", "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaConditionType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Certificate revocation lists should be centralized" }, "classification": { "category": "certificate", "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_yaml": "# Minimal example for schemaErrorCode\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Certificate revocation lists should be centralized" }, "classification": { "category": "certificate", "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-08-20T09:12:47+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_yaml": "# Minimal example for schemaErrorType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Certificate revocation lists should be centralized" }, "classification": { "category": "certificate", "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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaInitializerType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Certificate revocation lists should be centralized" }, "classification": { "category": "certificate", "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_yaml": "# Minimal example for schemaInitializersType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Certificate revocation lists should be centralized" }, "classification": { "category": "certificate", "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaObjectCreateMetaType\nmetadata:\n name: example\n namespace: default\nspec:\n name: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"name\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Certificate revocation lists should be centralized" }, "classification": { "category": "certificate", "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaObjectGetMetaType\nmetadata:\n name: example\n namespace: default\nspec:\n name: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"name\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Certificate revocation lists should be centralized" }, "classification": { "category": "certificate", "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaObjectRefType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Certificate revocation lists should be centralized" }, "classification": { "category": "certificate", "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemaObjectReplaceMetaType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Certificate revocation lists should be centralized" }, "classification": { "category": "certificate", "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaStatusMetaType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Certificate revocation lists should be centralized" }, "classification": { "category": "certificate", "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_yaml": "# Minimal example for schemaStatusPublishType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Certificate revocation lists should be centralized" }, "classification": { "category": "certificate", "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaStatusType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Certificate revocation lists should be centralized" }, "classification": { "category": "certificate", "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaSystemObjectGetMetaType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Certificate revocation lists should be centralized" }, "classification": { "category": "certificate", "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaViewRefType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Certificate revocation lists should be centralized" }, "classification": { "category": "certificate", "multi_tenant_pattern": "shared-ref" } } }, "certificateCreateRequest": { "type": "object", "description": "This is the input message of the 'Create' RPC.", "title": "CreateRequest is used to create an instance of certificate", "x-displayname": "Create Request.", "x-ves-proto-message": "ves.io.schema.certificate.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/certificateCreateSpecType" } ], "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "TLS certificate for securing HTTPS endpoints and connections", "required_fields": [ "metadata.name", "metadata.namespace", "spec.certificate_url", "spec.private_key" ], "mutually_exclusive_groups": [ { "name": "private_key_type", "fields": [ "spec.private_key.clear_secret_info", "spec.private_key.blindfold_secret_info" ], "reason": "Clear text (automation) vs blindfold-encrypted (production)" } ], "example_yaml": "apiVersion: v1\nkind: certificate\nmetadata:\n name: example-cert\n namespace: default\nspec:\n certificate_url: \"string:///BASE64_ENCODED_CERTIFICATE\"\n private_key:\n clear_secret_info:\n url: \"string:///BASE64_ENCODED_PRIVATE_KEY\"\n provider: \"\"\n", "example_json": "{\n \"metadata\": {\n \"name\": \"example-cert\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"certificate_url\": \"string:///{{CERT_B64}}\",\n \"private_key\": {\n \"clear_secret_info\": {\n \"url\": \"string:///{{KEY_B64}}\",\n \"provider\": \"\"\n }\n }\n }\n}\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" } } }, "certificateCreateResponse": { "type": "object", "x-ves-proto-message": "ves.io.schema.certificate.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/certificateGetSpecType" } ], "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 certificateCreateResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for certificateCreateResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "certificateCreateSpecType": { "type": "object", "description": "Shape of the Certificate specification.", "title": "Create Certificate", "x-displayname": "Create Certificate.", "x-ves-oneof-field-ocsp_stapling_choice": "[\"custom_hash_algorithms\",\"disable_ocsp_stapling\",\"use_system_defaults\"]", "x-ves-proto-message": "ves.io.schema.certificate.CreateSpecType", "properties": { "certificate_chain": { "allOf": [ { "$ref": "#/components/schemas/schemaviewsObjectRefType" } ], "x-f5xc-description-short": "Configuration parameter for certificate chain.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-references": [ { "resource_kind": "certificate_chain", "field_path": "certificate_chain", "gated_by": null, "required": false, "cardinality": "single" } ] }, "certificate_url": { "type": "string", "description": "Certificate.\nCertificate or certificate chain in PEM format including the PEM headers.", "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": "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-08-20T09:12:47+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" ] }, "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": "[REDACTED_PRIVATE_KEY]", "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": "TLS certificate for securing HTTPS endpoints and connections", "required_fields": [ "metadata.name", "metadata.namespace", "spec.certificate_url", "spec.private_key" ], "mutually_exclusive_groups": [ { "name": "private_key_type", "fields": [ "spec.private_key.clear_secret_info", "spec.private_key.blindfold_secret_info" ], "reason": "Clear text (automation) vs blindfold-encrypted (production)" } ], "example_yaml": "apiVersion: v1\nkind: certificate\nmetadata:\n name: example-cert\n namespace: default\nspec:\n certificate_url: \"string:///BASE64_ENCODED_CERTIFICATE\"\n private_key:\n clear_secret_info:\n url: \"string:///BASE64_ENCODED_PRIVATE_KEY\"\n provider: \"\"\n", "example_json": "{\n \"metadata\": {\n \"name\": \"example-cert\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"certificate_url\": \"string:///{{CERT_B64}}\",\n \"private_key\": {\n \"clear_secret_info\": {\n \"url\": \"string:///{{KEY_B64}}\",\n \"provider\": \"\"\n }\n }\n }\n}\n" }, "x-f5xc-cli-domain": "certificates", "x-f5xc-recommended-oneof-variant": { "ocsp_stapling_choice": "use_system_defaults" }, "x-f5xc-field-examples": { "spec.certificate_url": "string:///BASE64_ENCODED_CERTIFICATE", "spec.private_key.clear_secret_info.url": "string:///BASE64_ENCODED_PRIVATE_KEY", "spec.private_key.clear_secret_info.provider": "" }, "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" } } }, "certificateDeleteRequest": { "type": "object", "description": "This is the input message of the 'DELETE' RPC.", "title": "DeleteRequest is used to delete a certificate", "x-displayname": "DELETE Request.", "x-ves-proto-message": "ves.io.schema.certificate.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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for certificateDeleteRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for certificateDeleteRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "certificateGetResponse": { "type": "object", "description": "This is the output message of the 'GET' RPC.", "title": "GetResponse is the shape of a read certificate", "x-displayname": "GET Response.", "x-ves-proto-message": "ves.io.schema.certificate.GetResponse", "properties": { "create_form": { "allOf": [ { "$ref": "#/components/schemas/certificateCreateRequest" } ], "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/certificateReplaceRequest" } ], "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/certificateGetSpecType" } ], "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/certificateStatusObject" }, "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-08-20T09:12:47+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 certificateGetResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for certificateGetResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "certificateGetSpecType": { "type": "object", "description": "Shape of the Certificate specification.", "title": "Get Certificate", "x-displayname": "GET Certificate.", "x-ves-oneof-field-ocsp_stapling_choice": "[\"custom_hash_algorithms\",\"disable_ocsp_stapling\",\"use_system_defaults\"]", "x-ves-oneof-field-provider": "[\"manual\",\"virtual_host_auto_cert\"]", "x-ves-proto-message": "ves.io.schema.certificate.GetSpecType", "properties": { "certificate_chain": { "allOf": [ { "$ref": "#/components/schemas/schemaviewsObjectRefType" } ], "x-f5xc-description-short": "Configuration parameter for certificate chain.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-references": [ { "resource_kind": "certificate", "field_path": "certificate_chain", "gated_by": null, "required": false, "cardinality": "single" } ] }, "certificate_url": { "type": "string", "description": "Certificate.\nCertificate or certificate chain in PEM format including the PEM headers.", "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": "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-08-20T09:12:47+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" ] }, "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" ] }, "http_loadbalancers": { "type": "array", "description": "HTTP Loadbalancers using this certificate.", "items": { "$ref": "#/components/schemas/schemaviewsObjectRefType" }, "x-displayname": "HTTP Loadbalancers.", "x-f5xc-description-short": "HTTP Loadbalancers using this certificate.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "infos": { "type": "array", "description": "Information about this certificate.", "items": { "$ref": "#/components/schemas/schemaCertInfoType" }, "x-displayname": "Certificate Information.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "manual": { "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": [ "virtual_host_auto_cert" ] }, "private_key": { "allOf": [ { "$ref": "#/components/schemas/schemaSecretType" } ], "x-f5xc-example": "[REDACTED_PRIVATE_KEY]", "x-f5xc-description-short": "Private key for asymmetric cryptography.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "tcp_loadbalancers": { "type": "array", "description": "TCP Loadbalancers using this certificate.", "items": { "$ref": "#/components/schemas/schemaviewsObjectRefType" }, "x-displayname": "TCP Loadbalancers.", "x-f5xc-description-short": "TCP Loadbalancers using this certificate.", "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" ] }, "virtual_host_auto_cert": { "allOf": [ { "$ref": "#/components/schemas/certificateVirtualHostAutoCert" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "manual" ] } }, "x-f5xc-minimum-configuration": { "description": "TLS certificate for securing HTTPS endpoints and connections", "required_fields": [ "metadata.name", "metadata.namespace", "spec.certificate_url", "spec.private_key" ], "mutually_exclusive_groups": [ { "name": "private_key_type", "fields": [ "spec.private_key.clear_secret_info", "spec.private_key.blindfold_secret_info" ], "reason": "Clear text (automation) vs blindfold-encrypted (production)" } ], "example_yaml": "apiVersion: v1\nkind: certificate\nmetadata:\n name: example-cert\n namespace: default\nspec:\n certificate_url: \"string:///BASE64_ENCODED_CERTIFICATE\"\n private_key:\n clear_secret_info:\n url: \"string:///BASE64_ENCODED_PRIVATE_KEY\"\n provider: \"\"\n", "example_json": "{\n \"metadata\": {\n \"name\": \"example-cert\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"certificate_url\": \"string:///{{CERT_B64}}\",\n \"private_key\": {\n \"clear_secret_info\": {\n \"url\": \"string:///{{KEY_B64}}\",\n \"provider\": \"\"\n }\n }\n }\n}\n" }, "x-f5xc-cli-domain": "certificates", "x-f5xc-recommended-oneof-variant": { "ocsp_stapling_choice": "use_system_defaults" }, "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" } } }, "certificateListResponse": { "type": "object", "description": "This is the output message of 'List' RPC.", "title": "ListResponse is the collection of certificate", "x-displayname": "List Response.", "x-ves-proto-message": "ves.io.schema.certificate.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/certificateListResponseItem" }, "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for certificateListResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for certificateListResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "certificateListResponseItem": { "type": "object", "description": "By default a summary of certificate 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 certificate", "x-displayname": "List Item", "x-ves-proto-message": "ves.io.schema.certificate.ListResponseItem", "properties": { "annotations": { "type": "object", "description": "The set of annotations present on this certificate.", "title": "annotations", "x-displayname": "Annotations.", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "The set of annotations present on this certificate.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "description": { "type": "string", "description": "The description set for this certificate.", "title": "description", "x-displayname": "Description.", "x-f5xc-description-short": "The description set for this certificate.", "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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "disabled": { "type": "boolean", "description": "A value of true indicates certificate is administratively disabled.", "title": "disabled", "format": "boolean", "x-displayname": "Disabled", "x-f5xc-example": "True", "x-f5xc-description-short": "Value of true indicates certificate is administratively disabled.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "get_spec": { "allOf": [ { "$ref": "#/components/schemas/certificateGetSpecType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "labels": { "type": "object", "description": "The set of labels present on this certificate.", "title": "labels", "x-displayname": "Labels", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "The set of labels present on this certificate.", "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 certificate.", "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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/certificateStatusObject" }, "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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "uid": { "type": "string", "description": "The unique uid of this certificate.", "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-08-20T09:12:47+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-08-20T09:12:47+00:00" } }, "x-f5xc-description-short": "By default a summary of certificate 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 certificate 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 certificateListResponseItem", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for certificateListResponseItem\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "certificateReplaceRequest": { "type": "object", "description": "This is the input message of the 'Replace' RPC.", "title": "ReplaceRequest is used to replace contents of a certificate", "x-displayname": "Replace Request.", "x-ves-proto-message": "ves.io.schema.certificate.ReplaceRequest", "properties": { "metadata": { "allOf": [ { "$ref": "#/components/schemas/schemaObjectReplaceMetaType" } ], "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "spec": { "allOf": [ { "$ref": "#/components/schemas/certificateReplaceSpecType" } ], "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "resource_version": { "type": "string", "x-f5xc-concurrency-token": { "server_assigned": true, "echo_on_operations": [ "replace" ] } } }, "x-f5xc-minimum-configuration": { "description": "TLS certificate for securing HTTPS endpoints and connections", "required_fields": [ "metadata.name", "metadata.namespace", "spec.certificate_url", "spec.private_key" ], "mutually_exclusive_groups": [ { "name": "private_key_type", "fields": [ "spec.private_key.clear_secret_info", "spec.private_key.blindfold_secret_info" ], "reason": "Clear text (automation) vs blindfold-encrypted (production)" } ], "example_yaml": "apiVersion: v1\nkind: certificate\nmetadata:\n name: example-cert\n namespace: default\nspec:\n certificate_url: \"string:///BASE64_ENCODED_CERTIFICATE\"\n private_key:\n clear_secret_info:\n url: \"string:///BASE64_ENCODED_PRIVATE_KEY\"\n provider: \"\"\n", "example_json": "{\n \"metadata\": {\n \"name\": \"example-cert\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"certificate_url\": \"string:///{{CERT_B64}}\",\n \"private_key\": {\n \"clear_secret_info\": {\n \"url\": \"string:///{{KEY_B64}}\",\n \"provider\": \"\"\n }\n }\n }\n}\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" } } }, "certificateReplaceResponse": { "type": "object", "x-ves-proto-message": "ves.io.schema.certificate.ReplaceResponse", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for certificateReplaceResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for certificateReplaceResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "certificateReplaceSpecType": { "type": "object", "description": "Shape of the Certificate specification.", "title": "Replace Certificate", "x-displayname": "Replace Certificate.", "x-ves-oneof-field-ocsp_stapling_choice": "[\"custom_hash_algorithms\",\"disable_ocsp_stapling\",\"use_system_defaults\"]", "x-ves-proto-message": "ves.io.schema.certificate.ReplaceSpecType", "properties": { "certificate_chain": { "allOf": [ { "$ref": "#/components/schemas/schemaviewsObjectRefType" } ], "x-f5xc-description-short": "Configuration parameter for certificate chain.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-references": [ { "resource_kind": "certificate", "field_path": "certificate_chain", "gated_by": null, "required": false, "cardinality": "single" } ] }, "certificate_url": { "type": "string", "description": "Certificate.\nCertificate or certificate chain in PEM format including the PEM headers.", "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": "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-08-20T09:12:47+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" ] }, "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": "[REDACTED_PRIVATE_KEY]", "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": "TLS certificate for securing HTTPS endpoints and connections", "required_fields": [ "metadata.name", "metadata.namespace", "spec.certificate_url", "spec.private_key" ], "mutually_exclusive_groups": [ { "name": "private_key_type", "fields": [ "spec.private_key.clear_secret_info", "spec.private_key.blindfold_secret_info" ], "reason": "Clear text (automation) vs blindfold-encrypted (production)" } ], "example_yaml": "apiVersion: v1\nkind: certificate\nmetadata:\n name: example-cert\n namespace: default\nspec:\n certificate_url: \"string:///BASE64_ENCODED_CERTIFICATE\"\n private_key:\n clear_secret_info:\n url: \"string:///BASE64_ENCODED_PRIVATE_KEY\"\n provider: \"\"\n", "example_json": "{\n \"metadata\": {\n \"name\": \"example-cert\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"certificate_url\": \"string:///{{CERT_B64}}\",\n \"private_key\": {\n \"clear_secret_info\": {\n \"url\": \"string:///{{KEY_B64}}\",\n \"provider\": \"\"\n }\n }\n }\n}\n" }, "x-f5xc-cli-domain": "certificates", "x-f5xc-recommended-oneof-variant": { "ocsp_stapling_choice": "use_system_defaults" }, "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" } } }, "certificateStatusObject": { "type": "object", "description": "Most recently observed status of object.", "title": "Status for Certificate", "x-displayname": "Status", "x-ves-proto-message": "ves.io.schema.certificate.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-description-short": "Most recently observed status of object.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for certificateStatusObject", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for certificateStatusObject\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "certificateVirtualHostAutoCert": { "type": "object", "description": "AutoCert provider information.", "title": "Virtual Host Auto Cert", "x-displayname": "Virtual Host Auto Cert.", "x-ves-proto-message": "ves.io.schema.certificate.VirtualHostAutoCert", "properties": { "owner_virtual_host": { "type": "array", "description": "The virtual_host object that owns this certificate.", "title": "Owner Virtual Host", "maxItems": 1, "items": { "$ref": "#/components/schemas/ioschemaObjectRefType" }, "x-displayname": "Owner Virtual Host.", "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": "The virtual_host object that owns this certificate.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 1, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for certificateVirtualHostAutoCert", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for certificateVirtualHostAutoCert\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\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" } } }, "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_yaml": "# Minimal example for ioschemaEmpty\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Certificate revocation lists should be centralized" }, "classification": { "category": "certificate", "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for ioschemaObjectRefType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Certificate revocation lists should be centralized" }, "classification": { "category": "certificate", "multi_tenant_pattern": "shared-ref" } } }, "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-08-20T09:12:47+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, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaBlindfoldSecretInfoType\nmetadata:\n name: example\n namespace: default\nspec:\n location: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"location\": \"value\"\n }\n}" }, "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" } } }, "schemaCertInfoType": { "type": "object", "description": "Information about a certificate.", "title": "Certificate Information", "x-displayname": "Certificate Information.", "x-ves-proto-message": "ves.io.schema.CertInfoType", "properties": { "common_name": { "type": "string", "description": "Common Name (CN) of this certificate.", "title": "Common Name", "x-displayname": "Common Name.", "x-f5xc-example": "example-resource", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "expiry": { "type": "string", "description": "Expiry timestamp of this certificate.", "title": "Expiry Timestamp", "format": "date-time", "x-displayname": "Expiry Timestamp.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "format": "date-time", "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "issuer": { "type": "string", "description": "Issuer of this certificate.", "title": "Issuer", "x-displayname": "Issuer", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "organization": { "type": "string", "description": "Organization of this certificate.", "title": "Organization", "x-displayname": "Organization.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "public_key_algorithm": { "type": "string", "description": "Public Key Algorithm of this certificate.", "title": "Public Key Algorithm", "x-displayname": "Public Key Algorithm.", "x-f5xc-description-short": "Public Key Algorithm of this certificate.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "subject_alternative_names": { "type": "array", "description": "Subject Alternative Names of this certificate.", "title": "Subject Alternative Names", "items": { "type": "string" }, "x-displayname": "SANs", "x-f5xc-example": "example-resource", "x-f5xc-description-short": "Subject Alternative Names of this certificate.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for schemaCertInfoType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemaCertInfoType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Certificate revocation lists should be centralized" }, "classification": { "category": "certificate", "multi_tenant_pattern": "shared-ref" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaClearSecretInfoType\nmetadata:\n name: example\n namespace: default\nspec:\n url: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"url\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Certificate revocation lists should be centralized" }, "classification": { "category": "certificate", "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_yaml": "# Minimal example for schemaHashAlgorithm\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Certificate revocation lists should be centralized" }, "classification": { "category": "certificate", "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-08-20T09:12:47+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_yaml": "# Minimal example for schemaHashAlgorithms\nmetadata:\n name: example\n namespace: default\nspec:\n hash_algorithms: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"hash_algorithms\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Certificate revocation lists should be centralized" }, "classification": { "category": "certificate", "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_yaml": "# Minimal example for schemaSecretType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "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" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaviewsObjectRefType\nmetadata:\n name: example\n namespace: default\nspec:\n name: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"name\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "shared", "alternatives": [], "rationale": "Certificate revocation lists should be centralized" }, "classification": { "category": "certificate", "multi_tenant_pattern": "shared-ref" } } }, "certificate_chainCreateRequest": { "type": "object", "description": "This is the input message of the 'Create' RPC.", "title": "CreateRequest is used to create an instance of certificate_chain", "x-displayname": "Create Request.", "x-ves-proto-message": "ves.io.schema.certificate_chain.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/certificate_chainCreateSpecType" } ], "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "TLS certificate for securing HTTPS endpoints and connections", "required_fields": [ "metadata.name", "metadata.namespace", "spec.certificate_url", "spec.private_key" ], "mutually_exclusive_groups": [ { "name": "private_key_type", "fields": [ "spec.private_key.clear_secret_info", "spec.private_key.blindfold_secret_info" ], "reason": "Clear text (automation) vs blindfold-encrypted (production)" } ], "example_yaml": "apiVersion: v1\nkind: certificate\nmetadata:\n name: example-cert\n namespace: default\nspec:\n certificate_url: \"string:///BASE64_ENCODED_CERTIFICATE\"\n private_key:\n clear_secret_info:\n url: \"string:///BASE64_ENCODED_PRIVATE_KEY\"\n provider: \"\"\n", "example_json": "{\n \"metadata\": {\n \"name\": \"example-cert\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"certificate_url\": \"string:///{{CERT_B64}}\",\n \"private_key\": {\n \"clear_secret_info\": {\n \"url\": \"string:///{{KEY_B64}}\",\n \"provider\": \"\"\n }\n }\n }\n}\n" }, "x-f5xc-cli-domain": "certificates", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": true }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Certificate chains can be managed in any namespace" }, "classification": { "category": "certificate", "multi_tenant_pattern": "per-tenant" } } }, "certificate_chainCreateResponse": { "type": "object", "x-ves-proto-message": "ves.io.schema.certificate_chain.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/certificate_chainGetSpecType" } ], "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 certificate_chainCreateResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for certificate_chainCreateResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "certificates", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": true }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Certificate chains can be managed in any namespace" }, "classification": { "category": "certificate", "multi_tenant_pattern": "per-tenant" } } }, "certificate_chainCreateSpecType": { "type": "object", "description": "Shape of the Certificate Chain specification.", "title": "Create Certificate Chain", "x-displayname": "Create Certificate Chain.", "x-ves-proto-message": "ves.io.schema.certificate_chain.CreateSpecType", "properties": { "certificate_url": { "type": "string", "description": "Certificate chain is the list of intermediate certificates in PEM format including the PEM headers.", "minLength": 1, "maxLength": 131072, "x-displayname": "Certificates.", "x-ves-example": "Value", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.string.intermediate_certificate_chain_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.intermediate_certificate_chain_url": "true", "ves.io.schema.rules.string.max_bytes": "131072", "ves.io.schema.rules.string.min_bytes": "1" }, "x-f5xc-description-short": "Certificate chain is the list of intermediate certificates 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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } } }, "x-f5xc-description-short": "Shape of the Certificate Chain specification.", "x-f5xc-minimum-configuration": { "description": "TLS certificate for securing HTTPS endpoints and connections", "required_fields": [ "metadata.name", "metadata.namespace", "spec.certificate_url", "spec.private_key" ], "mutually_exclusive_groups": [ { "name": "private_key_type", "fields": [ "spec.private_key.clear_secret_info", "spec.private_key.blindfold_secret_info" ], "reason": "Clear text (automation) vs blindfold-encrypted (production)" } ], "example_yaml": "apiVersion: v1\nkind: certificate\nmetadata:\n name: example-cert\n namespace: default\nspec:\n certificate_url: \"string:///BASE64_ENCODED_CERTIFICATE\"\n private_key:\n clear_secret_info:\n url: \"string:///BASE64_ENCODED_PRIVATE_KEY\"\n provider: \"\"\n", "example_json": "{\n \"metadata\": {\n \"name\": \"example-cert\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"certificate_url\": \"string:///{{CERT_B64}}\",\n \"private_key\": {\n \"clear_secret_info\": {\n \"url\": \"string:///{{KEY_B64}}\",\n \"provider\": \"\"\n }\n }\n }\n}\n" }, "x-f5xc-cli-domain": "certificates", "x-f5xc-recommended-oneof-variant": { "ocsp_stapling_choice": "use_system_defaults" }, "x-f5xc-field-examples": { "spec.certificate_url": "string:///BASE64_ENCODED_CERTIFICATE", "spec.private_key.clear_secret_info.url": "string:///BASE64_ENCODED_PRIVATE_KEY", "spec.private_key.clear_secret_info.provider": "" }, "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": true }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Certificate chains can be managed in any namespace" }, "classification": { "category": "certificate", "multi_tenant_pattern": "per-tenant" } } }, "certificate_chainDeleteRequest": { "type": "object", "description": "This is the input message of the 'DELETE' RPC.", "title": "DeleteRequest is used to delete a certificate_chain", "x-displayname": "DELETE Request.", "x-ves-proto-message": "ves.io.schema.certificate_chain.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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for certificate_chainDeleteRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for certificate_chainDeleteRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "certificates", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": true }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Certificate chains can be managed in any namespace" }, "classification": { "category": "certificate", "multi_tenant_pattern": "per-tenant" } } }, "certificate_chainGetResponse": { "type": "object", "description": "This is the output message of the 'GET' RPC.", "title": "GetResponse is the shape of a read certificate_chain", "x-displayname": "GET Response.", "x-ves-proto-message": "ves.io.schema.certificate_chain.GetResponse", "properties": { "create_form": { "allOf": [ { "$ref": "#/components/schemas/certificate_chainCreateRequest" } ], "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/certificate_chainReplaceRequest" } ], "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/certificate_chainGetSpecType" } ], "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/certificate_chainStatusObject" }, "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-08-20T09:12:47+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 certificate_chainGetResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for certificate_chainGetResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "certificates", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": true }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Certificate chains can be managed in any namespace" }, "classification": { "category": "certificate", "multi_tenant_pattern": "per-tenant" } } }, "certificate_chainGetSpecType": { "type": "object", "description": "Shape of the Certificate Chain specification.", "title": "Get Certificate Chain", "x-displayname": "GET Certificate Chain.", "x-ves-proto-message": "ves.io.schema.certificate_chain.GetSpecType", "properties": { "certificate_url": { "type": "string", "description": "Certificate chain is the list of intermediate certificates in PEM format including the PEM headers.", "minLength": 1, "maxLength": 131072, "x-displayname": "Certificates.", "x-ves-example": "Value", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.string.intermediate_certificate_chain_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.intermediate_certificate_chain_url": "true", "ves.io.schema.rules.string.max_bytes": "131072", "ves.io.schema.rules.string.min_bytes": "1" }, "x-f5xc-description-short": "Certificate chain is the list of intermediate certificates 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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "infos": { "type": "array", "description": "Information about certificate chain.", "items": { "$ref": "#/components/schemas/schemaCertInfoType" }, "x-displayname": "Certificate Chain Information.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Shape of the Certificate Chain specification.", "x-f5xc-minimum-configuration": { "description": "TLS certificate for securing HTTPS endpoints and connections", "required_fields": [ "metadata.name", "metadata.namespace", "spec.certificate_url", "spec.private_key" ], "mutually_exclusive_groups": [ { "name": "private_key_type", "fields": [ "spec.private_key.clear_secret_info", "spec.private_key.blindfold_secret_info" ], "reason": "Clear text (automation) vs blindfold-encrypted (production)" } ], "example_yaml": "apiVersion: v1\nkind: certificate\nmetadata:\n name: example-cert\n namespace: default\nspec:\n certificate_url: \"string:///BASE64_ENCODED_CERTIFICATE\"\n private_key:\n clear_secret_info:\n url: \"string:///BASE64_ENCODED_PRIVATE_KEY\"\n provider: \"\"\n", "example_json": "{\n \"metadata\": {\n \"name\": \"example-cert\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"certificate_url\": \"string:///{{CERT_B64}}\",\n \"private_key\": {\n \"clear_secret_info\": {\n \"url\": \"string:///{{KEY_B64}}\",\n \"provider\": \"\"\n }\n }\n }\n}\n" }, "x-f5xc-cli-domain": "certificates", "x-f5xc-recommended-oneof-variant": { "ocsp_stapling_choice": "use_system_defaults" }, "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": true }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Certificate chains can be managed in any namespace" }, "classification": { "category": "certificate", "multi_tenant_pattern": "per-tenant" } } }, "certificate_chainListResponse": { "type": "object", "description": "This is the output message of 'List' RPC.", "title": "ListResponse is the collection of certificate_chain", "x-displayname": "List Response.", "x-ves-proto-message": "ves.io.schema.certificate_chain.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/certificate_chainListResponseItem" }, "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for certificate_chainListResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for certificate_chainListResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "certificates", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": true }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Certificate chains can be managed in any namespace" }, "classification": { "category": "certificate", "multi_tenant_pattern": "per-tenant" } } }, "certificate_chainListResponseItem": { "type": "object", "description": "By default a summary of certificate_chain 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 certificate_chain", "x-displayname": "List Item", "x-ves-proto-message": "ves.io.schema.certificate_chain.ListResponseItem", "properties": { "annotations": { "type": "object", "description": "The set of annotations present on this certificate_chain.", "title": "annotations", "x-displayname": "Annotations.", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "The set of annotations present on this certificate_chain.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "description": { "type": "string", "description": "The description set for this certificate_chain.", "title": "description", "x-displayname": "Description.", "x-f5xc-description-short": "The description set for this certificate_chain.", "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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "disabled": { "type": "boolean", "description": "A value of true indicates certificate_chain is administratively disabled.", "title": "disabled", "format": "boolean", "x-displayname": "Disabled", "x-f5xc-example": "True", "x-f5xc-description-short": "Value of true indicates certificate_chain is administratively disabled.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "get_spec": { "allOf": [ { "$ref": "#/components/schemas/certificate_chainGetSpecType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "labels": { "type": "object", "description": "The set of labels present on this certificate_chain.", "title": "labels", "x-displayname": "Labels", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "The set of labels present on this certificate_chain.", "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 certificate_chain.", "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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/certificate_chainStatusObject" }, "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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "uid": { "type": "string", "description": "The unique uid of this certificate_chain.", "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 certificate_chain.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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-08-20T09:12:47+00:00" } }, "x-f5xc-description-short": "By default a summary of certificate_chain 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 certificate_chain 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 certificate_chainListResponseItem", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for certificate_chainListResponseItem\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "certificates", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": true }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Certificate chains can be managed in any namespace" }, "classification": { "category": "certificate", "multi_tenant_pattern": "per-tenant" } } }, "certificate_chainReplaceRequest": { "type": "object", "description": "This is the input message of the 'Replace' RPC.", "title": "ReplaceRequest is used to replace contents of a certificate_chain", "x-displayname": "Replace Request.", "x-ves-proto-message": "ves.io.schema.certificate_chain.ReplaceRequest", "properties": { "metadata": { "allOf": [ { "$ref": "#/components/schemas/schemaObjectReplaceMetaType" } ], "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "spec": { "allOf": [ { "$ref": "#/components/schemas/certificate_chainReplaceSpecType" } ], "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } }, "resource_version": { "type": "string", "x-f5xc-concurrency-token": { "server_assigned": true, "echo_on_operations": [ "replace" ] } } }, "x-f5xc-minimum-configuration": { "description": "TLS certificate for securing HTTPS endpoints and connections", "required_fields": [ "metadata.name", "metadata.namespace", "spec.certificate_url", "spec.private_key" ], "mutually_exclusive_groups": [ { "name": "private_key_type", "fields": [ "spec.private_key.clear_secret_info", "spec.private_key.blindfold_secret_info" ], "reason": "Clear text (automation) vs blindfold-encrypted (production)" } ], "example_yaml": "apiVersion: v1\nkind: certificate\nmetadata:\n name: example-cert\n namespace: default\nspec:\n certificate_url: \"string:///BASE64_ENCODED_CERTIFICATE\"\n private_key:\n clear_secret_info:\n url: \"string:///BASE64_ENCODED_PRIVATE_KEY\"\n provider: \"\"\n", "example_json": "{\n \"metadata\": {\n \"name\": \"example-cert\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"certificate_url\": \"string:///{{CERT_B64}}\",\n \"private_key\": {\n \"clear_secret_info\": {\n \"url\": \"string:///{{KEY_B64}}\",\n \"provider\": \"\"\n }\n }\n }\n}\n" }, "x-f5xc-cli-domain": "certificates", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": true }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Certificate chains can be managed in any namespace" }, "classification": { "category": "certificate", "multi_tenant_pattern": "per-tenant" } } }, "certificate_chainReplaceResponse": { "type": "object", "x-ves-proto-message": "ves.io.schema.certificate_chain.ReplaceResponse", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for certificate_chainReplaceResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for certificate_chainReplaceResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "certificates", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": true }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Certificate chains can be managed in any namespace" }, "classification": { "category": "certificate", "multi_tenant_pattern": "per-tenant" } } }, "certificate_chainReplaceSpecType": { "type": "object", "description": "Shape of the Certificate Chain specification.", "title": "Replace Certificate Chain", "x-displayname": "Replace Certificate Chain.", "x-ves-proto-message": "ves.io.schema.certificate_chain.ReplaceSpecType", "x-f5xc-description-short": "Shape of the Certificate Chain specification.", "x-f5xc-minimum-configuration": { "description": "TLS certificate for securing HTTPS endpoints and connections", "required_fields": [ "metadata.name", "metadata.namespace", "spec.certificate_url", "spec.private_key" ], "mutually_exclusive_groups": [ { "name": "private_key_type", "fields": [ "spec.private_key.clear_secret_info", "spec.private_key.blindfold_secret_info" ], "reason": "Clear text (automation) vs blindfold-encrypted (production)" } ], "example_yaml": "apiVersion: v1\nkind: certificate\nmetadata:\n name: example-cert\n namespace: default\nspec:\n certificate_url: \"string:///BASE64_ENCODED_CERTIFICATE\"\n private_key:\n clear_secret_info:\n url: \"string:///BASE64_ENCODED_PRIVATE_KEY\"\n provider: \"\"\n", "example_json": "{\n \"metadata\": {\n \"name\": \"example-cert\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"certificate_url\": \"string:///{{CERT_B64}}\",\n \"private_key\": {\n \"clear_secret_info\": {\n \"url\": \"string:///{{KEY_B64}}\",\n \"provider\": \"\"\n }\n }\n }\n}\n" }, "x-f5xc-cli-domain": "certificates", "x-f5xc-recommended-oneof-variant": { "ocsp_stapling_choice": "use_system_defaults" }, "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": true }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Certificate chains can be managed in any namespace" }, "classification": { "category": "certificate", "multi_tenant_pattern": "per-tenant" } } }, "certificate_chainStatusObject": { "type": "object", "description": "Most recently observed status of object.", "title": "Status for Certificate Chain", "x-displayname": "Status", "x-ves-proto-message": "ves.io.schema.certificate_chain.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/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 certificate_chainStatusObject", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for certificate_chainStatusObject\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "certificates", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": true }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Certificate chains can be managed in any namespace" }, "classification": { "category": "certificate", "multi_tenant_pattern": "per-tenant" } } }, "trusted_ca_listCreateRequest": { "type": "object", "description": "This is the input message of the 'Create' RPC.", "title": "CreateRequest is used to create an instance of trusted_ca_list", "x-displayname": "Create Request.", "x-ves-proto-message": "ves.io.schema.trusted_ca_list.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/trusted_ca_listCreateSpecType" } ], "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 trusted_ca_listCreateRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for trusted_ca_listCreateRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "certificates", "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" } } }, "trusted_ca_listCreateResponse": { "type": "object", "x-ves-proto-message": "ves.io.schema.trusted_ca_list.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/trusted_ca_listGetSpecType" } ], "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 trusted_ca_listCreateResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for trusted_ca_listCreateResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "certificates", "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" } } }, "trusted_ca_listCreateSpecType": { "type": "object", "description": "Shape of the Root CA Certificate specification.", "title": "Create Root CA Certificate", "x-displayname": "Create Root CA Certificate.", "x-ves-proto-message": "ves.io.schema.trusted_ca_list.CreateSpecType", "properties": { "trusted_ca_url": { "type": "string", "description": "Trusted CA certificates for validating certificates.", "maxLength": 512000, "x-displayname": "Root CA Certificate.", "x-ves-example": "Cert", "x-ves-validation-rules": { "ves.io.schema.rules.string.max_len": "512000", "ves.io.schema.rules.string.truststore_url": "true" }, "x-f5xc-example": "cert", "x-validation-rules": { "ves.io.schema.rules.string.max_len": "512000", "ves.io.schema.rules.string.truststore_url": "true" }, "x-f5xc-description-short": "Trusted CA certificates for validating certificates.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 512000, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Shape of the Root CA Certificate specification.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for trusted_ca_listCreateSpecType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for trusted_ca_listCreateSpecType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "certificates", "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" } } }, "trusted_ca_listDeleteRequest": { "type": "object", "description": "This is the input message of the 'DELETE' RPC.", "title": "DeleteRequest is used to delete a trusted_ca_list", "x-displayname": "DELETE Request.", "x-ves-proto-message": "ves.io.schema.trusted_ca_list.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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for trusted_ca_listDeleteRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for trusted_ca_listDeleteRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "certificates", "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" } } }, "trusted_ca_listGetResponse": { "type": "object", "description": "This is the output message of the 'GET' RPC.", "title": "GetResponse is the shape of a read trusted_ca_list", "x-displayname": "GET Response.", "x-ves-proto-message": "ves.io.schema.trusted_ca_list.GetResponse", "properties": { "create_form": { "allOf": [ { "$ref": "#/components/schemas/trusted_ca_listCreateRequest" } ], "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/trusted_ca_listReplaceRequest" } ], "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/trusted_ca_listGetSpecType" } ], "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/trusted_ca_listStatusObject" }, "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-08-20T09:12:47+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 trusted_ca_listGetResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for trusted_ca_listGetResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "certificates", "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" } } }, "trusted_ca_listGetSpecType": { "type": "object", "description": "Shape of the Root CA Certificate specification.", "title": "Get Root CA Certificate", "x-displayname": "GET Root CA Certificate.", "x-ves-proto-message": "ves.io.schema.trusted_ca_list.GetSpecType", "properties": { "infos": { "type": "array", "description": "Information about Trusted CA certificates.", "items": { "$ref": "#/components/schemas/schemaCertInfoType" }, "x-displayname": "Trusted CA Certificates Information.", "x-f5xc-description-short": "Information about Trusted CA certificates.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "trusted_ca_url": { "type": "string", "description": "Trusted CA certificates for validating certificates.", "maxLength": 512000, "x-displayname": "Root CA Certificate.", "x-ves-example": "Cert", "x-ves-validation-rules": { "ves.io.schema.rules.string.max_len": "512000", "ves.io.schema.rules.string.truststore_url": "true" }, "x-f5xc-example": "cert", "x-validation-rules": { "ves.io.schema.rules.string.max_len": "512000", "ves.io.schema.rules.string.truststore_url": "true" }, "x-f5xc-description-short": "Trusted CA certificates for validating certificates.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 512000, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Shape of the Root CA Certificate specification.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for trusted_ca_listGetSpecType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for trusted_ca_listGetSpecType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "certificates", "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" } } }, "trusted_ca_listListResponse": { "type": "object", "description": "This is the output message of 'List' RPC.", "title": "ListResponse is the collection of trusted_ca_list", "x-displayname": "List Response.", "x-ves-proto-message": "ves.io.schema.trusted_ca_list.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/trusted_ca_listListResponseItem" }, "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for trusted_ca_listListResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for trusted_ca_listListResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "certificates", "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" } } }, "trusted_ca_listListResponseItem": { "type": "object", "description": "By default a summary of trusted_ca_list 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 trusted_ca_list", "x-displayname": "List Item", "x-ves-proto-message": "ves.io.schema.trusted_ca_list.ListResponseItem", "properties": { "annotations": { "type": "object", "description": "The set of annotations present on this trusted_ca_list.", "title": "annotations", "x-displayname": "Annotations.", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "The set of annotations present on this trusted_ca_list.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "description": { "type": "string", "description": "The description set for this trusted_ca_list.", "title": "description", "x-displayname": "Description.", "x-f5xc-description-short": "The description set for this trusted_ca_list.", "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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "disabled": { "type": "boolean", "description": "A value of true indicates trusted_ca_list is administratively disabled.", "title": "disabled", "format": "boolean", "x-displayname": "Disabled", "x-f5xc-example": "True", "x-f5xc-description-short": "Value of true indicates trusted_ca_list is administratively disabled.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "get_spec": { "allOf": [ { "$ref": "#/components/schemas/trusted_ca_listGetSpecType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "labels": { "type": "object", "description": "The set of labels present on this trusted_ca_list.", "title": "labels", "x-displayname": "Labels", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "The set of labels present on this trusted_ca_list.", "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 trusted_ca_list.", "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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/trusted_ca_listStatusObject" }, "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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "uid": { "type": "string", "description": "The unique uid of this trusted_ca_list.", "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-08-20T09:12:47+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-08-20T09:12:47+00:00" } }, "x-f5xc-description-short": "By default a summary of trusted_ca_list 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 trusted_ca_list 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 trusted_ca_listListResponseItem", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for trusted_ca_listListResponseItem\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "certificates", "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" } } }, "trusted_ca_listReplaceRequest": { "type": "object", "description": "This is the input message of the 'Replace' RPC.", "title": "ReplaceRequest is used to replace contents of a trusted_ca_list", "x-displayname": "Replace Request.", "x-ves-proto-message": "ves.io.schema.trusted_ca_list.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/trusted_ca_listReplaceSpecType" } ], "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 trusted_ca_listReplaceRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for trusted_ca_listReplaceRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "certificates", "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" } } }, "trusted_ca_listReplaceResponse": { "type": "object", "x-ves-proto-message": "ves.io.schema.trusted_ca_list.ReplaceResponse", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for trusted_ca_listReplaceResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for trusted_ca_listReplaceResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "certificates", "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" } } }, "trusted_ca_listReplaceSpecType": { "type": "object", "description": "Shape of the Root CA Certificate specification.", "title": "Replace Root CA Certificate", "x-displayname": "Replace Root CA Certificate.", "x-ves-proto-message": "ves.io.schema.trusted_ca_list.ReplaceSpecType", "properties": { "trusted_ca_url": { "type": "string", "description": "Trusted CA certificates for validating certificates.", "maxLength": 512000, "x-displayname": "Root CA Certificate.", "x-ves-example": "Cert", "x-ves-validation-rules": { "ves.io.schema.rules.string.max_len": "512000", "ves.io.schema.rules.string.truststore_url": "true" }, "x-f5xc-example": "cert", "x-validation-rules": { "ves.io.schema.rules.string.max_len": "512000", "ves.io.schema.rules.string.truststore_url": "true" }, "x-f5xc-description-short": "Trusted CA certificates for validating certificates.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 512000, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Shape of the Root CA Certificate specification.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for trusted_ca_listReplaceSpecType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for trusted_ca_listReplaceSpecType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "certificates", "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" } } }, "trusted_ca_listStatusObject": { "type": "object", "description": "Most recently observed status of object.", "title": "Trusted CA List Status", "x-displayname": "Status Object.", "x-ves-proto-message": "ves.io.schema.trusted_ca_list.StatusObject", "properties": { "conditions": { "type": "array", "description": "Conditions reported by various components of the system.", "title": "conditions", "items": { "$ref": "#/components/schemas/schemaConditionType" }, "x-displayname": "Conditions.", "x-f5xc-description-short": "Conditions reported by various components 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/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 trusted_ca_listStatusObject", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for trusted_ca_listStatusObject\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "certificates", "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" } } } }, "responses": {}, "parameters": {}, "requestBodies": {} } }, "cloud_infrastructure": { "openapi": "3.0.3", "info": { "title": "Cloud Infrastructure", "description": "Hyperscaler integration supporting Amazon Web Services, Microsoft Azure, and Google Cloud Platform environments. Virtual network attachment workflows enable elastic compute provisioning with automatic reattachment capabilities. Edge authentication secrets for provider access. Segment telemetry and cross-region link reapplication for distributed deployments. Autonomous path synchronization across peered networks with real-time topology updates.", "version": "4.0.0", "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": "Hyperscaler integration supporting Amazon Web Services, Microsoft Azure, and Google Cloud Platform environments. Virtual network attachment workflows enable elastic compute provisioning with automatic reattachment capabilities. Edge authentication secrets for provider access. Segment telemetry and cross-region link reapplication for distributed deployments. Autonomous path synchronization across peered networks with real-time topology updates.", "x-f5xc-summary": "Multi-cloud provider connections with gateway peering and network path configuration. Credential vault integration and subnet enumeration.", "x-f5xc-cli-domain": "cloud_infrastructure", "externalDocs": { "url": "https://docs.cloud.f5.com/docs/how-to/site-management/create-cloud-credentials", "description": "F5 XC Documentation - Cloud Infrastructure" }, "x-f5xc-api-reference-url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/cloud_infrastructure/", "x-f5xc-best-practices": { "common_errors": [ { "code": 400, "message": "Invalid request body", "resolution": "Validate JSON structure and required fields before submission", "prevention": "Use schema validation from OpenAPI spec" }, { "code": 401, "message": "Authentication failed", "resolution": "Verify API token is valid and not expired", "prevention": "Use environment variables for token management" }, { "code": 403, "message": "Permission denied", "resolution": "Check user role and namespace permissions", "prevention": "Verify RBAC policies before operations" }, { "code": 404, "message": "Resource not found", "resolution": "Verify resource name and namespace exist", "prevention": "List resources before attempting operations" }, { "code": 409, "message": "Resource already exists", "resolution": "Use unique name or delete existing resource", "prevention": "Check existence before creation" }, { "code": 429, "message": "Rate limit exceeded", "resolution": "Implement exponential backoff and retry logic", "prevention": "Batch operations and add delays between requests" } ], "security_notes": [ "Always use HTTPS for all API communications", "Store API tokens securely, never in source code", "Rotate API tokens regularly following security policies" ], "performance_tips": [ "Use pagination for large result sets", "Batch related operations when possible", "Cache read-only responses appropriately" ] }, "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "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": "config" }, { "name": "data" }, { "name": "sync-cloud-data" } ], "paths": { "/api/config/namespaces/{namespace}/certified_hardwares": { "get": { "summary": "List Certified Hardware.", "description": "List the set of certified_hardware in a namespace.", "operationId": "ves.io.schema.certified_hardware.API.List", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/certified_hardwareListResponse" } } } }, "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 certified_hardware.", "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/cloud_infrastructure/" }, "x-ves-proto-rpc": "ves.io.schema.certified_hardware.API.List", "tags": [ "config" ], "x-f5xc-operation-metadata": { "purpose": "TLS/SSL certificate management", "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-discovered-response-time-ms": 164.25, "x-discovered-sample-size": 1, "x-f5xc-discovered-response-time": { "p50_ms": 164.25, "p95_ms": 328.5, "p99_ms": 492.75, "sample_count": 1, "source": "discovery", "last_measured": "2025-12-20T19:39:20.211392+00:00" } }, "x-displayname": "Certified Hardware.", "x-ves-proto-service": "ves.io.schema.certified_hardware.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{namespace}/certified_hardwares/{name}": { "get": { "summary": "GET Certified Hardware.", "description": "GET Certified Hardware object.", "operationId": "ves.io.schema.certified_hardware.API.Get", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/certified_hardwareGetResponse" } } } }, "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/cloud_infrastructure/" }, "x-ves-proto-rpc": "ves.io.schema.certified_hardware.API.Get", "tags": [ "config" ], "x-f5xc-operation-metadata": { "purpose": "TLS/SSL certificate 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": "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": "Certified Hardware.", "x-ves-proto-service": "ves.io.schema.certified_hardware.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/sync-cloud-data/namespaces/system/cloud_connect_reapply_vpc_attachment": { "post": { "summary": "ReApplyVPCAttachment.", "description": "RE-applies VPC attachment in a cloud connect config.", "operationId": "ves.io.schema.cloud_connect.CloudDataCustomAPI.ReApplyVPCAttachment", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/cloud_connectReApplyVPCAttachmentResponse" } } } }, "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/cloud_connectReApplyVPCAttachmentRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/cloud_infrastructure/" }, "x-ves-proto-rpc": "ves.io.schema.cloud_connect.CloudDataCustomAPI.ReApplyVPCAttachment", "tags": [ "sync-cloud-data" ], "x-f5xc-operation-metadata": { "purpose": "Resource creation operation", "required_fields": [ "metadata.name", "metadata.namespace" ], "optional_fields": [], "field_docs": {}, "conditions": { "prerequisites": [ "Active namespace" ], "postconditions": [ "Cloud-connect-reapply-vpc-attachment resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "cloud-connect-reapply-vpc-attachment" ] }, "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": [ "cloud-connect-reapply-vpc-attachment" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "Cloud Connect.", "x-ves-proto-service": "ves.io.schema.cloud_connect.CloudDataCustomAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/data/namespaces/system/cloud_connects/metrics": { "post": { "summary": "All Cloud Connect Metrics.", "description": "Cloud Connect APIs are used to GET the data for cloud connect.", "operationId": "ves.io.schema.cloud_connect.CustomAPI.ListMetrics", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/cloud_connectListMetricsResponse" } } } }, "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/cloud_connectListMetricsRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/cloud_infrastructure/" }, "x-ves-proto-rpc": "ves.io.schema.cloud_connect.CustomAPI.ListMetrics", "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": [ "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" ], "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": "Cloud Connect.", "x-ves-proto-service": "ves.io.schema.cloud_connect.CustomAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/data/namespaces/system/cloud_connects/segment_metrics": { "post": { "summary": "All Cloud Connect Segment Metrics.", "description": "Cloud Connect APIs are used to GET the segment data for cloud connect.", "operationId": "ves.io.schema.cloud_connect.CustomAPI.ListSegmentMetrics", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/cloud_connectListSegmentMetricsResponse" } } } }, "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/cloud_connectListSegmentMetricsRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/cloud_infrastructure/" }, "x-ves-proto-rpc": "ves.io.schema.cloud_connect.CustomAPI.ListSegmentMetrics", "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": [ "Segment-metric resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "segment-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": [ "segment-metric" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "Cloud Connect.", "x-ves-proto-service": "ves.io.schema.cloud_connect.CustomAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/data/namespaces/system/cloud_connects/{name}/metrics": { "post": { "summary": "Cloud Connect Metrics.", "description": "Cloud Connect Metrics queries metrics for a specified cloud connect.", "operationId": "ves.io.schema.cloud_connect.CustomAPI.GetMetrics", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/cloud_connectGetMetricsResponse" } } } }, "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": "name", "description": "Name\n\nx-required\nCloud Connect name.", "in": "path", "required": true, "x-displayname": "Name", "schema": { "type": "string" }, "x-f5xc-example": "cloud_connect-1" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/cloud_connectGetMetricsRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/cloud_infrastructure/" }, "x-ves-proto-rpc": "ves.io.schema.cloud_connect.CustomAPI.GetMetrics", "tags": [ "data" ], "x-f5xc-operation-metadata": { "purpose": "Resource creation operation", "required_fields": [ "metadata.name", "metadata.namespace", "path.name" ], "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.name" ], "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": "Cloud Connect.", "x-ves-proto-service": "ves.io.schema.cloud_connect.CustomAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/sync-cloud-data/namespaces/system/discover_vpc": { "post": { "summary": "Cloud Connect VPC Discovery.", "description": "Returns all the vpcs for a specified cloud provider, region and cred.\nFor AWS it returns all the vpcs which are not attached to any transit gateway in that region.", "operationId": "ves.io.schema.cloud_connect.CloudDataCustomAPI.DiscoverVPC", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/cloud_connectDiscoverVPCResponse" } } } }, "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/cloud_connectDiscoverVPCRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/cloud_infrastructure/" }, "x-ves-proto-rpc": "ves.io.schema.cloud_connect.CloudDataCustomAPI.DiscoverVPC", "tags": [ "sync-cloud-data" ], "x-f5xc-operation-metadata": { "purpose": "Resource creation operation", "required_fields": [ "metadata.name", "metadata.namespace" ], "optional_fields": [], "field_docs": {}, "conditions": { "prerequisites": [ "Active namespace" ], "postconditions": [ "Discover-vpc resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "discover-vpc" ] }, "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": [ "discover-vpc" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "Cloud Connect.", "x-ves-proto-service": "ves.io.schema.cloud_connect.CloudDataCustomAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/config/namespaces/system/edge_credentials": { "post": { "summary": "Cloud Credential.", "description": "Returns the cloud credential for the matching edge type.", "operationId": "ves.io.schema.cloud_connect.ConfigCustomAPI.EdgeCredentials", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/cloud_connectCredentialsResponse" } } } }, "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/cloud_connectCredentialsRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/cloud_infrastructure/" }, "x-ves-proto-rpc": "ves.io.schema.cloud_connect.ConfigCustomAPI.EdgeCredentials", "tags": [ "config" ], "x-f5xc-operation-metadata": { "purpose": "Authentication credential for access control", "required_fields": [ "metadata.name", "metadata.namespace" ], "optional_fields": [], "field_docs": {}, "conditions": { "prerequisites": [ "Active namespace" ], "postconditions": [ "Edge-credential resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "edge-credential" ] }, "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": [ "edge-credential" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "Cloud Connect.", "x-ves-proto-service": "ves.io.schema.cloud_connect.ConfigCustomAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/config/namespaces/system/edge_list": { "get": { "summary": "Edge List", "description": "Returns the online edge sites (Both Customer Edge and Cloud Edge)", "operationId": "ves.io.schema.cloud_connect.ConfigCustomAPI.EdgeList", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/cloud_connectEdgeListResponse" } } } }, "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" } } } } }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/cloud_infrastructure/" }, "x-ves-proto-rpc": "ves.io.schema.cloud_connect.ConfigCustomAPI.EdgeList", "tags": [ "config" ], "x-f5xc-operation-metadata": { "purpose": "Resource retrieval operation", "required_fields": [], "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-danger-level": "low", "x-f5xc-discovered-response-time": { "p50_ms": 200, "p95_ms": 800, "p99_ms": 2000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "Cloud Connect.", "x-ves-proto-service": "ves.io.schema.cloud_connect.ConfigCustomAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/data/namespaces/system/top/cloud_connects": { "post": { "summary": "Top Cloud Connect.", "description": "Request to GET top cloud connect from the AWS Cloudwatch metrics.", "operationId": "ves.io.schema.cloud_connect.CustomAPI.TopCloudConnect", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/cloud_connectTopCloudConnectResponse" } } } }, "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/cloud_connectTopCloudConnectRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/cloud_infrastructure/" }, "x-ves-proto-rpc": "ves.io.schema.cloud_connect.CustomAPI.TopCloudConnect", "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": [ "Cloud-connect resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "cloud-connect" ] }, "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": [ "cloud-connect" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "Cloud Connect.", "x-ves-proto-service": "ves.io.schema.cloud_connect.CustomAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/config/namespaces/{metadata.namespace}/cloud_connects": { "post": { "summary": "Create Cloud Connect.", "description": "Shape of the Cloud Connect specification.", "operationId": "ves.io.schema.cloud_connect.API.Create", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/cloud_connectCreateResponse" } } } }, "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/cloud_connectCreateRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/cloud_infrastructure/" }, "x-ves-proto-rpc": "ves.io.schema.cloud_connect.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": [ "Cloud-connect resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "cloud-connect" ] }, "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": [ "cloud-connect" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "Cloud Connect.", "x-ves-proto-service": "ves.io.schema.cloud_connect.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{metadata.namespace}/cloud_connects/{metadata.name}": { "put": { "summary": "Replace Cloud Connect.", "description": "Shape of the Cloud Connect specification.", "operationId": "ves.io.schema.cloud_connect.API.Replace", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/cloud_connectReplaceResponse" } } } }, "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/cloud_connectReplaceRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/cloud_infrastructure/" }, "x-ves-proto-rpc": "ves.io.schema.cloud_connect.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": [ "cloud-connect" ] }, "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": [ "cloud-connect" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 800, "p95_ms": 2500, "p99_ms": 6000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "Cloud Connect.", "x-ves-proto-service": "ves.io.schema.cloud_connect.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{namespace}/cloud_connects": { "get": { "summary": "List Cloud Connect.", "description": "List the set of cloud_connect in a namespace.", "operationId": "ves.io.schema.cloud_connect.API.List", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/cloud_connectListResponse" } } } }, "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 cloud_connect.", "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/cloud_infrastructure/" }, "x-ves-proto-rpc": "ves.io.schema.cloud_connect.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": "Cloud Connect.", "x-ves-proto-service": "ves.io.schema.cloud_connect.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{namespace}/cloud_connects/{name}": { "get": { "summary": "GET Cloud Connect.", "description": "Shape of the Cloud Connect specification.", "operationId": "ves.io.schema.cloud_connect.API.Get", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/cloud_connectGetResponse" } } } }, "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/cloud_infrastructure/" }, "x-ves-proto-rpc": "ves.io.schema.cloud_connect.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 Cloud Connect.", "description": "DELETE the specified cloud_connect.", "operationId": "ves.io.schema.cloud_connect.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/cloud_connectDeleteRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/cloud_infrastructure/" }, "x-ves-proto-rpc": "ves.io.schema.cloud_connect.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": [ "cloud-connect", "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": [ "cloud-connect", "contained_resources" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 500, "p95_ms": 1500, "p99_ms": 4000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "Cloud Connect.", "x-ves-proto-service": "ves.io.schema.cloud_connect.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{metadata.namespace}/cloud_credentialss": { "post": { "summary": "Create Cloud Credentials.", "description": "API to create cloud_credentials object.", "operationId": "ves.io.schema.cloud_credentials.API.Create", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/cloud_credentialsCreateResponse" } } } }, "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/cloud_credentialsCreateRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/cloud_infrastructure/" }, "x-ves-proto-rpc": "ves.io.schema.cloud_credentials.API.Create", "tags": [ "config" ], "x-f5xc-operation-metadata": { "purpose": "Authentication credential for access control", "required_fields": [ "metadata.name", "metadata.namespace", "path.metadata.namespace" ], "optional_fields": [], "field_docs": {}, "conditions": { "prerequisites": [ "Active namespace" ], "postconditions": [ "Cloud-credentials resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "cloud-credentials" ] }, "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": [ "cloud-credentials" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "Cloud Credentials.", "x-ves-proto-service": "ves.io.schema.cloud_credentials.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{metadata.namespace}/cloud_credentialss/{metadata.name}": { "put": { "summary": "Replace Cloud Credentials.", "description": "API to replace cloud_credentials object.", "operationId": "ves.io.schema.cloud_credentials.API.Replace", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/cloud_credentialsReplaceResponse" } } } }, "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/cloud_credentialsReplaceRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/cloud_infrastructure/" }, "x-ves-proto-rpc": "ves.io.schema.cloud_credentials.API.Replace", "tags": [ "config" ], "x-f5xc-operation-metadata": { "purpose": "Authentication credential for access control", "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": [ "cloud-credentials" ] }, "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": [ "cloud-credentials" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 800, "p95_ms": 2500, "p99_ms": 6000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "Cloud Credentials.", "x-ves-proto-service": "ves.io.schema.cloud_credentials.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{namespace}/cloud_credentialss": { "get": { "summary": "List Cloud Credentials.", "description": "List the set of cloud_credentials in a namespace.", "operationId": "ves.io.schema.cloud_credentials.API.List", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/cloud_credentialsListResponse" } } } }, "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 cloud_credentials.", "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/cloud_infrastructure/" }, "x-ves-proto-rpc": "ves.io.schema.cloud_credentials.API.List", "tags": [ "config" ], "x-f5xc-operation-metadata": { "purpose": "Authentication credential for access control", "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-discovered-response-time-ms": 176.41, "x-discovered-sample-size": 1, "x-f5xc-discovered-response-time": { "p50_ms": 176.41, "p95_ms": 352.82, "p99_ms": 529.23, "sample_count": 1, "source": "discovery", "last_measured": "2025-12-20T19:39:20.211392+00:00" } }, "x-displayname": "Cloud Credentials.", "x-ves-proto-service": "ves.io.schema.cloud_credentials.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{namespace}/cloud_credentialss/{name}": { "get": { "summary": "GET Cloud Credentials.", "description": "API to GET cloud_credentials object.", "operationId": "ves.io.schema.cloud_credentials.API.Get", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/cloud_credentialsGetResponse" } } } }, "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/cloud_infrastructure/" }, "x-ves-proto-rpc": "ves.io.schema.cloud_credentials.API.Get", "tags": [ "config" ], "x-f5xc-operation-metadata": { "purpose": "Authentication credential for access control", "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 Cloud Credentials.", "description": "DELETE the specified cloud_credentials.", "operationId": "ves.io.schema.cloud_credentials.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/cloud_credentialsDeleteRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/cloud_infrastructure/" }, "x-ves-proto-rpc": "ves.io.schema.cloud_credentials.API.Delete", "tags": [ "config" ], "x-f5xc-operation-metadata": { "purpose": "Authentication credential for access control", "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": [ "cloud-credentials", "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": [ "cloud-credentials", "contained_resources" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 500, "p95_ms": 1500, "p99_ms": 4000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "Cloud Credentials.", "x-ves-proto-service": "ves.io.schema.cloud_credentials.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/system/cloud_elastic_ip/{name}/force-delete": { "post": { "summary": "Force DELETE Cloud Elastic IP.", "description": "Force DELETE Cloud Elastic IP.", "operationId": "ves.io.schema.cloud_elastic_ip.CustomAPI.ForceDeleteCloudElasticIP", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/cloud_elastic_ipForceDeleteCloudElasticIPResponse" } } } }, "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": "name", "description": "Name\nName of the Cloud Elastic IP object to be force deleted.", "in": "path", "required": true, "x-displayname": "Name", "schema": { "type": "string" }, "x-f5xc-example": "cloud-elastic-ip-1" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/cloud_elastic_ipForceDeleteCloudElasticIPRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/cloud_infrastructure/" }, "x-ves-proto-rpc": "ves.io.schema.cloud_elastic_ip.CustomAPI.ForceDeleteCloudElasticIP", "tags": [ "config" ], "x-f5xc-operation-metadata": { "purpose": "Resource creation operation", "required_fields": [ "metadata.name", "metadata.namespace", "path.name" ], "optional_fields": [], "field_docs": {}, "conditions": { "prerequisites": [ "Active namespace" ], "postconditions": [ "Force-delete resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "force-delete" ] }, "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" ], "x-f5xc-danger-level": "medium", "x-f5xc-side-effects": { "creates": [ "force-delete" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "Cloud Elastic IP.", "x-ves-proto-service": "ves.io.schema.cloud_elastic_ip.CustomAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/config/namespaces/{metadata.namespace}/cloud_elastic_ips": { "post": { "summary": "Create Cloud Elastic IP.", "description": "Create Cloud Elastic IP creates Cloud Elastic IP object\nObject is attached to a site.", "operationId": "ves.io.schema.cloud_elastic_ip.API.Create", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/cloud_elastic_ipCreateResponse" } } } }, "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/cloud_elastic_ipCreateRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/cloud_infrastructure/" }, "x-ves-proto-rpc": "ves.io.schema.cloud_elastic_ip.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": [ "Cloud-elastic-ip resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "cloud-elastic-ip" ] }, "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": [ "cloud-elastic-ip" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "Cloud Elastic IP.", "x-ves-proto-service": "ves.io.schema.cloud_elastic_ip.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{metadata.namespace}/cloud_elastic_ips/{metadata.name}": { "put": { "summary": "Replace Cloud Elastic IP.", "description": "Replace cloud elastic IP will replace cloud elastic IP object with new object.", "operationId": "ves.io.schema.cloud_elastic_ip.API.Replace", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/cloud_elastic_ipReplaceResponse" } } } }, "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/cloud_elastic_ipReplaceRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/cloud_infrastructure/" }, "x-ves-proto-rpc": "ves.io.schema.cloud_elastic_ip.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": [ "cloud-elastic-ip" ] }, "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": [ "cloud-elastic-ip" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 800, "p95_ms": 2500, "p99_ms": 6000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "Cloud Elastic IP.", "x-ves-proto-service": "ves.io.schema.cloud_elastic_ip.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{namespace}/cloud_elastic_ips": { "get": { "summary": "List Cloud Elastic IP.", "description": "List the set of cloud_elastic_ip in a namespace.", "operationId": "ves.io.schema.cloud_elastic_ip.API.List", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/cloud_elastic_ipListResponse" } } } }, "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 cloud_elastic_ip.", "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/cloud_infrastructure/" }, "x-ves-proto-rpc": "ves.io.schema.cloud_elastic_ip.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": "Cloud Elastic IP.", "x-ves-proto-service": "ves.io.schema.cloud_elastic_ip.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{namespace}/cloud_elastic_ips/{name}": { "get": { "summary": "GET Cloud Elastic IP.", "description": "GET cloud elastic IP will GET the object from the storage backend for namespace metadata.namespace.", "operationId": "ves.io.schema.cloud_elastic_ip.API.Get", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/cloud_elastic_ipGetResponse" } } } }, "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/cloud_infrastructure/" }, "x-ves-proto-rpc": "ves.io.schema.cloud_elastic_ip.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 Cloud Elastic IP.", "description": "DELETE the specified cloud_elastic_ip.", "operationId": "ves.io.schema.cloud_elastic_ip.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/cloud_elastic_ipDeleteRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/cloud_infrastructure/" }, "x-ves-proto-rpc": "ves.io.schema.cloud_elastic_ip.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": [ "cloud-elastic-ip", "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": [ "cloud-elastic-ip", "contained_resources" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 500, "p95_ms": 1500, "p99_ms": 4000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "Cloud Elastic IP.", "x-ves-proto-service": "ves.io.schema.cloud_elastic_ip.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{metadata.namespace}/cloud_regions/{metadata.name}": { "put": { "summary": "Replace Cloud Region.", "description": "Shape of the cloud RE specification.", "operationId": "ves.io.schema.cloud_region.API.Replace", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/cloud_regionReplaceResponse" } } } }, "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/cloud_regionReplaceRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/cloud_infrastructure/" }, "x-ves-proto-rpc": "ves.io.schema.cloud_region.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": [ "cloud-region" ] }, "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": [ "cloud-region" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 800, "p95_ms": 2500, "p99_ms": 6000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "Cloud Region.", "x-ves-proto-service": "ves.io.schema.cloud_region.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{namespace}/cloud_regions": { "get": { "summary": "List Cloud Region.", "description": "List the set of cloud_region in a namespace.", "operationId": "ves.io.schema.cloud_region.API.List", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/cloud_regionListResponse" } } } }, "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 cloud_region.", "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/cloud_infrastructure/" }, "x-ves-proto-rpc": "ves.io.schema.cloud_region.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": "Cloud Region.", "x-ves-proto-service": "ves.io.schema.cloud_region.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{namespace}/cloud_regions/{name}": { "get": { "summary": "GET Cloud Region.", "description": "Shape of the cloud RE specification.", "operationId": "ves.io.schema.cloud_region.API.Get", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/cloud_regionGetResponse" } } } }, "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 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_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/cloud_infrastructure/" }, "x-ves-proto-rpc": "ves.io.schema.cloud_region.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" } }, "x-displayname": "Cloud Region.", "x-ves-proto-service": "ves.io.schema.cloud_region.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/system/cloud_links/{name}/reapply_config": { "post": { "summary": "CloudLink", "description": "Reapply CloudLink Config.", "operationId": "ves.io.schema.cloud_link.CustomDataAPI.ReapplyConfig", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/cloud_linkReapplyConfigResponse" } } } }, "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": "name", "description": "Name\nName of Cloud Link.", "in": "path", "required": true, "x-displayname": "Name", "schema": { "type": "string" }, "x-f5xc-example": "aws-cloud-link-east" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/cloud_linkReapplyConfigRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/cloud_infrastructure/" }, "x-ves-proto-rpc": "ves.io.schema.cloud_link.CustomDataAPI.ReapplyConfig", "tags": [ "config" ], "x-f5xc-operation-metadata": { "purpose": "Resource creation operation", "required_fields": [ "metadata.name", "metadata.namespace", "path.name" ], "optional_fields": [], "field_docs": {}, "conditions": { "prerequisites": [ "Active namespace" ], "postconditions": [ "Reapply-config resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "reapply-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.name" ], "x-f5xc-danger-level": "medium", "x-f5xc-side-effects": { "creates": [ "reapply-config" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "CloudLink", "x-ves-proto-service": "ves.io.schema.cloud_link.CustomDataAPI", "x-ves-proto-service-type": "CUSTOM_PUBLIC" }, "/api/config/namespaces/{metadata.namespace}/cloud_links": { "post": { "summary": "Create CloudLink.", "description": "Creates a new CloudLink with configured parameters.", "operationId": "ves.io.schema.cloud_link.API.Create", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/cloud_linkCreateResponse" } } } }, "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/cloud_linkCreateRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/cloud_infrastructure/" }, "x-ves-proto-rpc": "ves.io.schema.cloud_link.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": [ "Cloud-link resource created", "Resource assigned unique identifier" ] }, "side_effects": { "creates": [ "cloud-link" ] }, "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": [ "cloud-link" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 1000, "p95_ms": 3000, "p99_ms": 8000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "CloudLink", "x-ves-proto-service": "ves.io.schema.cloud_link.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{metadata.namespace}/cloud_links/{metadata.name}": { "put": { "summary": "Replace CloudLink.", "description": "Replaces configured CloudLink with new set of parameters.", "operationId": "ves.io.schema.cloud_link.API.Replace", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/cloud_linkReplaceResponse" } } } }, "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/cloud_linkReplaceRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/cloud_infrastructure/" }, "x-ves-proto-rpc": "ves.io.schema.cloud_link.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": [ "cloud-link" ] }, "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": [ "cloud-link" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 800, "p95_ms": 2500, "p99_ms": 6000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "CloudLink", "x-ves-proto-service": "ves.io.schema.cloud_link.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{namespace}/cloud_links": { "get": { "summary": "List CloudLink.", "description": "List the set of cloud_link in a namespace.", "operationId": "ves.io.schema.cloud_link.API.List", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/cloud_linkListResponse" } } } }, "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 cloud_link.", "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/cloud_infrastructure/" }, "x-ves-proto-rpc": "ves.io.schema.cloud_link.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": "CloudLink", "x-ves-proto-service": "ves.io.schema.cloud_link.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" }, "/api/config/namespaces/{namespace}/cloud_links/{name}": { "get": { "summary": "GET CloudLink.", "description": "Gets CloudLink parameters.", "operationId": "ves.io.schema.cloud_link.API.Get", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/cloud_linkGetResponse" } } } }, "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/cloud_infrastructure/" }, "x-ves-proto-rpc": "ves.io.schema.cloud_link.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 CloudLink.", "description": "DELETE the specified cloud_link.", "operationId": "ves.io.schema.cloud_link.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/cloud_linkDeleteRequest" } } }, "required": true }, "externalDocs": { "description": "Examples of this operation.", "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/cloud_infrastructure/" }, "x-ves-proto-rpc": "ves.io.schema.cloud_link.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": [ "cloud-link", "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": [ "cloud-link", "contained_resources" ] }, "x-f5xc-discovered-response-time": { "p50_ms": 500, "p95_ms": 1500, "p99_ms": 4000, "sample_count": 0, "source": "estimate" } }, "x-displayname": "CloudLink", "x-ves-proto-service": "ves.io.schema.cloud_link.API", "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC" } }, "components": { "securitySchemes": { "ApiToken": { "type": "apiKey", "name": "Authorization", "in": "header", "description": "API Token authentication. Format: 'APIToken '" }, "apiKeyAuth": { "type": "apiKey", "in": "header", "name": "Authorization", "description": "F5 XC API Token (format: APIToken )" } }, "schemas": { "certified_hardwareAws": { "type": "object", "description": "AWS specific information.", "title": "AWS", "x-displayname": "AWS", "x-ves-oneof-field-image": "[\"image_id\"]", "x-ves-proto-message": "ves.io.schema.certified_hardware.Aws", "properties": { "image_id": { "allOf": [ { "$ref": "#/components/schemas/certified_hardwareAwsImage" } ], "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 certified_hardwareAws", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for certified_hardwareAws\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cloud_infrastructure", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "certified_hardwareAwsImage": { "type": "object", "x-ves-proto-message": "ves.io.schema.certified_hardware.AwsImage", "properties": { "image_id": { "type": "string", "description": "AWS ami image.", "title": "ImageId", "x-displayname": "AWS ami image name.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-field-mutability": "read-only" }, "region": { "type": "string", "description": "AWS ami image region.", "title": "Region", "x-displayname": "AWS ami image region.", "x-f5xc-example": "us-west-2", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for certified_hardwareAwsImage", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for certified_hardwareAwsImage\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cloud_infrastructure", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "certified_hardwareAzure": { "type": "object", "description": "Azure specific information.", "title": "Azure", "x-displayname": "Azure", "x-ves-oneof-field-image": "[\"image_id\",\"marketplace\"]", "x-ves-proto-message": "ves.io.schema.certified_hardware.Azure", "properties": { "image_id": { "allOf": [ { "$ref": "#/components/schemas/certified_hardwareAzureImage" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-field-mutability": "read-only", "x-f5xc-conflicts-with": [ "marketplace" ] }, "marketplace": { "allOf": [ { "$ref": "#/components/schemas/certified_hardwareMarketplace" } ], "x-f5xc-description-short": "Configuration parameter for marketplace.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "image_id" ] } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for certified_hardwareAzure", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for certified_hardwareAzure\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cloud_infrastructure", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "certified_hardwareAzureImage": { "type": "object", "x-ves-proto-message": "ves.io.schema.certified_hardware.AzureImage", "properties": { "image_id": { "type": "string", "description": "Azure image ID.", "title": "ImageId", "x-displayname": "Azure image ID info.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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 certified_hardwareAzureImage", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for certified_hardwareAzureImage\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cloud_infrastructure", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "certified_hardwareCertifiedHardwareStatus": { "type": "object", "description": "Current status of Certified Hardware.", "title": "Certified Hardware Status", "x-displayname": "Status", "x-ves-proto-message": "ves.io.schema.certified_hardware.CertifiedHardwareStatus", "properties": { "latest_version": { "type": "string", "description": "Latest version for the certified hardware.", "title": "Latest Version", "x-displayname": "Latest Version.", "x-f5xc-description-short": "Latest version for the certified hardware.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for certified_hardwareCertifiedHardwareStatus", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for certified_hardwareCertifiedHardwareStatus\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cloud_infrastructure", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "certified_hardwareDeviceType": { "type": "object", "description": "Different type of devices supported by Certified Hardware.", "title": "Device Type", "x-displayname": "Device", "x-ves-proto-message": "ves.io.schema.certified_hardware.DeviceType", "properties": { "device_list": { "type": "array", "description": "In case of logical boot strap devices like LACP Link aggregation or RAID.", "title": "Device List", "items": { "type": "string" }, "x-displayname": "Device List.", "x-f5xc-description-short": "In case of logical boot strap devices like LACP Link aggregation or RAID.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "max_unit": { "type": "integer", "description": "Last unit number of the device supported in this certified hardware.", "title": "End unit number for device", "format": "int32", "x-displayname": "End Unit", "x-ves-example": "7", "x-f5xc-example": "7", "x-f5xc-description-short": "Last unit number of the device supported in this certified hardware.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "min_unit": { "type": "integer", "description": "First unit number of the device supported in this certified hardware.", "title": "Start unit number for device", "format": "int32", "x-displayname": "Start Unit.", "x-ves-example": "0", "x-f5xc-example": "0", "x-f5xc-description-short": "First unit number of the device supported in this certified hardware.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "name": { "type": "string", "description": "Name of the device.", "title": "Name", "x-displayname": "Device", "x-ves-example": "Eth", "x-f5xc-example": "eth", "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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" }, "type": { "allOf": [ { "$ref": "#/components/schemas/certified_hardwareHardwareDeviceType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "use": { "allOf": [ { "$ref": "#/components/schemas/certified_hardwareHardwareDeviceInstanceUseType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Different type of devices supported by Certified Hardware.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for certified_hardwareDeviceType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for certified_hardwareDeviceType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cloud_infrastructure", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "certified_hardwareGcp": { "type": "object", "description": "GCP specific information.", "title": "GCP", "x-displayname": "GCP", "x-ves-oneof-field-image": "[\"image_id\"]", "x-ves-proto-message": "ves.io.schema.certified_hardware.Gcp", "properties": { "image_id": { "allOf": [ { "$ref": "#/components/schemas/certified_hardwareGcpImage" } ], "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 certified_hardwareGcp", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for certified_hardwareGcp\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cloud_infrastructure", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "certified_hardwareGcpImage": { "type": "object", "x-ves-proto-message": "ves.io.schema.certified_hardware.GcpImage", "properties": { "image_id": { "type": "string", "description": "GCP image", "title": "ImageId", "x-displayname": "GCP image name.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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 certified_hardwareGcpImage", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for certified_hardwareGcpImage\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cloud_infrastructure", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "certified_hardwareGetResponse": { "type": "object", "description": "This is the output message of the 'GET' RPC.", "title": "GetResponse is the shape of a read certified_hardware", "x-displayname": "GET Response.", "x-ves-proto-message": "ves.io.schema.certified_hardware.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/schemacertified_hardwareGetSpecType" } ], "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/certified_hardwareStatusObject" }, "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-08-20T09:12:47+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 certified_hardwareGetResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for certified_hardwareGetResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cloud_infrastructure", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "certified_hardwareHardwareDeviceInstanceUseType": { "type": "string", "description": "Defines how the device instance must be used\n\nIf the device is owned by F5 Distributed Cloud software, it is available for users to configure as required\nDevice reserved for internal use by F5 Distributed Cloud Node\nIf the Network device is owned by VER, it is available for users to configure as required\nNetworking device available for internal use by VER\nNetworking device to be used for Management access\nNetworking device to be used as member of outside network as part of bootstrap\nNetworking device to be used as member of inside network as part of bootstrap\nLAG device to be used as member of outside network\nLAG device to be used as member of inside network\nNetwork device to be used as member of another LAG device\nNetwork device to be used exclusive for storage networks\nNetworking device to be used for fallback Management access.", "title": "Hardware Device Instance Use", "enum": [ "HARDWARE_DEVICE_USE_REGULAR", "HARDWARE_DEVICE_USE_INTERNAL", "HARDWARE_NETWORK_DEVICE_USE_REGULAR", "HARDWARE_NETWORK_DEVICE_USE_INTERNAL", "HARDWARE_NETWORK_DEVICE_USE_MANAGEMENT", "HARDWARE_NETWORK_DEVICE_USE_OUTSIDE", "HARDWARE_NETWORK_DEVICE_USE_INSIDE", "HARDWARE_NETWORK_DEVICE_USE_OUTSIDE_LAG", "HARDWARE_NETWORK_DEVICE_USE_INSIDE_LAG", "HARDWARE_NETWORK_DEVICE_USE_LAG_MEMBER", "HARDWARE_NETWORK_DEVICE_USE_STORAGE", "HARDWARE_NETWORK_DEVICE_USE_FALLBACK_MANAGEMENT" ], "default": "HARDWARE_DEVICE_USE_REGULAR", "x-displayname": "Device Use.", "x-ves-proto-enum": "ves.io.schema.certified_hardware.HardwareDeviceInstanceUseType", "x-f5xc-description-short": "Defines how the device instance must be used If the device is owned by F5 Distributed Cloud software, it is available for users to configure as...", "x-f5xc-description-medium": "Defines how the device instance must be used If the device is owned by F5 Distributed Cloud software, it is available for users to configure as required Device reserved for internal use by F5 Distributed Cloud Node If the Network device is owned by VER, it is available for users to configure as...", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for certified_hardwareHardwareDeviceInstanceUseType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for certified_hardwareHardwareDeviceInstanceUseType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cloud_infrastructure", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "certified_hardwareHardwareDeviceType": { "type": "string", "description": "Different type of devices supported\n\nInvalid device or device that's not supported\nEthernet device\nVIRTIO device\nTUNTAP device\nLACP based bond interface\nExternal iSCSI devices supported\nNvidia GPU device used for machine learning.", "title": "Hardware Device Types", "enum": [ "HARDWARE_DEVICE_INVALID", "HARDWARE_DEVICE_ETHERNET", "HARDWARE_DEVICE_VIRTIO", "HARDWARE_DEVICE_TUNTAP", "HARDWARE_DEVICE_BOND", "HARDWARE_DEVICE_EXTERNAL_ISCSI_STORTAGE", "HARDWARE_DEVICE_NVIDIA_GPU" ], "default": "HARDWARE_DEVICE_INVALID", "x-displayname": "Device Types.", "x-ves-proto-enum": "ves.io.schema.certified_hardware.HardwareDeviceType", "x-f5xc-description-short": "Different type of devices supported Invalid device or device that's not supported Ethernet device VIRTIO device TUNTAP device LACP based bond...", "x-f5xc-description-medium": "Different type of devices supported Invalid device or device that's not supported Ethernet device VIRTIO device TUNTAP device LACP based bond interface External iSCSI devices supported Nvidia GPU device used for machine learning.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for certified_hardwareHardwareDeviceType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for certified_hardwareHardwareDeviceType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cloud_infrastructure", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "certified_hardwareHardwareType": { "type": "string", "description": "Different type of certified HW for billing rate.", "title": "Certified Hardware Types", "enum": [ "VOLTMESH", "VOLTSTACK_COMBO", "CLOUD_MARKET_PLACE" ], "default": "VOLTMESH", "x-displayname": "Certified Hardware Types.", "x-ves-proto-enum": "ves.io.schema.certified_hardware.HardwareType", "x-f5xc-description-short": "Different type of certified HW for billing rate.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for certified_hardwareHardwareType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for certified_hardwareHardwareType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cloud_infrastructure", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "certified_hardwareHardwareVendorModel": { "type": "object", "description": "Gives vendor and model for the hardware device.", "title": "Vendor and Model", "x-displayname": "Vendor and Model.", "x-ves-proto-message": "ves.io.schema.certified_hardware.HardwareVendorModel", "properties": { "model": { "type": "string", "description": "Hw Model or instance type from cloud provider like number of interfaces, vCPUs, memory.", "title": "Model", "x-displayname": "Model", "x-f5xc-description-short": "Hw Model or instance type from cloud provider like number of interfaces, vCPUs, memory.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "vendor": { "type": "string", "description": "Vendor could be F5 Distributed Cloud, Dell, Cloud provider like AWS or Azure.", "title": "Vendor", "x-displayname": "Vendor", "x-f5xc-description-short": "Vendor could be F5 Distributed Cloud, Dell, Cloud provider like AWS or Azure.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Gives vendor and model for the hardware device.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for certified_hardwareHardwareVendorModel", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for certified_hardwareHardwareVendorModel\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cloud_infrastructure", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "certified_hardwareImageType": { "type": "object", "description": "Describes the image to be used for this certified hardware.", "title": "Image Type", "x-displayname": "Image Type.", "x-ves-oneof-field-cloud_provider": "[\"aws\",\"azure\",\"gcp\"]", "x-ves-proto-message": "ves.io.schema.certified_hardware.ImageType", "properties": { "aws": { "allOf": [ { "$ref": "#/components/schemas/certified_hardwareAws" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "azure", "gcp" ] }, "azure": { "allOf": [ { "$ref": "#/components/schemas/certified_hardwareAzure" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "aws", "gcp" ] }, "gcp": { "allOf": [ { "$ref": "#/components/schemas/certified_hardwareGcp" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "aws", "azure" ] }, "name": { "type": "string", "description": "Image name to use for this hardware.", "title": "Name", "x-displayname": "Name", "x-ves-example": "Ami-0f99d090261d2acd5.", "x-f5xc-example": "ami-0f99d090261d2acd5", "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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" }, "provider": { "type": "string", "description": "Image provider F5 Distributed Cloud, Cloud provider like AWS or Azure.", "title": "Provider", "x-displayname": "Provider", "x-ves-example": "F5 Distributed Cloud.", "x-f5xc-example": "F5 Distributed Cloud", "x-f5xc-description-short": "Image provider F5 Distributed Cloud, Cloud provider like AWS or Azure.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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-08-20T09:12:47+00:00" } }, "x-f5xc-description-short": "Describes the image to be used for this certified hardware.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for certified_hardwareImageType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for certified_hardwareImageType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cloud_infrastructure", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "certified_hardwareListResponse": { "type": "object", "description": "This is the output message of 'List' RPC.", "title": "ListResponse is the collection of certified_hardware", "x-displayname": "List Response.", "x-ves-proto-message": "ves.io.schema.certified_hardware.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/certified_hardwareListResponseItem" }, "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for certified_hardwareListResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for certified_hardwareListResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cloud_infrastructure", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "certified_hardwareListResponseItem": { "type": "object", "description": "By default a summary of certified_hardware 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 certified_hardware", "x-displayname": "List Item", "x-ves-proto-message": "ves.io.schema.certified_hardware.ListResponseItem", "properties": { "annotations": { "type": "object", "description": "The set of annotations present on this certified_hardware.", "title": "annotations", "x-displayname": "Annotations.", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "The set of annotations present on this certified_hardware.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "description": { "type": "string", "description": "The description set for this certified_hardware.", "title": "description", "x-displayname": "Description.", "x-f5xc-description-short": "The description set for this certified_hardware.", "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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "disabled": { "type": "boolean", "description": "A value of true indicates certified_hardware is administratively disabled.", "title": "disabled", "format": "boolean", "x-displayname": "Disabled", "x-f5xc-example": "True", "x-f5xc-description-short": "Value of true indicates certified_hardware is administratively disabled.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "get_spec": { "allOf": [ { "$ref": "#/components/schemas/schemacertified_hardwareGetSpecType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "labels": { "type": "object", "description": "The set of labels present on this certified_hardware.", "title": "labels", "x-displayname": "Labels", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "The set of labels present on this certified_hardware.", "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 certified_hardware.", "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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/certified_hardwareStatusObject" }, "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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "uid": { "type": "string", "description": "The unique uid of this certified_hardware.", "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 certified_hardware.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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-08-20T09:12:47+00:00" } }, "x-f5xc-description-short": "By default a summary of certified_hardware 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 certified_hardware 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 certified_hardwareListResponseItem", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for certified_hardwareListResponseItem\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cloud_infrastructure", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "certified_hardwareMarketplace": { "type": "object", "description": "Azure Marketplace image information.", "title": "Marketplace", "x-displayname": "Azure Marketplace image info.", "x-ves-proto-message": "ves.io.schema.certified_hardware.Marketplace", "properties": { "name": { "type": "string", "description": "Azure Marketplace Name.", "title": "Name", "x-displayname": "Azure Marketplace 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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" }, "offer": { "type": "string", "description": "Azure Marketplace offer.", "title": "Offer", "x-displayname": "Azure Marketplace offer.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "publisher": { "type": "string", "description": "Azure Marketplace Publisher.", "title": "Publisher", "x-displayname": "Azure Marketplace Publisher.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "sku": { "type": "string", "description": "Azure Marketplace SKU.", "title": "SKU", "x-displayname": "Azure Marketplace SKU.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "version": { "type": "string", "description": "Azure Marketplace Version.", "title": "Version", "x-displayname": "Azure Marketplace Version.", "x-f5xc-example": "v1.2.3", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "minLength": 1, "x-reconciled-from-discovery": true, "x-reconciled-at": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for certified_hardwareMarketplace", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for certified_hardwareMarketplace\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cloud_infrastructure", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "certified_hardwareMemPageSize": { "type": "string", "description": "Memory for packets buffers etc are allocated in blocks of pages. Size of each memory page is defined here.\n\nInvalid Page size\nPage size of 4KB\nPage size of 2MB\nPage size of 1GB.", "title": "Memory Page Size", "enum": [ "HARDWARE_MEM_PAGE_SIZE_INVALID", "HARDWARE_MEM_PAGE_SIZE_4KB", "HARDWARE_MEM_PAGE_SIZE_2MB", "HARDWARE_MEM_PAGE_SIZE_1GB" ], "default": "HARDWARE_MEM_PAGE_SIZE_INVALID", "x-displayname": "Memory Page Size.", "x-ves-proto-enum": "ves.io.schema.certified_hardware.MemPageSize", "x-f5xc-description-short": "Memory for packets buffers etc are allocated in blocks of pages. Size of each memory page is defined here.", "x-f5xc-description-medium": "Memory for packets buffers etc are allocated in blocks of pages. Size of each memory page is defined here. Invalid Page size Page size of 4KB Page size of 2MB Page size of 1GB.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for certified_hardwareMemPageSize", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for certified_hardwareMemPageSize\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cloud_infrastructure", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "certified_hardwareNumaMem": { "type": "object", "description": "Defines amount of memory (in MB) allocated for a NUMA node.", "title": "NUMA Memory Specification", "x-displayname": "NUMA Memory Specification.", "x-ves-proto-message": "ves.io.schema.certified_hardware.NumaMem", "properties": { "memory": { "type": "integer", "description": "The number of MB of instance memory to map to instance NUMA node N.", "title": "Memory Size", "format": "int32", "x-displayname": "Memory Size.", "x-ves-example": "1024", "x-f5xc-example": "1024", "x-f5xc-description-short": "The number of MB of instance memory to map to instance NUMA node N.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "node": { "type": "integer", "description": "NUMA node instance with mapped memory.", "title": "Node", "format": "int32", "x-displayname": "Node", "x-ves-example": "1", "x-f5xc-example": "1", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Defines amount of memory (in MB) allocated for a NUMA node.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for certified_hardwareNumaMem", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for certified_hardwareNumaMem\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cloud_infrastructure", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "certified_hardwareStatusObject": { "type": "object", "description": "Most recently observed status of object.", "title": "Certified Hardware Status", "x-displayname": "Status Object.", "x-ves-proto-message": "ves.io.schema.certified_hardware.StatusObject", "properties": { "conditions": { "type": "array", "description": "Conditions reported by various components of the system.", "title": "conditions", "items": { "$ref": "#/components/schemas/schemaConditionType" }, "x-displayname": "Conditions.", "x-f5xc-description-short": "Conditions reported by various components 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 } }, "status": { "allOf": [ { "$ref": "#/components/schemas/certified_hardwareCertifiedHardwareStatus" } ], "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-08-20T09:12:47+00:00" } }, "x-f5xc-description-short": "Most recently observed status of object.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for certified_hardwareStatusObject", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for certified_hardwareStatusObject\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cloud_infrastructure", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for ioschemaObjectRefType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "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\": ,\n\"lastName\": \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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for protobufAny\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaConditionType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "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_yaml": "# Minimal example for schemaErrorCode\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "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-08-20T09:12:47+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_yaml": "# Minimal example for schemaErrorType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaInitializerType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "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_yaml": "# Minimal example for schemaInitializersType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaObjectGetMetaType\nmetadata:\n name: example\n namespace: default\nspec:\n name: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"name\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaStatusMetaType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "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_yaml": "# Minimal example for schemaStatusPublishType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaStatusType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaSystemObjectGetMetaType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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_yaml": "# Minimal example for schemaViewRefType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "other", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "schemacertified_hardwareGetSpecType": { "type": "object", "description": "GET Certified Hardware object.", "title": "Get certified hardware", "x-displayname": "GET Certified Hardware.", "x-ves-proto-message": "ves.io.schema.certified_hardware.GetSpecType", "properties": { "certified_hardware_type": { "allOf": [ { "$ref": "#/components/schemas/certified_hardwareHardwareType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "devices": { "type": "array", "description": "List of supported devices in this model.", "items": { "$ref": "#/components/schemas/certified_hardwareDeviceType" }, "x-displayname": "Devices", "x-f5xc-description-short": "List of supported devices in this model.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "image_list": { "type": "array", "description": "List of image names with providers for this certified hardware, e.g. AWS ami-0f99d090261d2acd5.", "items": { "$ref": "#/components/schemas/certified_hardwareImageType" }, "x-displayname": "Image List.", "x-f5xc-description-short": "List of image names with providers for this certified hardware, e.g. AWS ami-0f99d090261d2acd5.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "internal_usb_device_rule": { "type": "array", "description": "List of internal USB device rules for server.", "items": { "$ref": "#/components/schemas/usb_policyRule" }, "x-displayname": "Internal USB device rules.", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "List of internal USB device rules for server.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "mem_page_number": { "type": "integer", "description": "Number of pages allocated in this certified hardware for Hugepages. Each page size is defined above in 'mem_page_size'\nTotal memory reserved for Hugepages is 'mem_page_size * mem_page_number'", "format": "int32", "x-displayname": "Number of pages.", "x-ves-example": "2", "x-f5xc-example": "2", "x-f5xc-description-short": "Number of pages allocated in this certified hardware for Hugepages.", "x-f5xc-description-medium": "Number of pages allocated in this certified hardware for Hugepages. Each page size is defined above in 'mem_page_size' Total memory reserved for Hugepages is 'mem_page_size * mem_page_number'.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "mem_page_size": { "allOf": [ { "$ref": "#/components/schemas/certified_hardwareMemPageSize" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "numa_mem": { "type": "array", "description": "List of Numa nodes with the number of MB of instance memory to map to node instance\nIf not specified, memory is evenly divided among available NUMA nodes.", "items": { "$ref": "#/components/schemas/certified_hardwareNumaMem" }, "x-displayname": "NUMA Memory.", "x-f5xc-description-short": "List of Numa nodes with the number of MB of instance memory to map to node instance If not specified, memory is evenly divided among available...", "x-f5xc-description-medium": "List of Numa nodes with the number of MB of instance memory to map to node instance If not specified, memory is evenly divided among available NUMA nodes.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "numa_nodes": { "type": "integer", "description": "The number of host NUMA nodes used in certified hardware.", "format": "int32", "x-displayname": "NUMA Node Count.", "x-ves-example": "2", "x-f5xc-example": "2", "x-f5xc-description-short": "The number of host NUMA nodes used in certified hardware.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "vendor_model_list": { "type": "array", "description": "List of supported hardware vendor and model for this certified hardware.", "items": { "$ref": "#/components/schemas/certified_hardwareHardwareVendorModel" }, "x-displayname": "Vendor and Model.", "x-f5xc-description-short": "List of supported hardware vendor and model for this certified hardware.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for schemacertified_hardwareGetSpecType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for schemacertified_hardwareGetSpecType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cloud_infrastructure", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "custom", "default", "shared" ], "enforced": false }, "recommendation": { "primary": "custom", "alternatives": [], "rationale": "Standard tenant resource" }, "classification": { "category": "application", "multi_tenant_pattern": "per-tenant" } } }, "usb_policyRule": { "type": "object", "description": "USB Enablement Rule.", "title": "Rule", "x-displayname": "USB Enablement Rule.", "x-ves-proto-message": "ves.io.schema.usb_policy.Rule", "properties": { "b_device_class": { "type": "string", "description": "The class of this device.", "title": "b_device_class", "x-displayname": "Class", "x-ves-example": "Hub", "x-f5xc-example": "hub", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "b_device_protocol": { "type": "string", "description": "The protocol (within the sub-class) of this device.", "title": "b_device_protocol", "x-displayname": "Protocol", "x-ves-example": "0002", "x-f5xc-example": "0002", "x-f5xc-description-short": "The protocol (within the sub-class) of this device.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "b_device_sub_class": { "type": "string", "description": "The sub-class (within the class) of this device.", "title": "b_device_sub_class", "x-displayname": "Subclass", "x-ves-example": "Hub", "x-f5xc-example": "hub", "x-f5xc-description-short": "The sub-class (within the class) of this device.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "i_serial": { "type": "string", "description": "Index of Serial Number String Descriptor.", "title": "i_serial_number", "x-displayname": "ISerialNumber.", "x-ves-example": "0000:00:14.0.", "x-f5xc-example": "0000:00:14.0", "x-f5xc-description-short": "Index of Serial Number String Descriptor.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "id_product": { "type": "string", "description": "Product ID (Assigned by Manufacturer) in hex.", "title": "id_product", "x-displayname": "Product ID.", "x-ves-example": "0x0002", "x-f5xc-example": "0x0002", "x-f5xc-description-short": "Product ID (Assigned by Manufacturer) in hex.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "id_vendor": { "type": "string", "description": "Vendor ID (Assigned by USB Org) in hex.", "title": "id_vendor", "x-displayname": "Vendor ID", "x-ves-example": "0x1d6b", "x-f5xc-example": "0x1d6b", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for usb_policyRule", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for usb_policyRule\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "ce_management", "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" } } }, "cloud_connectAWSAttachmentsListStatusType__ves_io_schema_cloud_connect": { "type": "object", "description": "AWS VPC Attachment List Status Type.", "title": "AWS VPC Attachment List Status Type", "x-displayname": "AWS VPC Attachment List Status Type.", "x-ves-proto-message": "ves.io.schema.cloud_connect.AWSAttachmentsListStatusType", "properties": { "attachment_status": { "type": "array", "description": "AWS Attachment Status Type.", "title": "AWS VPC Attachment Status Type", "items": { "$ref": "#/components/schemas/cloud_connectAWSAttachmentsStatusType" }, "x-displayname": "AWS VPC Attachment Status.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "connect_attachment_status": { "type": "array", "description": "AWS Connect Attachment Status Type.", "title": "AWS Connect Attachment Status Type", "items": { "$ref": "#/components/schemas/cloud_connectAWSConnectAttachmentStatusType" }, "x-displayname": "AWS Connect Attachment Status.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "tgw_route_table_status": { "type": "array", "description": "AWS Transit Gateway Route Table Status Type.", "title": "AWS Transit Gateway Route Table Status Type", "items": { "$ref": "#/components/schemas/cloud_connectAWSTGWRouteTableStatusType" }, "x-displayname": "AWS Transit Gateway Route Table Status.", "x-f5xc-description-short": "AWS Transit Gateway Route Table Status Type.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "tgw_status": { "allOf": [ { "$ref": "#/components/schemas/cloud_connectAWSTGWStatusType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "transit_gateway_resource_share_status": { "allOf": [ { "$ref": "#/components/schemas/cloud_connectAWSTGWResourceShareType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cloud_connectAWSAttachmentsListStatusType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cloud_connectAWSAttachmentsListStatusType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cloud_infrastructure", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Cloud connect is platform-level infrastructure" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "cloud_connectAWSAttachmentsStatusType": { "type": "object", "description": "AWS Attachment Status Type.", "title": "AWS VPC Attachment Status Type", "x-displayname": "AWS Attachment Status Type.", "x-ves-proto-message": "ves.io.schema.cloud_connect.AWSAttachmentsStatusType", "properties": { "association_route_table_id": { "type": "string", "description": "Association route table ID.", "title": "Association route table ID", "x-displayname": "Associated Transit Gateway route table ID.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-field-mutability": "read-only" }, "association_state": { "type": "string", "description": "Transit Gateway route table association state.", "title": "Association state", "x-displayname": "Transit Gateway route table association state.", "x-f5xc-description-short": "Transit Gateway route table association state.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "creation_time": { "type": "string", "description": "Attachment Creation Time.", "title": "Attachment Creation Time", "format": "date-time", "x-displayname": "Attachment Creation Time.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "format": "date-time", "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "deployment_status": { "type": "string", "description": "Additional VPC attachment deployment status.", "title": "Additional VPC attachment deployment status", "x-displayname": "VPC attachment deployment status.", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "Additional VPC attachment deployment status.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "installed_routes": { "allOf": [ { "$ref": "#/components/schemas/cloud_connectAWSRouteTableListType" } ], "x-f5xc-description-short": "Configuration parameter for installed routes.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "subnets": { "type": "array", "description": "Network Interfaces created along with the attachment.", "title": "Subnets", "items": { "$ref": "#/components/schemas/cloud_connectSubnetStatusType" }, "x-displayname": "Network Interfaces.", "x-f5xc-description-short": "Network Interfaces created along with the attachment.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "tags": { "type": "object", "description": "Attachment Tags.", "title": "Attachment Tags", "x-displayname": "Attachment Tags.", "x-ves-validation-rules": { "ves.io.schema.rules.map.keys.string.max_len": "127", "ves.io.schema.rules.map.max_pairs": "20", "ves.io.schema.rules.map.values.string.max_len": "255" }, "x-validation-rules": { "ves.io.schema.rules.map.keys.string.max_len": "127", "ves.io.schema.rules.map.max_pairs": "20", "ves.io.schema.rules.map.values.string.max_len": "255" }, "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "tgw_attachment_id": { "type": "string", "description": "TGW Attachment ID.", "title": "TGW Attachment ID", "x-displayname": "TGW Attachment ID.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-field-mutability": "read-only" }, "tgw_attachment_name": { "type": "string", "description": "TGW Attachment Name.", "title": "TGW Attachment Name", "x-displayname": "TGW Attachment Name.", "x-f5xc-example": "example-resource", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "vpc_cidr": { "type": "string", "description": "VPC CIDR", "title": "VPC CIDR", "x-displayname": "VPC CIDR", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "vpc_deployment_state": { "allOf": [ { "$ref": "#/components/schemas/cloud_connectCloudConnectVPCStateType" } ], "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "vpc_id": { "type": "string", "description": "VPC ID", "title": "VPC ID", "x-displayname": "VPC ID", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-field-mutability": "read-only" }, "vpc_name": { "type": "string", "description": "VPC Name", "title": "VPC Name", "x-displayname": "VPC Name", "x-f5xc-example": "example-resource", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "vpc_owner_id": { "type": "string", "description": "VPC Owner Account.", "title": "VPC Owner Account", "x-displayname": "VPC Owner Account.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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 cloud_connectAWSAttachmentsStatusType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cloud_connectAWSAttachmentsStatusType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cloud_infrastructure", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Cloud connect is platform-level infrastructure" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "cloud_connectAWSConnectAttachmentStatusType": { "type": "object", "description": "AWS Connect Attachment Status Type.", "title": "AWS Connect Attachment Status Type", "x-displayname": "AWS Connect Attachment Type Status.", "x-ves-proto-message": "ves.io.schema.cloud_connect.AWSConnectAttachmentStatusType", "properties": { "association_route_table_id": { "type": "string", "description": "Association route table ID.", "title": "Association route table ID", "x-displayname": "Association route table ID.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-field-mutability": "read-only" }, "association_state": { "type": "string", "description": "Transit Gateway route table association state.", "title": "Association state", "x-displayname": "Transit Gateway route table association state.", "x-f5xc-description-short": "Transit Gateway route table association state.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "connect_deployment_state": { "allOf": [ { "$ref": "#/components/schemas/cloud_connectCloudConnectVPCStateType" } ], "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "deployment_status": { "type": "string", "description": "Additional information related to the connect attachment deployment.", "title": "Deployment Status", "x-displayname": "Deployment Status.", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "Additional information related to the connect attachment deployment.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "f5xc_site_asn": { "type": "string", "description": "F5XC Site ASN.", "title": "F5XC Site ASN", "x-displayname": "F5XC Site ASN.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "peers": { "type": "array", "description": "Connect Peers.", "title": "Connect Peers", "items": { "$ref": "#/components/schemas/cloud_connectAWSConnectPeerStatusType" }, "x-displayname": "Connect Peers.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "protocol": { "type": "string", "description": "Connect protocol.", "title": "Connect protocol", "x-displayname": "Connect protocol.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "tags": { "type": "object", "description": "Attachment Tags.", "title": "Attachment Tags", "x-displayname": "Attachment Tags.", "x-ves-validation-rules": { "ves.io.schema.rules.map.keys.string.max_len": "127", "ves.io.schema.rules.map.max_pairs": "20", "ves.io.schema.rules.map.values.string.max_len": "255" }, "x-validation-rules": { "ves.io.schema.rules.map.keys.string.max_len": "127", "ves.io.schema.rules.map.max_pairs": "20", "ves.io.schema.rules.map.values.string.max_len": "255" }, "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "transit_gateway_asn": { "type": "string", "description": "Transit Gateway ASN.", "title": "Transit Gateway ASN", "x-displayname": "Transit Gateway ASN.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "transit_gateway_attachment_id": { "type": "string", "description": "Transit Gateway Attachment ID.", "title": "Transit Gateway Attachment ID", "x-displayname": "Transit Gateway Attachment ID.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-field-mutability": "read-only" }, "transit_gateway_attachment_name": { "type": "string", "description": "Transit Gateway Attachment Name.", "title": "Transit Gateway Attachment Name", "x-displayname": "Transit Gateway Attachment Name.", "x-f5xc-example": "example-resource", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "transit_gateway_id": { "type": "string", "description": "Transit Gateway ID.", "title": "Transit Gateway ID", "x-displayname": "Transit Gateway ID.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-field-mutability": "read-only" }, "transport_attachment_id": { "type": "string", "description": "Transport attachment ID.", "title": "Transport attachment ID", "x-displayname": "Transport attachment ID.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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 cloud_connectAWSConnectAttachmentStatusType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cloud_connectAWSConnectAttachmentStatusType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cloud_infrastructure", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Cloud connect is platform-level infrastructure" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "cloud_connectAWSConnectPeerStatusType": { "type": "object", "description": "AWS Connect Peer Status Type.", "title": "AWS Connect Peer Status Type", "x-displayname": "AWS Connect Peer Status Type.", "x-ves-proto-message": "ves.io.schema.cloud_connect.AWSConnectPeerStatusType", "properties": { "connect_attachment_id": { "type": "string", "description": "Connect attachment ID.", "title": "Connect attachment ID", "x-displayname": "Connect attachment ID.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-field-mutability": "read-only" }, "connect_peer_deployment_state": { "allOf": [ { "$ref": "#/components/schemas/cloud_connectCloudConnectVPCStateType" } ], "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "connect_peer_id": { "type": "string", "description": "Connect Peer ID.", "title": "Connect Peer ID", "x-displayname": "Connect Peer ID.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-field-mutability": "read-only" }, "deployment_status": { "type": "string", "description": "Additional information related to the connect peer attachment deployment.", "title": "Deployment Status", "x-displayname": "Deployment Status.", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "Additional information related to the connect peer attachment deployment.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "name": { "type": "string", "description": "Connect Peer Name.", "title": "Connect Peer Name", "x-displayname": "Connect Peer 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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" }, "peer_gre_address": { "type": "string", "title": "Peer GRE Address", "x-displayname": "Peer GRE Address.", "description": "Network address or location", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "tags": { "type": "object", "description": "Connect Peer Tags.", "title": "Connect Peer Tags", "x-displayname": "Connect Peer Tags.", "x-ves-validation-rules": { "ves.io.schema.rules.map.keys.string.max_len": "127", "ves.io.schema.rules.map.max_pairs": "20", "ves.io.schema.rules.map.values.string.max_len": "255" }, "x-validation-rules": { "ves.io.schema.rules.map.keys.string.max_len": "127", "ves.io.schema.rules.map.max_pairs": "20", "ves.io.schema.rules.map.values.string.max_len": "255" }, "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "transit_gateway_gre_address": { "type": "string", "title": "Transit Gateway GRE Address", "x-displayname": "Transit Gateway GRE Address.", "description": "Network address or location", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cloud_connectAWSConnectPeerStatusType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cloud_connectAWSConnectPeerStatusType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cloud_infrastructure", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Cloud connect is platform-level infrastructure" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "cloud_connectAWSDefaultRoutesRouteTable": { "type": "object", "description": "AWS Route Table.", "title": "AWS Route Table", "x-displayname": "AWS Route Table.", "x-ves-proto-message": "ves.io.schema.cloud_connect.AWSDefaultRoutesRouteTable", "properties": { "route_table_id": { "type": "array", "description": "Route table ID.", "title": "Route table ID", "items": { "type": "string", "maxLength": 64 }, "x-displayname": "Route table ID.", "x-ves-example": "Rtb-12345678901234567.", "x-ves-validation-rules": { "ves.io.schema.rules.repeated.unique": "true", "ves.io.schema.rules.string.max_len": "64", "ves.io.schema.rules.string.pattern": "^(rtb-)([a-z0-9]{8}|[a-z0-9]{17})$" }, "x-f5xc-example": "rtb-12345678901234567", "x-validation-rules": { "ves.io.schema.rules.repeated.unique": "true", "ves.io.schema.rules.string.max_len": "64", "ves.io.schema.rules.string.pattern": "^(rtb-)([a-z0-9]{8}|[a-z0-9]{17})$" }, "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+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 cloud_connectAWSDefaultRoutesRouteTable", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cloud_connectAWSDefaultRoutesRouteTable\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cloud_infrastructure", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Cloud connect is platform-level infrastructure" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "cloud_connectAWSProviderType": { "type": "object", "description": "Cloud Connect with AWS.", "title": "Cloud Connect with AWS", "x-displayname": "AWS", "x-ves-oneof-field-site_type": "[\"aws_tgw_site\",\"securemesh_site_v2\"]", "x-ves-proto-message": "ves.io.schema.cloud_connect.AWSProviderType", "properties": { "aws_tgw_site": { "allOf": [ { "$ref": "#/components/schemas/cloud_connectAWSTGWSiteType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "securemesh_site_v2" ] }, "securemesh_site_v2": { "allOf": [ { "$ref": "#/components/schemas/cloud_connectAWSSecureMeshSiteType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "aws_tgw_site" ] } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cloud_connectAWSProviderType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cloud_connectAWSProviderType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cloud_infrastructure", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Cloud connect is platform-level infrastructure" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "cloud_connectAWSRouteTableListType": { "type": "object", "description": "AWS Route Table List.", "title": "AWS Route Table List", "x-displayname": "AWS Route Table List.", "x-ves-proto-message": "ves.io.schema.cloud_connect.AWSRouteTableListType", "properties": { "route_tables": { "type": "array", "description": "Route Tables.", "title": "List of route tables", "minItems": 1, "maxItems": 200, "items": { "$ref": "#/components/schemas/cloud_connectAWSRouteTableType" }, "x-displayname": "List of route tables.", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.repeated.max_items": "200", "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": "200", "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": 200, "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cloud_connectAWSRouteTableListType", "required_fields": [ "route_tables" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cloud_connectAWSRouteTableListType\nmetadata:\n name: example\n namespace: default\nspec:\n route_tables: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"route_tables\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "cloud_infrastructure", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Cloud connect is platform-level infrastructure" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "cloud_connectAWSRouteTableType": { "type": "object", "description": "AWS Route Table.", "title": "AWS Route Table", "x-displayname": "AWS Route Table.", "x-ves-proto-message": "ves.io.schema.cloud_connect.AWSRouteTableType", "properties": { "route_table_id": { "type": "string", "description": "Route table ID.", "title": "Route table ID", "maxLength": 64, "x-displayname": "Route table ID.", "x-ves-example": "Rtb-12345678901234567.", "x-ves-validation-rules": { "ves.io.schema.rules.string.max_len": "64", "ves.io.schema.rules.string.pattern": "^(rtb-)([a-z0-9]{8}|[a-z0-9]{17})$" }, "x-f5xc-example": "rtb-12345678901234567", "x-validation-rules": { "ves.io.schema.rules.string.max_len": "64", "ves.io.schema.rules.string.pattern": "^(rtb-)([a-z0-9]{8}|[a-z0-9]{17})$" }, "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 64, "pattern": "^(rtb-)([a-z0-9]{8}|[a-z0-9]{17})$", "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-field-mutability": "read-only" }, "static_routes": { "type": "array", "description": "List of Static Routes.", "title": "static_routes", "minItems": 1, "maxItems": 50, "items": { "type": "string" }, "x-displayname": "Static Routes.", "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.repeated.items.string.ipv4_prefix": "true", "ves.io.schema.rules.repeated.max_items": "50", "ves.io.schema.rules.repeated.min_items": "1", "ves.io.schema.rules.repeated.unique": "true" }, "x-f5xc-example": "192.0.2.0/24", "x-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.repeated.items.string.ipv4_prefix": "true", "ves.io.schema.rules.repeated.max_items": "50", "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": 50, "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cloud_connectAWSRouteTableType", "required_fields": [ "static_routes" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cloud_connectAWSRouteTableType\nmetadata:\n name: example\n namespace: default\nspec:\n static_routes: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"static_routes\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "cloud_infrastructure", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Cloud connect is platform-level infrastructure" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "cloud_connectAWSSecureMeshSiteStatusType": { "type": "object", "title": "Cloud Connect Attached to AWS SecureMesh Site v2", "x-displayname": "Cloud Connect to AWS Secure Mesh Site v2.", "x-ves-proto-message": "ves.io.schema.cloud_connect.AWSSecureMeshSiteStatusType", "properties": { "attachment_status": { "type": "array", "title": "VPC Attachment Status Type", "items": { "$ref": "#/components/schemas/cloud_connectAWSAttachmentsStatusType" }, "x-displayname": "VPC Attachment Status.", "description": "Status or state information", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "connect_attachment_status": { "type": "array", "title": "Connect Attachment Status Type", "items": { "$ref": "#/components/schemas/cloud_connectAWSConnectAttachmentStatusType" }, "x-displayname": "Connect Attachment Status.", "description": "Status or state information", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "tgw_route_table_status": { "type": "array", "title": "Transit Gateway Route Table Status Type", "items": { "$ref": "#/components/schemas/cloud_connectAWSTGWRouteTableStatusType" }, "x-displayname": "Transit Gateway Route Table Status.", "description": "Status or state information", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "tgw_status": { "allOf": [ { "$ref": "#/components/schemas/cloud_connectAWSTGWStatusType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "transit_gateway_resource_share_status": { "allOf": [ { "$ref": "#/components/schemas/cloud_connectAWSTGWResourceShareType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cloud_connectAWSSecureMeshSiteStatusType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cloud_connectAWSSecureMeshSiteStatusType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cloud_infrastructure", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Cloud connect is platform-level infrastructure" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "cloud_connectAWSSecureMeshSiteType": { "type": "object", "description": "Cloud Connect AWS Secure Mesh Site Type.", "title": "Cloud Connect AWS Secure Mesh Site Type", "x-displayname": "AWS Secure Mesh Site Type.", "x-ves-proto-message": "ves.io.schema.cloud_connect.AWSSecureMeshSiteType", "properties": { "cloud_user_account_ref": { "allOf": [ { "$ref": "#/components/schemas/schemaviewsObjectRefType" } ], "x-f5xc-description-short": "Configuration parameter for cloud user account ref.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-references": [ { "resource_kind": null, "field_path": "cloud_user_account_ref", "gated_by": null, "required": false, "cardinality": "single" } ] }, "peers": { "type": "array", "description": "Configuration parameter for peers", "title": "Peers", "items": { "$ref": "#/components/schemas/cloud_connectPeerType" }, "x-displayname": "Peers", "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" } ] }, "vpc_attachments": { "allOf": [ { "$ref": "#/components/schemas/cloud_connectAWSVPCAttachmentListType" } ], "x-f5xc-description-short": "Configuration parameter for vpc attachments.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Cloud Connect AWS Secure Mesh Site Type.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cloud_connectAWSSecureMeshSiteType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cloud_connectAWSSecureMeshSiteType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cloud_infrastructure", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Cloud connect is platform-level infrastructure" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "cloud_connectAWSTGWResourceReference": { "type": "object", "description": "AWS Transit Gateway Route Table Associations.", "title": "AWS Transit Gateway Route Table Associations", "x-displayname": "AWS Transit Gateway Route Table Associations.", "x-ves-proto-message": "ves.io.schema.cloud_connect.AWSTGWResourceReference", "properties": { "attachment_id": { "type": "string", "description": "Attachment ID.", "title": "Attachment ID", "x-displayname": "Attachment ID.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-field-mutability": "read-only" }, "deployment_status": { "type": "string", "description": "Additional information related to the TGW routing.", "title": "Deployment Status", "x-displayname": "Deployment Status.", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "Additional information related to the TGW routing.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "resource_id": { "type": "string", "description": "Resource ID.", "title": "Resource ID", "x-displayname": "Resource ID.", "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-field-mutability": "read-only" }, "resource_type": { "type": "string", "description": "Resource type.", "title": "Resource type", "x-displayname": "Resource type.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "state": { "allOf": [ { "$ref": "#/components/schemas/cloud_connectCloudConnectVPCStateType" } ], "x-f5xc-example": "running", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "AWS Transit Gateway Route Table Associations.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cloud_connectAWSTGWResourceReference", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cloud_connectAWSTGWResourceReference\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cloud_infrastructure", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Cloud connect is platform-level infrastructure" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "cloud_connectAWSTGWResourceShareType": { "type": "object", "description": "AWS Resource Share Status Type.", "title": "AWS Resource Share Status Type", "x-displayname": "AWS Resource Share Status.", "x-ves-proto-message": "ves.io.schema.cloud_connect.AWSTGWResourceShareType", "properties": { "allow_external_principles": { "type": "boolean", "description": "Manage Sharing Outside AWS Organization.", "title": "Allow External Principles", "format": "boolean", "x-displayname": "Allow External Principles.", "x-f5xc-description-short": "Manage Sharing Outside AWS Organization.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "deployment_status": { "type": "string", "description": "Attachment Deployment Status.", "title": "Attachment Deployment Status", "x-displayname": "Attachment Deployment Status.", "x-f5xc-example": "{\"key\": \"value\"}", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "owner_account_id": { "type": "string", "description": "Resource Share Owner Account ID.", "title": "Resource Share Owner Account ID", "x-displayname": "Resource Share Owner Account ID.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-field-mutability": "read-only" }, "receiver_account_id": { "type": "array", "description": "Resource Share Acceptor Account ID.", "title": "Resource Share Acceptor Account ID", "items": { "type": "string" }, "x-displayname": "Resource Share Acceptor Account ID.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-field-mutability": "read-only" }, "resource_share_arn": { "type": "string", "description": "Resource Share ARN.", "title": "Resource Share ARN", "x-displayname": "Resource Share ARN.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "resource_share_name": { "type": "string", "description": "Resource Share Name.", "title": "Resource Share Name", "x-displayname": "Resource Share Name.", "x-f5xc-example": "example-resource", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "status": { "type": "string", "description": "Resource Share State.", "title": "Resource Share State", "x-displayname": "Resource Share State.", "x-f5xc-example": "active", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "tags": { "type": "object", "description": "Resource Share Tags.", "title": "Resource Share Tags", "x-displayname": "Resource Share Tags.", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "transit_gateway_id": { "type": "string", "description": "Transit Gateway ID.", "title": "Transit Gateway ID", "x-displayname": "Transit Gateway ID.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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 cloud_connectAWSTGWResourceShareType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cloud_connectAWSTGWResourceShareType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cloud_infrastructure", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Cloud connect is platform-level infrastructure" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "cloud_connectAWSTGWRouteTableStatusType": { "type": "object", "description": "AWS Transit Gateway Route Table Status Type.", "title": "AWS Transit Gateway Route Table Status Type", "x-displayname": "AWS Transit Gateway Route Table Status Type.", "x-ves-proto-message": "ves.io.schema.cloud_connect.AWSTGWRouteTableStatusType", "properties": { "associations": { "type": "array", "description": "Associations.", "title": "Associations", "items": { "$ref": "#/components/schemas/cloud_connectAWSTGWResourceReference" }, "x-displayname": "Associations.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "deployment_status": { "type": "string", "description": "Additional information related to the TGW routing.", "title": "Deployment Status", "x-displayname": "Deployment Status.", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "Additional information related to the TGW routing.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "propagations": { "type": "array", "description": "Propagations.", "title": "Propagations", "items": { "$ref": "#/components/schemas/cloud_connectAWSTGWResourceReference" }, "x-displayname": "Propagations.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "tags": { "type": "object", "description": "Attachment Tags.", "title": "Attachment Tags", "x-displayname": "Attachment Tags.", "x-ves-validation-rules": { "ves.io.schema.rules.map.keys.string.max_len": "127", "ves.io.schema.rules.map.max_pairs": "20", "ves.io.schema.rules.map.values.string.max_len": "255" }, "x-validation-rules": { "ves.io.schema.rules.map.keys.string.max_len": "127", "ves.io.schema.rules.map.max_pairs": "20", "ves.io.schema.rules.map.values.string.max_len": "255" }, "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "tgw_rt_deployment_state": { "allOf": [ { "$ref": "#/components/schemas/cloud_connectCloudConnectVPCStateType" } ], "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "transit_gateway_id": { "type": "string", "description": "Transit Gateway ID.", "title": "Transit Gateway ID", "x-displayname": "Transit Gateway ID.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-field-mutability": "read-only" }, "transit_gateway_route_table_id": { "type": "string", "description": "Transit gateway route table ID.", "title": "Transit gateway route table ID", "x-displayname": "Transit gateway route table ID.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-field-mutability": "read-only" }, "transit_gateway_route_table_name": { "type": "string", "description": "Transit gateway route table Name.", "title": "Transit gateway route table Name", "x-displayname": "Transit gateway route table Name.", "x-f5xc-example": "example-resource", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "AWS Transit Gateway Route Table Status Type.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cloud_connectAWSTGWRouteTableStatusType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cloud_connectAWSTGWRouteTableStatusType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cloud_infrastructure", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Cloud connect is platform-level infrastructure" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "cloud_connectAWSTGWSiteType": { "type": "object", "description": "Cloud Connect AWS TGW Site Type.", "title": "Cloud Connect AWS TGW Site Type", "x-displayname": "AWS TGW Site Type.", "x-ves-proto-message": "ves.io.schema.cloud_connect.AWSTGWSiteType", "properties": { "cred": { "allOf": [ { "$ref": "#/components/schemas/schemaviewsObjectRefType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-references": [ { "resource_kind": "cloud_credentials", "field_path": "cred", "gated_by": null, "required": false, "cardinality": "single" } ] }, "peers": { "type": "array", "description": "Configuration parameter for peers", "title": "Peers", "items": { "$ref": "#/components/schemas/cloud_connectPeerType" }, "x-displayname": "Peers", "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" } ] }, "vpc_attachments": { "allOf": [ { "$ref": "#/components/schemas/cloud_connectAWSVPCAttachmentListType" } ], "x-f5xc-description-short": "Configuration parameter for vpc attachments.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cloud_connectAWSTGWSiteType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cloud_connectAWSTGWSiteType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cloud_infrastructure", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Cloud connect is platform-level infrastructure" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "cloud_connectAWSTGWStatusType": { "type": "object", "description": "AWS Transit Gateway Status Type.", "title": "AWS Transit Gateway Status Type", "x-displayname": "AWS Transit Gateway Status.", "x-ves-proto-message": "ves.io.schema.cloud_connect.AWSTGWStatusType", "properties": { "amazon_asn": { "type": "string", "description": "AWS Side ASN of TGW.", "title": "AWS Side ASN of TGW", "format": "int64", "x-displayname": "AWS Side ASN.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "format": "int64", "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "arn": { "type": "string", "description": "TGW ARN", "title": "TGW 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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "association_default_route_table_id": { "type": "string", "description": "X-displayName \"Default Association Route Table ID\"\nAssociationDefaultRouteTableId.", "title": "AssociationDefaultRouteTableId", "x-f5xc-description-short": "X-displayName \"Default Association Route Table ID\" AssociationDefaultRouteTableId.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-field-mutability": "read-only" }, "auto_accept_shared_attachments": { "type": "boolean", "description": "X-displayName \"Auto Accept Shared Attachments\"\nAutoAcceptSharedAttachments.", "title": "AutoAcceptSharedAttachments", "format": "boolean", "x-f5xc-description-short": "X-displayName \"Auto Accept Shared Attachments\" AutoAcceptSharedAttachments.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "cidrs": { "type": "array", "description": "X-displayName \"CIDRs\"\nTGW CIDRs.", "title": "TGW CIDRs", "items": { "type": "string" }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "default_route_table_association": { "type": "boolean", "description": "X-displayName \"Default Route Table Association\"\nDefaultRouteTableAssociation.", "title": "DefaultRouteTableAssociation", "format": "boolean", "x-f5xc-description-short": "X-displayName \"Default Route Table Association\" DefaultRouteTableAssociation.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "default_route_table_propagation": { "type": "boolean", "description": "X-displayName \"Default Route Table Propagation\"\nDefaultRouteTablePropagation.", "title": "DefaultRouteTablePropagation", "format": "boolean", "x-f5xc-description-short": "X-displayName \"Default Route Table Propagation\" DefaultRouteTablePropagation.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "id": { "type": "string", "description": "TGW ID", "title": "TGW ID", "x-displayname": "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "owner_account": { "type": "string", "description": "TGW Owner Account.", "title": "TGW Owner", "x-displayname": "Owner Account.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "propagation_default_route_table_id": { "type": "string", "description": "X-displayName \"Default Propagation Route Table ID\"\nPropagationDefaultRouteTableId.", "title": "PropagationDefaultRouteTableId", "x-f5xc-description-short": "X-displayName \"Default Propagation Route Table ID\" PropagationDefaultRouteTableId.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-field-mutability": "read-only" }, "region": { "type": "string", "description": "TGW Region.", "title": "TGW Region", "x-displayname": "Region", "x-f5xc-example": "us-west-2", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "state": { "type": "string", "description": "TGW State", "title": "TGW State", "x-displayname": "State", "x-f5xc-example": "running", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "status_msg": { "type": "string", "description": "X-displayName \"Deployment Status\"\nTGW Deployment Status.", "title": "TGW Deployment Status", "x-f5xc-description-short": "X-displayName \"Deployment Status\" TGW Deployment Status.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "tags": { "type": "object", "description": "TGW Tags", "title": "TGW Tags", "x-displayname": "Tags", "x-ves-validation-rules": { "ves.io.schema.rules.map.keys.string.max_len": "127", "ves.io.schema.rules.map.max_pairs": "20", "ves.io.schema.rules.map.values.string.max_len": "255" }, "x-validation-rules": { "ves.io.schema.rules.map.keys.string.max_len": "127", "ves.io.schema.rules.map.max_pairs": "20", "ves.io.schema.rules.map.values.string.max_len": "255" }, "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 cloud_connectAWSTGWStatusType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cloud_connectAWSTGWStatusType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cloud_infrastructure", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Cloud connect is platform-level infrastructure" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "cloud_connectAWSVPCAttachmentListType": { "type": "object", "title": "VPC Attachments", "x-displayname": "VPC Attachments.", "x-ves-proto-message": "ves.io.schema.cloud_connect.AWSVPCAttachmentListType", "properties": { "vpc_list": { "type": "array", "description": "Collection of items or values", "title": "vpc_list", "maxItems": 128, "items": { "$ref": "#/components/schemas/cloud_connectAWSVPCAttachmentType" }, "x-displayname": "VPC List", "x-ves-validation-rules": { "ves.io.schema.rules.repeated.max_items": "128" }, "x-validation-rules": { "ves.io.schema.rules.repeated.max_items": "128" }, "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 128, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cloud_connectAWSVPCAttachmentListType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cloud_connectAWSVPCAttachmentListType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cloud_infrastructure", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Cloud connect is platform-level infrastructure" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "cloud_connectAWSVPCAttachmentType": { "type": "object", "title": "AWS VPC attachment", "x-displayname": "VPC Attachment.", "x-ves-oneof-field-routing_choice": "[\"custom_routing\",\"default_route\",\"manual_routing\"]", "x-ves-proto-message": "ves.io.schema.cloud_connect.AWSVPCAttachmentType", "properties": { "custom_routing": { "allOf": [ { "$ref": "#/components/schemas/cloud_connectAWSRouteTableListType" } ], "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "default_route", "manual_routing" ] }, "default_route": { "allOf": [ { "$ref": "#/components/schemas/cloud_connectDefaultRoute" } ], "x-f5xc-description-short": "Configuration parameter for default route.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "custom_routing", "manual_routing" ] }, "labels": { "type": "object", "description": "Add labels for the VPC attachment. These labels can then be used in policies such as enhanced firewall.", "title": "Labels", "x-displayname": "Labels", "x-ves-example": "Value", "x-f5xc-example": "value", "x-f5xc-description-short": "Add labels for the VPC attachment. These labels can then be used in policies such as enhanced firewall.", "x-f5xc-description-medium": "Add labels for the VPC attachment. These labels can then be used in policies such as enhanced firewall.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "manual_routing": { "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": [ "custom_routing", "default_route" ] }, "vpc_id": { "type": "string", "description": "Enter the VPC ID of the VPC to be attached.", "title": "VPC ID", "maxLength": 64, "x-displayname": "VPC ID", "x-ves-example": "VPC-12345678901234567.", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.string.max_len": "64", "ves.io.schema.rules.string.pattern": "^(vpc-)([a-z0-9]{8}|[a-z0-9]{17})$" }, "x-f5xc-example": "vpc-12345678901234567", "x-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.string.max_len": "64", "ves.io.schema.rules.string.pattern": "^(vpc-)([a-z0-9]{8}|[a-z0-9]{17})$" }, "x-f5xc-description-short": "Enter the VPC ID of the VPC to be attached.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 64, "pattern": "^(vpc-)([a-z0-9]{8}|[a-z0-9]{17})$", "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+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 cloud_connectAWSVPCAttachmentType", "required_fields": [ "vpc_id" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cloud_connectAWSVPCAttachmentType\nmetadata:\n name: example\n namespace: default\nspec:\n vpc_id: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"vpc_id\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "cloud_infrastructure", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Cloud connect is platform-level infrastructure" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "cloud_connectAzureAttachmentsListStatusType": { "type": "object", "description": "Azure VEspokeNT Attachment List Status Type.", "title": "Azure spoke Attachment List Status Type", "x-displayname": "Azure spoke Attachment List Status Type.", "x-ves-proto-message": "ves.io.schema.cloud_connect.AzureAttachmentsListStatusType", "properties": { "attachment_status": { "type": "array", "description": "Azure spoke Attachment Status Type.", "title": "Azure spoke Attachment Status Type", "items": { "$ref": "#/components/schemas/cloud_connectAzureAttachmentsStatusType" }, "x-displayname": "Azure spoke Attachment Status.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Azure VEspokeNT Attachment List Status Type.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cloud_connectAzureAttachmentsListStatusType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cloud_connectAzureAttachmentsListStatusType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cloud_infrastructure", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Cloud connect is platform-level infrastructure" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "cloud_connectAzureAttachmentsStatusType": { "type": "object", "description": "Azure Attachment Status Type.", "title": "Azure Attachment Status Type", "x-displayname": "Azure Attachment Status Type.", "x-ves-proto-message": "ves.io.schema.cloud_connect.AzureAttachmentsStatusType", "properties": { "deployment_status": { "type": "string", "description": "Attachment Deployment Status.", "title": "Attachment Deployment Status", "x-displayname": "Attachment Deployment Status.", "x-f5xc-example": "{\"key\": \"value\"}", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "hub_owner_subscriptionid": { "type": "string", "description": "Hub Owner Subscription.", "title": "Hub Owner subscription", "x-displayname": "Hub Owner Subscription.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "hub_vnet_name": { "type": "string", "description": "Hub VNet Name.", "title": "Hub VNET Name", "x-displayname": "Hub VNet Name.", "x-f5xc-example": "example-resource", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "hub_vnet_resource_group": { "type": "string", "description": "Hub VNet Resource Group.", "title": "Hub VNET Resource Group", "x-displayname": "Hub VNet Resource Group.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "installed_routes": { "allOf": [ { "$ref": "#/components/schemas/cloud_connectAzureRouteTableWithStaticRouteListType" } ], "x-f5xc-description-short": "Configuration parameter for installed routes.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "peering_state": { "type": "string", "description": "Hub VNet Peering state.", "title": "Hub VNET Peering state", "x-displayname": "Hub VNet Peering state.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "peering_sync_level": { "type": "string", "description": "Hub VNet peering sync level.", "title": "Hub VNET peering sync level", "x-displayname": "Hub VNet peering sync level.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "provisioning_state": { "type": "string", "description": "Hub VNet Provisioning state.", "title": "Hub VNET Provisioning state", "x-displayname": "Hub VNet Provisioning state.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "spoke_subscription_id": { "type": "string", "description": "VNet Subscription.", "title": "VNET subscription", "x-displayname": "VNet Subscription.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-field-mutability": "read-only" }, "spoke_vnet_id": { "type": "string", "description": "Spoke VNet ID.", "title": "Spoke VNET ID", "x-displayname": "Spoke VNet ID.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-field-mutability": "read-only" }, "subnets": { "type": "array", "description": "Network Interfaces created along with the attachment.", "title": "Subnets", "items": { "$ref": "#/components/schemas/cloud_connectSubnetStatusType" }, "x-displayname": "Network Interfaces.", "x-f5xc-description-short": "Network Interfaces created along with the attachment.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "tags": { "type": "object", "description": "Attachment Tags.", "title": "Attachment Tags", "x-displayname": "Attachment Tags.", "x-ves-validation-rules": { "ves.io.schema.rules.map.keys.string.max_len": "127", "ves.io.schema.rules.map.max_pairs": "20", "ves.io.schema.rules.map.values.string.max_len": "255" }, "x-validation-rules": { "ves.io.schema.rules.map.keys.string.max_len": "127", "ves.io.schema.rules.map.max_pairs": "20", "ves.io.schema.rules.map.values.string.max_len": "255" }, "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "vnet_attachment_id": { "type": "string", "description": "VNet Attachment ID.", "title": "VNET Attachment ID", "x-displayname": "VNet Attachment ID.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-field-mutability": "read-only" }, "vnet_cidr": { "type": "string", "description": "VNet CIDR", "title": "VNET CIDR", "x-displayname": "VNet CIDR", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cloud_connectAzureAttachmentsStatusType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cloud_connectAzureAttachmentsStatusType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cloud_infrastructure", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Cloud connect is platform-level infrastructure" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "cloud_connectAzureDefaultRoute": { "type": "object", "description": "Select Override Default Route Choice.", "title": "Default Route Override Choice", "x-displayname": "Override Default Route Choice.", "x-ves-oneof-field-default_route_choice": "[\"all_route_tables\",\"selective_route_tables\"]", "x-ves-proto-message": "ves.io.schema.cloud_connect.AzureDefaultRoute", "properties": { "all_route_tables": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-description-short": "Configuration parameter for all route tables.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "selective_route_tables" ] }, "selective_route_tables": { "allOf": [ { "$ref": "#/components/schemas/cloud_connectAzureRouteTables" } ], "x-f5xc-description-short": "Configuration parameter for selective route tables.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "all_route_tables" ] } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cloud_connectAzureDefaultRoute", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cloud_connectAzureDefaultRoute\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cloud_infrastructure", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Cloud connect is platform-level infrastructure" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "cloud_connectAzureRouteTableWithStaticRoute": { "type": "object", "description": "Azure Route Table with Static Route.", "title": "Azure Route Table", "x-displayname": "Azure Route Table with Static Route.", "x-ves-proto-message": "ves.io.schema.cloud_connect.AzureRouteTableWithStaticRoute", "properties": { "route_table_id": { "type": "string", "description": "Route table ID in the format //", "title": "Route table ID", "maxLength": 256, "x-displayname": "Route table ID.", "x-ves-example": "/rg-1/rtb-12345678901234567.", "x-ves-validation-rules": { "ves.io.schema.rules.string.max_len": "256", "ves.io.schema.rules.string.pattern": "^\\\\/[-\\\\w\\\\._\\\\(\\\\)]+\\\\/[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$" }, "x-f5xc-example": "/rg-1/rtb-12345678901234567", "x-validation-rules": { "ves.io.schema.rules.string.max_len": "256", "ves.io.schema.rules.string.pattern": "^\\\\/[-\\\\w\\\\._\\\\(\\\\)]+\\\\/[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$" }, "x-f5xc-description-short": "Route table ID in the format //.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 256, "pattern": "^\\\\/[-\\\\w\\\\._\\\\(\\\\)]+\\\\/[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$", "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-field-mutability": "read-only" }, "static_routes": { "type": "array", "description": "List of Static Routes.", "title": "static_routes", "minItems": 1, "maxItems": 50, "items": { "type": "string" }, "x-displayname": "Static Routes.", "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.repeated.items.string.ipv4_prefix": "true", "ves.io.schema.rules.repeated.max_items": "50", "ves.io.schema.rules.repeated.min_items": "1", "ves.io.schema.rules.repeated.unique": "true" }, "x-f5xc-example": "192.0.2.0/24", "x-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.repeated.items.string.ipv4_prefix": "true", "ves.io.schema.rules.repeated.max_items": "50", "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": 50, "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cloud_connectAzureRouteTableWithStaticRoute", "required_fields": [ "static_routes" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cloud_connectAzureRouteTableWithStaticRoute\nmetadata:\n name: example\n namespace: default\nspec:\n static_routes: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"static_routes\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "cloud_infrastructure", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Cloud connect is platform-level infrastructure" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "cloud_connectAzureRouteTableWithStaticRouteListType": { "type": "object", "description": "List Azure Route Table with Static Route.", "title": "List Azure Route Table with Static Route", "x-displayname": "List Azure Route Table with Static Route.", "x-ves-proto-message": "ves.io.schema.cloud_connect.AzureRouteTableWithStaticRouteListType", "properties": { "route_tables": { "type": "array", "description": "Route Tables with static routes.", "title": "List of route tables with static routes", "minItems": 1, "maxItems": 200, "items": { "$ref": "#/components/schemas/cloud_connectAzureRouteTableWithStaticRoute" }, "x-displayname": "List of route tables with static routes.", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true", "ves.io.schema.rules.repeated.max_items": "200", "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": "200", "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": 200, "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false } } }, "x-f5xc-description-short": "List Azure Route Table with Static Route.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cloud_connectAzureRouteTableWithStaticRouteListType", "required_fields": [ "route_tables" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cloud_connectAzureRouteTableWithStaticRouteListType\nmetadata:\n name: example\n namespace: default\nspec:\n route_tables: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"route_tables\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "cloud_infrastructure", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Cloud connect is platform-level infrastructure" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "cloud_connectAzureRouteTables": { "type": "object", "description": "Azure Route Table.", "title": "Azure Route Table", "x-displayname": "Azure Route Table.", "x-ves-proto-message": "ves.io.schema.cloud_connect.AzureRouteTables", "properties": { "route_table_id": { "type": "array", "description": "Route table ID in the format //", "title": "Route table ID", "items": { "type": "string", "maxLength": 256 }, "x-displayname": "Route table ID.", "x-ves-example": "/rg-1/rtb-12345678901234567.", "x-ves-validation-rules": { "ves.io.schema.rules.repeated.unique": "true", "ves.io.schema.rules.string.max_len": "256" }, "x-f5xc-example": "/rg-1/rtb-12345678901234567", "x-validation-rules": { "ves.io.schema.rules.repeated.unique": "true", "ves.io.schema.rules.string.max_len": "256" }, "x-f5xc-description-short": "Route table ID in the format //.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+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 cloud_connectAzureRouteTables", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cloud_connectAzureRouteTables\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cloud_infrastructure", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Cloud connect is platform-level infrastructure" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "cloud_connectAzureVNETAttachmentType": { "type": "object", "title": "Azure VNET attachment", "x-displayname": "Azure VNet Attachment.", "x-ves-oneof-field-routing_choice": "[\"custom_routing\",\"default_route\",\"manual_routing\"]", "x-ves-proto-message": "ves.io.schema.cloud_connect.AzureVNETAttachmentType", "properties": { "custom_routing": { "allOf": [ { "$ref": "#/components/schemas/cloud_connectAzureRouteTableWithStaticRouteListType" } ], "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "default_route", "manual_routing" ] }, "default_route": { "allOf": [ { "$ref": "#/components/schemas/cloud_connectAzureDefaultRoute" } ], "x-f5xc-description-short": "Configuration parameter for default route.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "custom_routing", "manual_routing" ] }, "labels": { "type": "object", "description": "Add labels for the VNet attachments. These labels can then be used in policies such as enhanced firewall policies.", "title": "Labels", "x-displayname": "Labels", "x-ves-example": "Value", "x-f5xc-example": "value", "x-f5xc-description-short": "Add labels for the VNet attachments. These labels can then be used in policies such as enhanced firewall policies.", "x-f5xc-description-medium": "Add labels for the VNet attachments. These labels can then be used in policies such as enhanced firewall policies.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "manual_routing": { "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": [ "custom_routing", "default_route" ] }, "subscription_id": { "type": "string", "description": "Enter the Subscription ID of the VNet to be attached.", "title": "Subscription ID", "maxLength": 64, "x-displayname": "Subscription ID.", "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-description-short": "Enter the Subscription ID of the VNet to be attached.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 64, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": true, "create": true, "update": false, "read": false }, "x-field-mutability": "read-only" }, "vnet_id": { "type": "string", "description": "Enter the VNet ID of the VNet to be attached in format //", "title": "VNET ID", "maxLength": 256, "x-displayname": "VNet ID", "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": "Enter the VNet ID of the VNet to be attached in format //.", "x-f5xc-constraints": { "constraintType": "string", "category": "discovery", "maxLength": 256, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+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 cloud_connectAzureVNETAttachmentType", "required_fields": [ "subscription_id", "vnet_id" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cloud_connectAzureVNETAttachmentType\nmetadata:\n name: example\n namespace: default\nspec:\n subscription_id: value\n vnet_id: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"subscription_id\": \"value\",\n \"vnet_id\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "cloud_infrastructure", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Cloud connect is platform-level infrastructure" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "cloud_connectAzureVNETSiteType": { "type": "object", "description": "Cloud Connect Azure VNet Site Type.", "title": "Cloud Connect Azure VNET Site Type", "x-displayname": "Azure VNet Site Type.", "x-ves-proto-message": "ves.io.schema.cloud_connect.AzureVNETSiteType", "properties": { "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" } ] }, "vnet_attachments": { "allOf": [ { "$ref": "#/components/schemas/cloud_connectAzureVnetAttachmentListType" } ], "x-f5xc-description-short": "Configuration parameter for vnet attachments.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cloud_connectAzureVNETSiteType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cloud_connectAzureVNETSiteType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cloud_infrastructure", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Cloud connect is platform-level infrastructure" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "cloud_connectAzureVnetAttachmentListType": { "type": "object", "title": "VNET Attachments", "x-displayname": "VNet Attachments.", "x-ves-proto-message": "ves.io.schema.cloud_connect.AzureVnetAttachmentListType", "properties": { "vnet_list": { "type": "array", "description": "Collection of items or values", "title": "vnet_list", "maxItems": 128, "items": { "$ref": "#/components/schemas/cloud_connectAzureVNETAttachmentType" }, "x-displayname": "VNet List", "x-ves-validation-rules": { "ves.io.schema.rules.repeated.max_items": "128" }, "x-validation-rules": { "ves.io.schema.rules.repeated.max_items": "128" }, "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 128, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cloud_connectAzureVnetAttachmentListType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cloud_connectAzureVnetAttachmentListType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cloud_infrastructure", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Cloud connect is platform-level infrastructure" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "cloud_connectCloudConnectData": { "type": "object", "description": "CloudConnectData wraps all the response data for a cloud connect.", "title": "Cloud Connect Data", "x-displayname": "Cloud Connect Data.", "x-ves-proto-message": "ves.io.schema.cloud_connect.CloudConnectData", "properties": { "data": { "type": "array", "description": "Metric values.", "title": "Data", "items": { "$ref": "#/components/schemas/cloud_connectMetricData" }, "x-displayname": "Data", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "labels": { "type": "object", "description": "Labels contains the name/value pair.\n\"name\" is the label defined in Labels.", "title": "Labels", "x-displayname": "Labels", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "Labels contains the name/value pair. \"name\" is the label defined in Labels.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "CloudConnectData wraps all the response data for a cloud connect.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cloud_connectCloudConnectData", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cloud_connectCloudConnectData\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cloud_infrastructure", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Cloud connect is platform-level infrastructure" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "cloud_connectCloudConnectProviderType": { "type": "string", "description": "Cloud Connect Provider Type\n\n- AWS: AWS\n\nCloud connects backed by AWS cloud\n- Azure: Azure\n\nCloud connects backed by Azure cloud\n- GCP: GCP\n\nCloud connects backed by GCP cloud.", "title": "Cloud Connect Provider", "enum": [ "AWS", "AZURE", "GCP" ], "default": "AWS", "x-displayname": "Cloud Connect Provider.", "x-ves-proto-enum": "ves.io.schema.cloud_connect.CloudConnectProviderType", "x-f5xc-description-short": "Cloud Connect Provider Type - AWS: AWS Cloud connects backed by AWS cloud - Azure: Azure Cloud connects backed by Azure cloud - GCP: GCP Cloud...", "x-f5xc-description-medium": "Cloud Connect Provider Type - AWS: AWS Cloud connects backed by AWS cloud - Azure: Azure Cloud connects backed by Azure cloud - GCP: GCP Cloud connects backed by GCP cloud.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cloud_connectCloudConnectProviderType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cloud_connectCloudConnectProviderType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cloud_infrastructure", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Cloud connect is platform-level infrastructure" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "cloud_connectCloudConnectState": { "type": "string", "description": "State of the CloudConnect connections\n\n- DOWN: Down\n\nCloudConnect and their corresponding VPC attachments are down\n- DEGRADED: Degraded\n\nSome of VPC attachments with the CloudConnect are down\n- UP: Up\n\nCloudConnect and their corresponding VPC attachments are available and healthy.", "title": "CloudConnect State", "enum": [ "DOWN", "DEGRADED", "UP" ], "default": "DOWN", "x-displayname": "CloudConnect State.", "x-ves-proto-enum": "ves.io.schema.cloud_connect.CloudConnectState", "x-f5xc-description-short": "State of the CloudConnect connections - DOWN: Down CloudConnect and their corresponding VPC attachments are down - DEGRADED: Degraded Some of VPC...", "x-f5xc-description-medium": "State of the CloudConnect connections - DOWN: Down CloudConnect and their corresponding VPC attachments are down - DEGRADED: Degraded Some of VPC attachments with the CloudConnect are down - UP: Up CloudConnect and their corresponding VPC attachments are available and healthy.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cloud_connectCloudConnectState", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cloud_connectCloudConnectState\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cloud_infrastructure", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Cloud connect is platform-level infrastructure" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "cloud_connectCloudConnectStatusType": { "type": "object", "description": "Cloud Connect Status.", "title": "Cloud Connect Status", "x-displayname": "Status", "x-ves-oneof-field-cloud_connect_deployment": "[\"cloud_connect_aws_securemesh_site\",\"cloud_connect_aws_site\",\"cloud_connect_azure_site\"]", "x-ves-proto-message": "ves.io.schema.cloud_connect.CloudConnectStatusType", "properties": { "cloud_connect_aws_securemesh_site": { "allOf": [ { "$ref": "#/components/schemas/cloud_connectAWSSecureMeshSiteStatusType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "cloud_connect_aws_site", "cloud_connect_azure_site" ] }, "cloud_connect_aws_site": { "allOf": [ { "$ref": "#/components/schemas/cloud_connectAWSAttachmentsListStatusType__ves_io_schema_cloud_connect" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "cloud_connect_aws_securemesh_site", "cloud_connect_azure_site" ] }, "cloud_connect_azure_site": { "allOf": [ { "$ref": "#/components/schemas/cloud_connectAzureAttachmentsListStatusType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "cloud_connect_aws_securemesh_site", "cloud_connect_aws_site" ] } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cloud_connectCloudConnectStatusType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cloud_connectCloudConnectStatusType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cloud_infrastructure", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Cloud connect is platform-level infrastructure" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "cloud_connectCloudConnectVPCStateType": { "type": "string", "description": "Cloud Connect VPC State Type\n\n- AVAILABLE: Available\n\nCloud Connect VPC attachment is in available state.\n- PENDING: Pending\n\nCloud Connect VPC attachment is in flight.\n- FAILED: Failed\n\nCloud Connect VPC attachment has failed.\n- DELETED: Deleted\n\nCloud Connect VPC attachment has been deleted.\n- DELETING: Deleting\n\nCloud Connect VPC attachment is being deleted.\n- INITIATED: Initiated\n\nCloud Connect VPC attachment process has been initiated.", "title": "Cloud Connect VPC State", "enum": [ "AVAILABLE", "PENDING", "FAILED", "DELETED", "DELETING", "INITIATED" ], "default": "AVAILABLE", "x-displayname": "Cloud Connect VPC State.", "x-ves-proto-enum": "ves.io.schema.cloud_connect.CloudConnectVPCStateType", "x-f5xc-description-short": "Cloud Connect VPC State Type - AVAILABLE: Available Cloud Connect VPC attachment is in available state. - PENDING: Pending Cloud Connect VPC...", "x-f5xc-description-medium": "Cloud Connect VPC State Type - AVAILABLE: Available Cloud Connect VPC attachment is in available state. - PENDING: Pending Cloud Connect VPC attachment is in flight. - FAILED: Failed Cloud Connect VPC attachment has failed. - DELETED: Deleted Cloud Connect VPC attachment has been deleted. ...", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cloud_connectCloudConnectVPCStateType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cloud_connectCloudConnectVPCStateType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cloud_infrastructure", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Cloud connect is platform-level infrastructure" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "cloud_connectCreateAWSProviderType": { "type": "object", "description": "Cloud Connect with AWS.", "title": "Cloud Connect with AWS", "x-displayname": "AWS", "x-ves-oneof-field-site_type": "[\"aws_tgw_site\"]", "x-ves-proto-message": "ves.io.schema.cloud_connect.CreateAWSProviderType", "properties": { "aws_tgw_site": { "allOf": [ { "$ref": "#/components/schemas/cloud_connectCreateAWSTGWSiteType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cloud_connectCreateAWSProviderType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cloud_connectCreateAWSProviderType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cloud_infrastructure", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Cloud connect is platform-level infrastructure" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "cloud_connectCreateAWSTGWSiteType": { "type": "object", "description": "Cloud Connect AWS TGW Site Type.", "title": "Create Cloud Connect AWS TGW Site Type", "x-displayname": "AWS TGW Site Type.", "x-ves-proto-message": "ves.io.schema.cloud_connect.CreateAWSTGWSiteType", "properties": { "cred": { "allOf": [ { "$ref": "#/components/schemas/schemaviewsObjectRefType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-references": [ { "resource_kind": "cloud_credentials", "field_path": "cred", "gated_by": null, "required": false, "cardinality": "single" } ] }, "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" } ] }, "vpc_attachments": { "allOf": [ { "$ref": "#/components/schemas/cloud_connectAWSVPCAttachmentListType" } ], "x-f5xc-description-short": "Configuration parameter for vpc attachments.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cloud_connectCreateAWSTGWSiteType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cloud_connectCreateAWSTGWSiteType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cloud_infrastructure", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Cloud connect is platform-level infrastructure" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "cloud_connectCreateRequest": { "type": "object", "description": "This is the input message of the 'Create' RPC.", "title": "CreateRequest is used to create an instance of cloud_connect", "x-displayname": "Create Request.", "x-ves-proto-message": "ves.io.schema.cloud_connect.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/schemacloud_connectCreateSpecType" } ], "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 cloud_connectCreateRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cloud_connectCreateRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cloud_infrastructure", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Cloud connect is platform-level infrastructure" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "cloud_connectCreateResponse": { "type": "object", "x-ves-proto-message": "ves.io.schema.cloud_connect.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/schemacloud_connectGetSpecType" } ], "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 cloud_connectCreateResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cloud_connectCreateResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cloud_infrastructure", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Cloud connect is platform-level infrastructure" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "cloud_connectCredentialsRequest": { "type": "object", "description": "Request to return all the credentials for the matching cloud site type.", "title": "CredentialsRequest", "x-displayname": "Edge Credentials Request.", "x-ves-proto-message": "ves.io.schema.cloud_connect.CredentialsRequest", "properties": { "provider": { "allOf": [ { "$ref": "#/components/schemas/cloud_connectCloudConnectProviderType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "maxLength": 8, "minLength": 3, "x-reconciled-from-discovery": true, "x-reconciled-at": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-description-short": "Request to return all the credentials for the matching cloud site type.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cloud_connectCredentialsRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cloud_connectCredentialsRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cloud_infrastructure", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Cloud connect is platform-level infrastructure" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "cloud_connectCredentialsResponse": { "type": "object", "description": "Response that returns all the credentials for the matching provider.", "title": "CredentialsResponse", "x-displayname": "CredentialsResponse.", "x-ves-proto-message": "ves.io.schema.cloud_connect.CredentialsResponse", "properties": { "cred": { "type": "array", "description": "Cloud credentials.", "title": "Credentials", "items": { "$ref": "#/components/schemas/schemaviewsObjectRefType" }, "x-displayname": "Cloud Credentials.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Response that returns all the credentials for the matching provider.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cloud_connectCredentialsResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cloud_connectCredentialsResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cloud_infrastructure", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Cloud connect is platform-level infrastructure" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "cloud_connectCustomerEdge": { "type": "object", "description": "Customer Edge uniquely identifies customer edge i.e. Site.", "title": "Customer Edge", "x-displayname": "Customer Edge.", "x-ves-proto-message": "ves.io.schema.cloud_connect.CustomerEdge", "properties": { "name": { "type": "string", "description": "Name of the customer edge.", "title": "Customer Edge", "x-displayname": "Customer Edge.", "x-ves-example": "Customer Edge 1.", "x-f5xc-example": "Customer Edge 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, 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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" } }, "x-f5xc-description-short": "Customer Edge uniquely identifies customer edge i.e. Site.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cloud_connectCustomerEdge", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cloud_connectCustomerEdge\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cloud_infrastructure", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Cloud connect is platform-level infrastructure" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "cloud_connectDefaultRoute": { "type": "object", "description": "Select Override Default Route Choice.", "title": "Default Route Override Choice", "x-displayname": "Override Default Route Choice.", "x-ves-oneof-field-default_route_choice": "[\"all_route_tables\",\"selective_route_tables\"]", "x-ves-proto-message": "ves.io.schema.cloud_connect.DefaultRoute", "properties": { "all_route_tables": { "allOf": [ { "$ref": "#/components/schemas/ioschemaEmpty" } ], "x-f5xc-description-short": "Configuration parameter for all route tables.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "selective_route_tables" ] }, "selective_route_tables": { "allOf": [ { "$ref": "#/components/schemas/cloud_connectAWSDefaultRoutesRouteTable" } ], "x-f5xc-description-short": "Configuration parameter for selective route tables.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-conflicts-with": [ "all_route_tables" ] } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cloud_connectDefaultRoute", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cloud_connectDefaultRoute\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cloud_infrastructure", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Cloud connect is platform-level infrastructure" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "cloud_connectDeleteRequest": { "type": "object", "description": "This is the input message of the 'DELETE' RPC.", "title": "DeleteRequest is used to delete a cloud_connect", "x-displayname": "DELETE Request.", "x-ves-proto-message": "ves.io.schema.cloud_connect.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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+00:00", "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$" } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cloud_connectDeleteRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cloud_connectDeleteRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cloud_infrastructure", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Cloud connect is platform-level infrastructure" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "cloud_connectDiscoverVPCRequest": { "type": "object", "description": "Request body to discover vpcs for a given cloud provider, region and cred.", "title": "DiscoverVPCRequest", "x-displayname": "Cloud Connect VPC Discovery Request.", "x-ves-proto-message": "ves.io.schema.cloud_connect.DiscoverVPCRequest", "properties": { "cred": { "allOf": [ { "$ref": "#/components/schemas/schemaviewsObjectRefType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-references": [ { "resource_kind": "cloud_credentials", "field_path": "cred", "gated_by": null, "required": false, "cardinality": "single" } ] }, "edge_site": { "allOf": [ { "$ref": "#/components/schemas/ioschemaObjectRefType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-references": [ { "resource_kind": "site", "field_path": "edge_site", "gated_by": null, "required": false, "cardinality": "single" } ] }, "provider": { "allOf": [ { "$ref": "#/components/schemas/cloud_connectCloudConnectProviderType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "maxLength": 8, "minLength": 3, "x-reconciled-from-discovery": true, "x-reconciled-at": "2026-08-20T09:12:47+00:00" }, "region": { "type": "string", "description": "Region.", "title": "Region", "x-displayname": "Region", "x-f5xc-example": "us-west-2", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Request body to discover vpcs for a given cloud provider, region and cred.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cloud_connectDiscoverVPCRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cloud_connectDiscoverVPCRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cloud_infrastructure", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Cloud connect is platform-level infrastructure" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "cloud_connectDiscoverVPCResponse": { "type": "object", "description": "VPC discovery response body for a cloud provider.", "title": "DiscoverVPCResponse", "x-displayname": "Cloud Connect VPC Discovery Response.", "x-ves-proto-message": "ves.io.schema.cloud_connect.DiscoverVPCResponse", "properties": { "discovered_vpc": { "type": "array", "description": "Discovered VPC.", "title": "Discovered VPC\nx-displayName: \"Discovered VPC\"\nDiscovered vpc", "items": { "$ref": "#/components/schemas/cloud_connectDiscoveredVPCType" }, "x-displayname": "Discovered VPC.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "VPC discovery response body for a cloud provider.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cloud_connectDiscoverVPCResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cloud_connectDiscoverVPCResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cloud_infrastructure", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Cloud connect is platform-level infrastructure" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "cloud_connectDiscoveredVPCType": { "type": "object", "description": "Discover VPC Type.", "title": "DiscoverVPC Type", "x-displayname": "Discover VPC.", "x-ves-proto-message": "ves.io.schema.cloud_connect.DiscoveredVPCType", "properties": { "cred": { "allOf": [ { "$ref": "#/components/schemas/schemaviewsObjectRefType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-references": [ { "resource_kind": "cloud_credentials", "field_path": "cred", "gated_by": null, "required": false, "cardinality": "single" } ] }, "provider": { "allOf": [ { "$ref": "#/components/schemas/cloud_connectCloudConnectProviderType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "maxLength": 8, "minLength": 3, "x-reconciled-from-discovery": true, "x-reconciled-at": "2026-08-20T09:12:47+00:00" }, "region": { "type": "string", "description": "Region", "title": "Region", "x-displayname": "Region", "x-f5xc-example": "us-west-2", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "vpc_id": { "type": "string", "description": "VPC ID", "title": "VPC ID", "x-displayname": "VPC ID", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-field-mutability": "read-only" }, "vpc_name": { "type": "string", "description": "VPC Name", "title": "VPC Name", "x-displayname": "VPC Name", "x-f5xc-example": "example-resource", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cloud_connectDiscoveredVPCType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cloud_connectDiscoveredVPCType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cloud_infrastructure", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Cloud connect is platform-level infrastructure" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "cloud_connectEdgeData": { "type": "object", "description": "EdgeData wraps all the response data for a customer edge.", "title": "Cloud Connect Edge Data", "x-displayname": "Cloud Connect Edge Data.", "x-ves-proto-message": "ves.io.schema.cloud_connect.EdgeData", "properties": { "ce": { "allOf": [ { "$ref": "#/components/schemas/cloud_connectCustomerEdge" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "segments": { "type": "array", "description": "Metric data for the segments.", "title": "Metric", "items": { "$ref": "#/components/schemas/cloud_connectSegmentationData" }, "x-displayname": "Metric", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "EdgeData wraps all the response data for a customer edge.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cloud_connectEdgeData", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cloud_connectEdgeData\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cloud_infrastructure", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Cloud connect is platform-level infrastructure" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "cloud_connectEdgeListResponse": { "type": "object", "description": "Response body that returns online edge sites both customer edge and cloud edge.", "title": "EdgeListResponse", "x-displayname": "Edge List Response.", "x-ves-proto-message": "ves.io.schema.cloud_connect.EdgeListResponse", "properties": { "edge_site": { "type": "array", "description": "Reference to a edge site.", "title": "Edge Site", "items": { "$ref": "#/components/schemas/cloud_connectEdgeSite" }, "x-displayname": "Edge Site", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Response body that returns online edge sites both customer edge and cloud edge.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cloud_connectEdgeListResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cloud_connectEdgeListResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cloud_infrastructure", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Cloud connect is platform-level infrastructure" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "cloud_connectEdgeSite": { "type": "object", "description": "Reference to a edge site.", "title": "Edge Site", "x-displayname": "Edge Site", "x-ves-proto-message": "ves.io.schema.cloud_connect.EdgeSite", "properties": { "coordinates": { "allOf": [ { "$ref": "#/components/schemas/siteCoordinates__ves_io_schema_cloud_connect" } ], "x-f5xc-description-short": "Configuration parameter for coordinates.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "edge_site": { "allOf": [ { "$ref": "#/components/schemas/ioschemaObjectRefType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-references": [ { "resource_kind": "site", "field_path": "edge_site", "gated_by": null, "required": false, "cardinality": "single" } ] }, "provider": { "allOf": [ { "$ref": "#/components/schemas/cloud_connectCloudConnectProviderType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "maxLength": 8, "minLength": 3, "x-reconciled-from-discovery": true, "x-reconciled-at": "2026-08-20T09:12:47+00:00" }, "region": { "type": "string", "description": "Edge site region.", "title": "Region", "x-displayname": "Region", "x-f5xc-example": "us-west-2", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cloud_connectEdgeSite", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cloud_connectEdgeSite\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cloud_infrastructure", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Cloud connect is platform-level infrastructure" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "cloud_connectFieldData": { "type": "object", "description": "Field Data contains key/value pairs that uniquely identifies the group_by labels specified in the request.", "title": "Field Data", "x-displayname": "Field Data.", "x-ves-proto-message": "ves.io.schema.cloud_connect.FieldData", "properties": { "labels": { "type": "object", "description": "Labels contains the name/value pair.\n\"name\" is the label defined in Labels.", "title": "Labels", "x-displayname": "Labels", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "Labels contains the name/value pair. \"name\" is the label defined in Labels.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "status": { "allOf": [ { "$ref": "#/components/schemas/cloud_connectStatus" } ], "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-08-20T09:12:47+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-08-20T09:12:47+00:00" } }, "x-f5xc-description-short": "Field Data contains key/value pairs that uniquely identifies the group_by labels specified in the request.", "x-f5xc-description-medium": "Field Data contains key/value pairs that uniquely identifies the group_by labels specified in the request.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cloud_connectFieldData", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cloud_connectFieldData\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cloud_infrastructure", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Cloud connect is platform-level infrastructure" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "cloud_connectFieldSelector": { "type": "string", "description": "FieldSelector specifies the metrics that can be queried for cloud connect.\n\nIndicates field not being set\nx-unit: \"bytes per second (bps)\"\nThroughput of incoming traffic\nx-unit: \"bytes per second (bps)\"\nThroughput of outgoing traffic\nx-unit: \"bytes per second (bps)\"\nThroughput of outgoing traffic.", "title": "Cloud Connect Metric Type", "enum": [ "METRIC_TYPE_NONE", "METRIC_TYPE_IN_BYTES", "METRIC_TYPE_OUT_BYTES", "METRIC_TYPE_TOTAL_BYTES" ], "default": "METRIC_TYPE_NONE", "x-displayname": "Cloud Connect Metric Type.", "x-ves-proto-enum": "ves.io.schema.cloud_connect.FieldSelector", "x-f5xc-description-short": "FieldSelector specifies the metrics that can be queried for cloud connect.", "x-f5xc-description-medium": "FieldSelector specifies the metrics that can be queried for cloud connect. Indicates field not being set x-unit: \"bytes per second (bps)\" Throughput of incoming traffic x-unit: \"bytes per second (bps)\" Throughput of outgoing traffic x-unit: \"bytes per second (bps)\" Throughput of outgoing traffic.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cloud_connectFieldSelector", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cloud_connectFieldSelector\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cloud_infrastructure", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Cloud connect is platform-level infrastructure" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "cloud_connectGetMetricsRequest": { "type": "object", "description": "Request to GET cloud connect data.", "title": "Get Metrics Request", "x-displayname": "GET Metrics Request.", "x-ves-proto-message": "ves.io.schema.cloud_connect.GetMetricsRequest", "properties": { "end_time": { "type": "string", "description": "End time of metric collection from which data will be considered to fetch cloud connect data.\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 ", "title": "end_time", "x-displayname": "End Time", "x-ves-example": "2019-09-24T12:30:11.733Z.", "x-ves-validation-rules": { "ves.io.schema.rules.string.query_time": "true" }, "x-f5xc-example": "2019-09-24T12:30:11.733Z", "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 fetch cloud connect data.", "x-f5xc-description-medium": "End time of metric collection from which data will be considered to fetch cloud connect data. 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 .", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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.\nField_selector is used to specify the fields to be returned in the response, thereby limiting the\namount of data returned in the response.\n\nNote: Selecting many/all fields may impact the query latency.\n\nOptional: If not specified, only the following fields are returned in the response.\nMETRIC_TYPE_IN_BYTES, METRIC_TYPE_OUT_BYTES.", "title": "field_selector", "items": { "$ref": "#/components/schemas/cloud_connectFieldSelector" }, "x-displayname": "Field Selector.", "x-ves-validation-rules": { "ves.io.schema.rules.repeated.items.enum.defined_only": "true", "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.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. Field_selector is used to specify the fields to be returned in the response, thereby limiting the amount of data returned in the response.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "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 } }, "name": { "type": "string", "description": "Cloud Connect name.", "title": "Name", "x-displayname": "Name", "x-ves-example": "Cloud_connect-1.", "x-ves-required": "true", "x-ves-validation-rules": { "ves.io.schema.rules.message.required": "true" }, "x-f5xc-example": "cloud_connect-1", "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-08-20T09:12:47+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-08-20T09:12:47+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 to fetch cloud connect data.\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 -10m.", "title": "start_time", "x-displayname": "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" }, "x-f5xc-description-short": "Start time of metric collection from which data will be considered to fetch cloud connect data.", "x-f5xc-description-medium": "Start time of metric collection from which data will be considered to fetch cloud connect data. 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 -10m.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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 ", "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cloud_connectGetMetricsRequest", "required_fields": [ "name" ], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cloud_connectGetMetricsRequest\nmetadata:\n name: example\n namespace: default\nspec:\n name: value", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {\n \"name\": \"value\"\n }\n}" }, "x-f5xc-cli-domain": "cloud_infrastructure", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Cloud connect is platform-level infrastructure" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "cloud_connectGetMetricsResponse": { "type": "object", "description": "GET Metrics Response.", "title": "Get Metrics Response", "x-displayname": "GET Metrics Response.", "x-ves-proto-message": "ves.io.schema.cloud_connect.GetMetricsResponse", "properties": { "data": { "type": "array", "description": "Metric data specified for the cloud connect.", "title": "Data", "items": { "$ref": "#/components/schemas/cloud_connectMetricData" }, "x-displayname": "Data", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "Metric data specified for the cloud connect.", "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cloud_connectGetMetricsResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cloud_connectGetMetricsResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cloud_infrastructure", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Cloud connect is platform-level infrastructure" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "cloud_connectGetResponse": { "type": "object", "description": "This is the output message of the 'GET' RPC.", "title": "GetResponse is the shape of a read cloud_connect", "x-displayname": "GET Response.", "x-ves-proto-message": "ves.io.schema.cloud_connect.GetResponse", "properties": { "create_form": { "allOf": [ { "$ref": "#/components/schemas/cloud_connectCreateRequest" } ], "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/cloud_connectReplaceRequest" } ], "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/schemacloud_connectGetSpecType" } ], "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/cloud_connectStatusObject" }, "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-08-20T09:12:47+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 cloud_connectGetResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cloud_connectGetResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cloud_infrastructure", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Cloud connect is platform-level infrastructure" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "cloud_connectLabelFilter": { "type": "object", "description": "Metrics used in the cloud connect are tagged with labels listed in the enum Label.\nLabel Filter is used to filter the timeseries that match the specified label key/value\nand the operator.", "title": "Label Filter", "x-displayname": "Label Filter.", "x-ves-proto-message": "ves.io.schema.cloud_connect.LabelFilter", "properties": { "label": { "allOf": [ { "$ref": "#/components/schemas/schemacloud_connectLabel" } ], "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 of the label.", "title": "Value", "x-displayname": "Value", "x-ves-example": "Ce01", "x-f5xc-example": "ce01", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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-08-20T09:12:47+00:00" } }, "x-f5xc-description-short": "Metrics used in the cloud connect are tagged with labels listed in the enum Label.", "x-f5xc-description-medium": "Metrics used in the cloud connect are tagged with labels listed in the enum Label. Label Filter is used to filter the timeseries that match the specified label key/value and the operator.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cloud_connectLabelFilter", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cloud_connectLabelFilter\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cloud_infrastructure", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Cloud connect is platform-level infrastructure" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "cloud_connectListMetricsRequest": { "type": "object", "description": "Cloud_connect API is used to GET the in/out throughput\nfor the tenant's customer edges.", "title": "List metrics Request", "x-displayname": "List Metrics Request.", "x-ves-proto-message": "ves.io.schema.cloud_connect.ListMetricsRequest", "properties": { "end_time": { "type": "string", "description": "End time of metric collection from which data will be considered to fetch cloud connect data.\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 ", "title": "end_time", "x-displayname": "End Time", "x-ves-example": "2019-09-24T12:30:11.733Z.", "x-ves-validation-rules": { "ves.io.schema.rules.string.query_time": "true" }, "x-f5xc-example": "2019-09-24T12:30:11.733Z", "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 fetch cloud connect data.", "x-f5xc-description-medium": "End time of metric collection from which data will be considered to fetch cloud connect data. 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 .", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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.\nField_selector is used to specify the fields to be returned in the response, thereby limiting the\namount of data returned in the response.\n\nNote: Selecting many/all fields may impact the query latency.\n\nOptional: If not specified, only the following fields are returned in the response.\nMETRIC_TYPE_IN_BYTES, METRIC_TYPE_OUT_BYTES.", "title": "field_selector", "items": { "$ref": "#/components/schemas/cloud_connectFieldSelector" }, "x-displayname": "Field Selector.", "x-ves-validation-rules": { "ves.io.schema.rules.repeated.items.enum.defined_only": "true", "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.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. Field_selector is used to specify the fields to be returned in the response, thereby limiting the amount of data returned in the response.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "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 key\" QueryOp \"value\".\nResponse will only contain data that matches all the conditions specified in the label_filter.\n\nOptional: If not specified, cloud connect data for all sites will be returned in the response.", "title": "label_filter", "maxItems": 100, "items": { "$ref": "#/components/schemas/cloud_connectLabelFilter" }, "x-displayname": "Label 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-description-short": "List of label filter expressions of the form \"label key\" QueryOp \"value\".", "x-f5xc-description-medium": "List of label filter expressions of the form \"label key\" QueryOp \"value\". Response will only contain data that matches all the conditions specified in the label_filter. Optional: If not specified, cloud connect data for all sites will be returned in the response.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 100, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+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 fetch cloud connect data.\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 -10m.", "title": "start_time", "x-displayname": "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" }, "x-f5xc-description-short": "Start time of metric collection from which data will be considered to fetch cloud connect data.", "x-f5xc-description-medium": "Start time of metric collection from which data will be considered to fetch cloud connect data. 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 -10m.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Cloud_connect API is used to GET the in/out throughput for the tenant's customer edges.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cloud_connectListMetricsRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cloud_connectListMetricsRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cloud_infrastructure", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Cloud connect is platform-level infrastructure" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "cloud_connectListMetricsResponse": { "type": "object", "description": "Response for cloud connect API contains list of customer edges & cloud connects associated with the customer edge.\nEach cloud connect contains throughput data for a given cloud connect.", "title": "List Metrics Response", "x-displayname": "List Metrics Response.", "x-ves-proto-message": "ves.io.schema.cloud_connect.ListMetricsResponse", "properties": { "cloud_connect": { "type": "array", "description": "Metric data specified for the cloud connect.", "title": "Cloud Connect", "items": { "$ref": "#/components/schemas/cloud_connectCloudConnectData" }, "x-displayname": "Cloud Connect.", "x-f5xc-description-short": "Metric data specified for the cloud connect.", "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Response for cloud connect API contains list of customer edges & cloud connects associated with the customer edge.", "x-f5xc-description-medium": "Response for cloud connect API contains list of customer edges & cloud connects associated with the customer edge. Each cloud connect contains throughput data for a given cloud connect.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cloud_connectListMetricsResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cloud_connectListMetricsResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cloud_infrastructure", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Cloud connect is platform-level infrastructure" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "cloud_connectListResponse": { "type": "object", "description": "This is the output message of 'List' RPC.", "title": "ListResponse is the collection of cloud_connect", "x-displayname": "List Response.", "x-ves-proto-message": "ves.io.schema.cloud_connect.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/cloud_connectListResponseItem" }, "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cloud_connectListResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cloud_connectListResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cloud_infrastructure", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Cloud connect is platform-level infrastructure" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "cloud_connectListResponseItem": { "type": "object", "description": "By default a summary of cloud_connect 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 cloud_connect", "x-displayname": "List Item", "x-ves-proto-message": "ves.io.schema.cloud_connect.ListResponseItem", "properties": { "annotations": { "type": "object", "description": "The set of annotations present on this cloud_connect.", "title": "annotations", "x-displayname": "Annotations.", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "The set of annotations present on this cloud_connect.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "description": { "type": "string", "description": "The description set for this cloud_connect.", "title": "description", "x-displayname": "Description.", "x-f5xc-description-short": "The description set for this cloud_connect.", "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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "disabled": { "type": "boolean", "description": "A value of true indicates cloud_connect is administratively disabled.", "title": "disabled", "format": "boolean", "x-displayname": "Disabled", "x-f5xc-example": "True", "x-f5xc-description-short": "Value of true indicates cloud_connect is administratively disabled.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "get_spec": { "allOf": [ { "$ref": "#/components/schemas/schemacloud_connectGetSpecType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "labels": { "type": "object", "description": "The set of labels present on this cloud_connect.", "title": "labels", "x-displayname": "Labels", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "The set of labels present on this cloud_connect.", "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 cloud_connect.", "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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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-08-20T09:12:47+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/cloud_connectStatusObject" }, "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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "uid": { "type": "string", "description": "The unique uid of this cloud_connect.", "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-08-20T09:12:47+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-08-20T09:12:47+00:00" } }, "x-f5xc-description-short": "By default a summary of cloud_connect 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 cloud_connect 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 cloud_connectListResponseItem", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cloud_connectListResponseItem\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cloud_infrastructure", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Cloud connect is platform-level infrastructure" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "cloud_connectListSegmentMetricsRequest": { "type": "object", "description": "Cloud_connect API is used to GET the in/out throughput\nfor the tenant's customer edges.", "title": "List Segment metrics Request", "x-displayname": "List Metrics Request.", "x-ves-proto-message": "ves.io.schema.cloud_connect.ListSegmentMetricsRequest", "properties": { "end_time": { "type": "string", "description": "End time of metric collection from which data will be considered to fetch cloud connect data.\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 ", "title": "end_time", "x-displayname": "End Time", "x-ves-example": "2019-09-24T12:30:11.733Z.", "x-ves-validation-rules": { "ves.io.schema.rules.string.query_time": "true" }, "x-f5xc-example": "2019-09-24T12:30:11.733Z", "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 fetch cloud connect data.", "x-f5xc-description-medium": "End time of metric collection from which data will be considered to fetch cloud connect data. 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 .", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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.\nField_selector is used to specify the fields to be returned in the response, thereby limiting the\namount of data returned in the response.\n\nNote: Selecting many/all fields may impact the query latency.\n\nOptional: If not specified, only the following fields are returned in the response.\nMETRIC_TYPE_IN_BYTES, METRIC_TYPE_OUT_BYTES.", "title": "field_selector", "items": { "$ref": "#/components/schemas/cloud_connectFieldSelector" }, "x-displayname": "Field Selector.", "x-ves-validation-rules": { "ves.io.schema.rules.repeated.items.enum.defined_only": "true", "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.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. Field_selector is used to specify the fields to be returned in the response, thereby limiting the amount of data returned in the response.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "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 } }, "label_filter": { "type": "array", "description": "List of label filter expressions of the form \"label key\" QueryOp \"value\".\nResponse will only contain data that matches all the conditions specified in the label_filter.\n\nOptional: If not specified, cloud connect data for all sites will be returned in the response.", "title": "label_filter", "maxItems": 100, "items": { "$ref": "#/components/schemas/cloud_connectLabelFilter" }, "x-displayname": "Label 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-description-short": "List of label filter expressions of the form \"label key\" QueryOp \"value\".", "x-f5xc-description-medium": "List of label filter expressions of the form \"label key\" QueryOp \"value\". Response will only contain data that matches all the conditions specified in the label_filter. Optional: If not specified, cloud connect data for all sites will be returned in the response.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "maxItems": 100, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+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 fetch cloud connect data.\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 -10m.", "title": "start_time", "x-displayname": "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" }, "x-f5xc-description-short": "Start time of metric collection from which data will be considered to fetch cloud connect data.", "x-f5xc-description-medium": "Start time of metric collection from which data will be considered to fetch cloud connect data. 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 -10m.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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 ", "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Cloud_connect API is used to GET the in/out throughput for the tenant's customer edges.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cloud_connectListSegmentMetricsRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cloud_connectListSegmentMetricsRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cloud_infrastructure", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Cloud connect is platform-level infrastructure" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "cloud_connectListSegmentMetricsResponse": { "type": "object", "description": "Response for cloud connect API contains list of customer edges & cloud connects associated with the customer edge.\nEach cloud connect contains throughput data for a given cloud connect.", "title": "List Segment Metrics Response", "x-displayname": "List Metrics Response.", "x-ves-proto-message": "ves.io.schema.cloud_connect.ListSegmentMetricsResponse", "properties": { "edges": { "type": "array", "description": "Cloud connect data for list of customer edges owned by a tenant.", "title": "Customer Edges", "items": { "$ref": "#/components/schemas/cloud_connectEdgeData" }, "x-displayname": "Customer Edges.", "x-f5xc-description-short": "Cloud connect data for list of customer edges owned by a tenant.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "segment": { "type": "array", "description": "Metric data for the given metric.", "items": { "$ref": "#/components/schemas/cloud_connectSegmentationData" }, "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-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "Response for cloud connect API contains list of customer edges & cloud connects associated with the customer edge.", "x-f5xc-description-medium": "Response for cloud connect API contains list of customer edges & cloud connects associated with the customer edge. Each cloud connect contains throughput data for a given cloud connect.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cloud_connectListSegmentMetricsResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cloud_connectListSegmentMetricsResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cloud_infrastructure", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Cloud connect is platform-level infrastructure" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "cloud_connectMetricData": { "type": "object", "description": "MetricData contains metric type and the corresponding value for a cloud connect.", "title": "Metric Data", "x-displayname": "Metric Data.", "x-ves-proto-message": "ves.io.schema.cloud_connect.MetricData", "properties": { "type": { "allOf": [ { "$ref": "#/components/schemas/cloud_connectFieldSelector" } ], "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 } }, "values": { "type": "array", "description": "List of metric values. May contain more than one value if timeseries data is requested.", "title": "Value", "items": { "$ref": "#/components/schemas/schemaMetricValue" }, "x-displayname": "Value", "x-f5xc-description-short": "List of metric values. May contain more than one value if timeseries data is requested.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "MetricData contains metric type and the corresponding value for a cloud connect.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cloud_connectMetricData", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cloud_connectMetricData\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cloud_infrastructure", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Cloud connect is platform-level infrastructure" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "cloud_connectPeerType": { "type": "object", "description": "List of peer node and GRE tunnel configuration.", "title": "Peer", "x-displayname": "Peer Nodes.", "x-ves-proto-message": "ves.io.schema.cloud_connect.PeerType", "properties": { "inside_gre_subnet": { "type": "string", "title": "Inside GRE Subnet", "x-displayname": "Inside GRE Subnet.", "description": "Configuration parameter for inside gre subnet", "x-f5xc-description-short": "Configuration parameter for inside gre subnet.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "node": { "allOf": [ { "$ref": "#/components/schemas/cloud_re_regionNodeType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "peer_asn": { "type": "string", "title": "Peer ASN", "format": "int64", "x-displayname": "Peer ASN", "description": "Configuration parameter for peer asn", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "format": "int64", "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "tgw_address": { "type": "string", "title": "TGW Address", "x-displayname": "TGW Address.", "description": "Network address or location", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "List of peer node and GRE tunnel configuration.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cloud_connectPeerType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cloud_connectPeerType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cloud_infrastructure", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Cloud connect is platform-level infrastructure" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "cloud_connectReApplyVPCAttachmentRequest": { "type": "object", "description": "Request of VPC attachment reapply event.", "title": "ReApplyVPCAttachmentRequest", "x-displayname": "ReApplyVPCAttachmentRequest.", "x-ves-proto-message": "ves.io.schema.cloud_connect.ReApplyVPCAttachmentRequest", "properties": { "cloud_connect": { "allOf": [ { "$ref": "#/components/schemas/schemaviewsObjectRefType" } ], "x-f5xc-description-short": "Configuration parameter for cloud connect.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-f5xc-references": [ { "resource_kind": "cloud_connect", "field_path": "cloud_connect", "gated_by": null, "required": false, "cardinality": "single" } ] }, "provider": { "allOf": [ { "$ref": "#/components/schemas/cloud_connectCloudConnectProviderType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "maxLength": 8, "minLength": 3, "x-reconciled-from-discovery": true, "x-reconciled-at": "2026-08-20T09:12:47+00:00" }, "vpc_id": { "type": "string", "description": "VPC ID", "title": "VPC ID", "x-displayname": "VPC ID", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-field-mutability": "read-only" } }, "x-f5xc-description-short": "Request of VPC attachment reapply event.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cloud_connectReApplyVPCAttachmentRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cloud_connectReApplyVPCAttachmentRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cloud_infrastructure", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Cloud connect is platform-level infrastructure" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "cloud_connectReApplyVPCAttachmentResponse": { "type": "object", "description": "Response of VPC attachment reapply event.", "title": "ReApplyVPCAttachmentResponse", "x-displayname": "ReApplyVPCAttachmentResponse.", "x-ves-proto-message": "ves.io.schema.cloud_connect.ReApplyVPCAttachmentResponse", "x-f5xc-description-short": "Response of VPC attachment reapply event.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cloud_connectReApplyVPCAttachmentResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cloud_connectReApplyVPCAttachmentResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cloud_infrastructure", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Cloud connect is platform-level infrastructure" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "cloud_connectReplaceAWSProviderType": { "type": "object", "description": "Cloud Connect with AWS.", "title": "Cloud Connect with AWS", "x-displayname": "AWS", "x-ves-oneof-field-site_type": "[\"aws_tgw_site\"]", "x-ves-proto-message": "ves.io.schema.cloud_connect.ReplaceAWSProviderType", "properties": { "aws_tgw_site": { "allOf": [ { "$ref": "#/components/schemas/cloud_connectReplaceAWSTGWSiteType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cloud_connectReplaceAWSProviderType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cloud_connectReplaceAWSProviderType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cloud_infrastructure", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Cloud connect is platform-level infrastructure" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "cloud_connectReplaceAWSTGWSiteType": { "type": "object", "description": "Cloud Connect AWS TGW Site Type.", "title": "Replace Cloud Connect AWS TGW Site Type", "x-displayname": "AWS TGW Site Type.", "x-ves-proto-message": "ves.io.schema.cloud_connect.ReplaceAWSTGWSiteType", "properties": { "vpc_attachments": { "allOf": [ { "$ref": "#/components/schemas/cloud_connectAWSVPCAttachmentListType" } ], "x-f5xc-description-short": "Configuration parameter for vpc attachments.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cloud_connectReplaceAWSTGWSiteType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cloud_connectReplaceAWSTGWSiteType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cloud_infrastructure", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Cloud connect is platform-level infrastructure" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "cloud_connectReplaceAzureVNETSiteType": { "type": "object", "description": "Cloud Connect Azure VNet Site Type.", "title": "Replace Cloud Connect Azure Vnet Site Type", "x-displayname": "Azure VNet Site Type.", "x-ves-proto-message": "ves.io.schema.cloud_connect.ReplaceAzureVNETSiteType", "properties": { "vnet_attachments": { "allOf": [ { "$ref": "#/components/schemas/cloud_connectAzureVnetAttachmentListType" } ], "x-f5xc-description-short": "Configuration parameter for vnet attachments.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cloud_connectReplaceAzureVNETSiteType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cloud_connectReplaceAzureVNETSiteType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cloud_infrastructure", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Cloud connect is platform-level infrastructure" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "cloud_connectReplaceRequest": { "type": "object", "description": "This is the input message of the 'Replace' RPC.", "title": "ReplaceRequest is used to replace contents of a cloud_connect", "x-displayname": "Replace Request.", "x-ves-proto-message": "ves.io.schema.cloud_connect.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/schemacloud_connectReplaceSpecType" } ], "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 cloud_connectReplaceRequest", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cloud_connectReplaceRequest\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cloud_infrastructure", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Cloud connect is platform-level infrastructure" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "cloud_connectReplaceResponse": { "type": "object", "x-ves-proto-message": "ves.io.schema.cloud_connect.ReplaceResponse", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cloud_connectReplaceResponse", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cloud_connectReplaceResponse\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cloud_infrastructure", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Cloud connect is platform-level infrastructure" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "cloud_connectSegmentationData": { "type": "object", "description": "SegmentationData contains metric type and the corresponding value for a cloud connect.", "title": "Cloud Connect Segmentation Data", "x-displayname": "Cloud Connect Segmentation Data.", "x-ves-proto-message": "ves.io.schema.cloud_connect.SegmentationData", "properties": { "data": { "type": "array", "description": "List of metric values. May contain more than one value if timeseries data is requested.", "title": "Data", "items": { "$ref": "#/components/schemas/cloud_connectMetricData" }, "x-displayname": "Data", "x-f5xc-example": "{\"key\": \"value\"}", "x-f5xc-description-short": "List of metric values. May contain more than one value if timeseries data is requested.", "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "type": { "allOf": [ { "$ref": "#/components/schemas/cloud_connectTrafficType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "SegmentationData contains metric type and the corresponding value for a cloud connect.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cloud_connectSegmentationData", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cloud_connectSegmentationData\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cloud_infrastructure", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Cloud connect is platform-level infrastructure" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "cloud_connectStatus": { "type": "string", "description": "Enumerates Status of CloudConnect\n\n- STATUS_UNKNOWN: Unknown\n\n- STATUS_DOWN: Down\n\n- STATUS_DEGRADED: Degraded\n\n- STATUS_UP: Up.", "title": "Status", "enum": [ "STATUS_UNKNOWN", "STATUS_DOWN", "STATUS_DEGRADED", "STATUS_UP" ], "default": "STATUS_UNKNOWN", "x-displayname": "Status", "x-ves-proto-enum": "ves.io.schema.cloud_connect.Status", "x-f5xc-description-short": "Enumerates Status of CloudConnect - STATUS_UNKNOWN: Unknown - STATUS_DOWN: Down - STATUS_DEGRADED: Degraded - STATUS_UP: Up.", "x-f5xc-description-medium": "Enumerates Status of CloudConnect - STATUS_UNKNOWN: Unknown - STATUS_DOWN: Down - STATUS_DEGRADED: Degraded - STATUS_UP: Up.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cloud_connectStatus", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cloud_connectStatus\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cloud_infrastructure", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Cloud connect is platform-level infrastructure" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "cloud_connectStatusObject": { "type": "object", "description": "Most recently observed status of object.", "title": "Status for Cloud Connect", "x-displayname": "Status", "x-ves-proto-message": "ves.io.schema.cloud_connect.StatusObject", "properties": { "cloud_connect_status": { "allOf": [ { "$ref": "#/components/schemas/cloud_connectCloudConnectStatusType" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "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-description-short": "Most recently observed status of object.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cloud_connectStatusObject", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cloud_connectStatusObject\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cloud_infrastructure", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Cloud connect is platform-level infrastructure" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "cloud_connectSubnetStatusType": { "type": "object", "description": "Network Interface Status.", "title": "SubnetStatusType for AWS VPC Attachment", "x-displayname": "Network Interface Status.", "x-ves-proto-message": "ves.io.schema.cloud_connect.SubnetStatusType", "properties": { "availability_zone": { "type": "string", "description": "Availability Zone.", "title": "Availability Zone\nx-displayName: \"Availability Zone\"", "x-displayname": "Availability Zone.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "interface_type": { "type": "string", "description": "Interface Type.", "title": "Interface Type\nx-displayName: \"Interface Type\"", "x-displayname": "Interface Type.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "network_interface_id": { "type": "string", "description": "Network Interface ID.", "title": "Network Interface ID", "x-displayname": "Network Interface ID.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false }, "x-field-mutability": "read-only" }, "private_ipv4_address": { "type": "string", "description": "Private IPv4 Address.", "title": "Private IPV4 Address\nx-displayName: \"Private IPV4 Address\"", "x-displayname": "Private IPv4 Address.", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "status": { "type": "string", "description": "Status", "title": "Status\nx-displayName: \"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-08-20T09:12:47+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-08-20T09:12:47+00:00" }, "subnet_id": { "type": "string", "description": "Subnet ID", "title": "Subnet ID\nx-displayName: \"Subnet ID\"", "x-displayname": "Subnet ID", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+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 cloud_connectSubnetStatusType", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cloud_connectSubnetStatusType\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cloud_infrastructure", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Cloud connect is platform-level infrastructure" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "cloud_connectTopCloudConnectData": { "type": "object", "description": "TopCloudConnectData wraps all the response data.", "title": "TopCloudConnectData", "x-displayname": "TopCloudConnectData.", "x-ves-proto-message": "ves.io.schema.cloud_connect.TopCloudConnectData", "properties": { "data": { "type": "array", "description": "Flows data.", "title": "Data", "items": { "$ref": "#/components/schemas/cloud_connectFieldData" }, "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/cloud_connectFieldSelector" } ], "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } } }, "x-f5xc-description-short": "TopCloudConnectData wraps all the response data.", "x-f5xc-minimum-configuration": { "description": "Minimum configuration for cloud_connectTopCloudConnectData", "required_fields": [], "mutually_exclusive_groups": [], "example_yaml": "# Minimal example for cloud_connectTopCloudConnectData\nmetadata:\n name: example\n namespace: default\nspec: {}", "example_json": "{\n \"metadata\": {\n \"name\": \"example\",\n \"namespace\": \"default\"\n },\n \"spec\": {}\n}" }, "x-f5xc-cli-domain": "cloud_infrastructure", "x-f5xc-namespace-profile": { "constraint": { "allowed": [ "system" ], "enforced": false }, "recommendation": { "primary": "system", "alternatives": [], "rationale": "Cloud connect is platform-level infrastructure" }, "classification": { "category": "infrastructure", "multi_tenant_pattern": "none" } } }, "cloud_connectTopCloudConnectRequest": { "type": "object", "title": "Top Cloud Connect Request", "x-displayname": "Top Cloud Connect Request.", "x-ves-proto-message": "ves.io.schema.cloud_connect.TopCloudConnectRequest", "properties": { "end_time": { "type": "string", "description": "End time of flow collection\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 ", "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 flow collection Format: unix_timestamp|RFC 3339 Optional: If not specified, then the end_time will be evaluated to start_time+10m If...", "x-f5xc-description-medium": "End time of flow collection 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 .", "maxLength": 1024, "x-f5xc-constraints": { "constraintType": "string", "category": "general", "maxLength": 1024, "metadata": { "source": "inferred", "confidence": 0.85, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "field_selector": { "type": "array", "description": "Metric fields to be returned in the response. If no metric fields are specified in the request,\nthen the response will not contain any metric data.", "title": "Metric Selector", "items": { "$ref": "#/components/schemas/cloud_connectFieldSelector" }, "x-displayname": "Metric Selector.", "x-ves-validation-rules": { "ves.io.schema.rules.repeated.items.enum.defined_only": "true", "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.unique": "true" }, "x-f5xc-description-short": "Metric fields to be returned in the response. If no metric fields are specified in the request, then the response will not contain any metric data.", "x-f5xc-description-medium": "Metric fields to be returned in the response. If no metric fields are specified in the request, then the response will not contain any metric data.", "x-f5xc-constraints": { "constraintType": "array", "category": "discovery", "uniqueItems": true, "deterministic": true, "metadata": { "source": "discovery", "confidence": 0.99, "validatedAt": "2026-08-20T09:12:47+00:00" } }, "x-f5xc-required-for": { "minimum_config": false, "create": false, "update": false, "read": false } }, "filter": { "type": "string", "description": "\\site-1\",\\\"site-2\\\")}\"\nfilter is used to specify the list of matchers\nsyntax for filter := {[]}\n :=