- Accueil
- API Enriched
- Extensions
- Catalogue des extensions d'enrichissement
Catalogue des extensions d'enrichissement
Source de vérité pour chaque extension x-* apparaissant dans
docs/specifications/api/*.json. La parité avec
scripts/utils/extension_constants.py est vérifiée par
tests/test_extension_catalog.py.
Trois catégories d’extensions sont documentées ici :
- Injectées ici — extensions ajoutées par nos enrichisseurs (
x-f5xc-*etx-ves-cli-*/x-ves-field-*/x-ves-operation-*/ variantes de découverte). Ce sont celles que les outils en aval doivent consommer. - Transmises depuis l’amont — extensions émises par F5 dans les spécifications sources
et préservées sans modification (
x-ves-proto-*,x-displayname, etc.). Documentées par transparence mais non contrôlées par ce dépôt. - À injecter ultérieurement — pas encore émises ; documentées ici dès qu’un enrichisseur commence à les produire (non applicable lors de la population initiale).
Schéma d’entrée
Section intitulée « Schéma d’entrée »Chaque entrée ci-dessous possède exactement cette forme. Le test de parité dans
tests/test_extension_catalog.py tolère que le corps de section soit sommaire,
à condition que l’en-tête ### x-name existe et que l’indicateur
Pass-through from upstream: soit présent avec la valeur yes ou no.
### x-<name>- **Applied at:** <schema | parameter | operation | path-item | info | response>- **Purpose:** <one sentence>- **Consumers:** <CLI | VSCode | Terraform | Web UI | multiple | N/A>- **Value type:** <string | number | boolean | object | array>- **Value schema:** <JSON Schema snippet, or N/A>- **Injected by:** <scripts/utils/<enricher>.py, or "upstream">- **Driven by config:** <config/<file>.yaml, or "hardcoded", or "upstream">- **Example:** <short snippet>- **Pass-through from upstream:** <yes/no>Injectées — niveau spec (section info)
Section intitulée « Injectées — niveau spec (section info) »x-f5xc-cli-domain
Section intitulée « x-f5xc-cli-domain »- Applied at: info
- Purpose: Identifie le slug de domaine CLI (ex.
http_loadbalancer) pour une spec enrichie. - Consumers: CLI
- Value type: string
- Value schema:
{"type": "string"} - Injected by: scripts/merge_specs.py
- Driven by config: hardcoded
- Example:
"x-f5xc-cli-domain": "http_loadbalancer" - Pass-through from upstream: no
x-f5xc-cli-metadata
Section intitulée « x-f5xc-cli-metadata »- Applied at: info
- Purpose: Bloc de métadonnées globales CLI (nom de l’outil, indications de version, groupement de domaine).
- Consumers: CLI
- Value type: object
- Value schema:
{"type": "object"} - Injected by: scripts/merge_specs.py
- Driven by config: config/cli_metadata.yaml
- Example:
"x-f5xc-cli-metadata": {"tool": "xcsh", "domain": "http_loadbalancer"} - Pass-through from upstream: no
x-f5xc-upstream-timestamp
Section intitulée « x-f5xc-upstream-timestamp »- Applied at: info
- Purpose: Horodatage de la spec source amont à partir de laquelle le fichier enrichi a été construit.
- Consumers: multiple
- Value type: string
- Value schema:
{"type": "string", "format": "date-time"} - Injected by: scripts/merge_specs.py
- Driven by config: hardcoded
- Example:
"x-f5xc-upstream-timestamp": "2026-04-21T12:00:00Z" - Pass-through from upstream: no
x-f5xc-upstream-etag
Section intitulée « x-f5xc-upstream-etag »- Applied at: info
- Purpose: ETag de la ressource de publication de la spec source amont.
- Consumers: multiple
- Value type: string
- Value schema:
{"type": "string"} - Injected by: scripts/merge_specs.py
- Driven by config: hardcoded
- Example:
"x-f5xc-upstream-etag": "\"abc123\"" - Pass-through from upstream: no
x-f5xc-enriched-version
Section intitulée « x-f5xc-enriched-version »- Applied at: info
- Purpose: Version sémantique apposée sur la spec enrichie par le pipeline.
- Consumers: multiple
- Value type: string
- Value schema:
{"type": "string"} - Injected by: scripts/merge_specs.py
- Driven by config: hardcoded
- Example:
"x-f5xc-enriched-version": "3.2.1" - Pass-through from upstream: no
x-f5xc-glossary
Section intitulée « x-f5xc-glossary »- Applied at: info
- Purpose: Bloc de glossaire de marque/terminologie appliqué à chaque spec de domaine.
- Consumers: multiple
- Value type: object
- Value schema:
{"type": "object"} - Injected by: scripts/utils/branding.py
- Driven by config: config/branding.yaml
- Example:
"x-f5xc-glossary": {"XC": "F5 Distributed Cloud"} - Pass-through from upstream: no
x-f5xc-discovered-at
Section intitulée « x-f5xc-discovered-at »- Applied at: info
- Purpose: Horodatage de l’exécution de la passe de découverte de l’API en direct.
- Consumers: multiple
- Value type: string
- Value schema:
{"type": "string", "format": "date-time"} - Injected by: scripts/utils/discovery_enricher.py
- Driven by config: config/discovery.yaml
- Example:
"x-f5xc-discovered-at": "2026-04-21T09:15:00Z" - Pass-through from upstream: no
x-f5xc-api-url
Section intitulée « x-f5xc-api-url »- Applied at: info
- Purpose: URL de base de l’API en direct qui a été sondée lors de la découverte.
- Consumers: multiple
- Value type: string
- Value schema:
{"type": "string", "format": "uri"} - Injected by: scripts/utils/discovery_enricher.py
- Driven by config: config/discovery.yaml
- Example:
"x-f5xc-api-url": "https://f5-amer-ent.console.ves.volterra.io" - Pass-through from upstream: no
x-f5xc-api-reference-url
Section intitulée « x-f5xc-api-reference-url »- Applied at: info
- Purpose: URL vers la page de documentation de référence API hébergée pour ce domaine.
- Consumers: multiple
- Value type: string
- Value schema:
{"type": "string", "format": "uri"} - Injected by: scripts/utils/external_docs_enricher.py
- Driven by config: none (derived from domain name)
- Example:
"x-f5xc-api-reference-url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/sites/" - Pass-through from upstream: no
x-f5xc-response-time-ms
Section intitulée « x-f5xc-response-time-ms »- Applied at: info
- Purpose: Temps de réponse observé (en ms) pour l’API sondée lors de la découverte.
- Consumers: multiple
- Value type: number
- Value schema:
{"type": "number"} - Injected by: scripts/utils/discovery_enricher.py
- Driven by config: config/discovery.yaml
- Example:
"x-f5xc-response-time-ms": 42 - Pass-through from upstream: no
x-f5xc-best-practices
Section intitulée « x-f5xc-best-practices »- Applied at: info
- Purpose: Guide de bonnes pratiques sélectionné pour un domaine.
- Consumers: multiple
- Value type: array
- Value schema:
{"type": "array", "items": {"type": "object"}} - Injected by: scripts/utils/best_practices_enricher.py
- Driven by config: config/best_practices.yaml
- Example:
"x-f5xc-best-practices": [{"id": "bp-1", "text": "Prefer HTTPS"}] - Pass-through from upstream: no
x-f5xc-guided-workflows
Section intitulée « x-f5xc-guided-workflows »- Applied at: info
- Purpose: Workflows guidés nommés, étape par étape, pour accomplir des tâches courantes dans un domaine.
- Consumers: multiple
- Value type: array
- Value schema:
{"type": "array", "items": {"type": "object"}} - Injected by: scripts/utils/guided_workflow_enricher.py
- Driven by config: config/guided_workflows.yaml
- Example:
"x-f5xc-guided-workflows": [{"name": "create-lb", "steps": [...]}] - Pass-through from upstream: no
x-f5xc-acronyms
Section intitulée « x-f5xc-acronyms »- Applied at: info
- Purpose: Table d’expansion des acronymes par domaine.
- Consumers: multiple
- Value type: object
- Value schema:
{"type": "object", "additionalProperties": {"type": "string"}} - Injected by: scripts/utils/acronym_enricher.py
- Driven by config: config/acronyms.yaml
- Example:
"x-f5xc-acronyms": {"LB": "Load Balancer"} - Pass-through from upstream: no
x-f5xc-console-navigation
Section intitulée « x-f5xc-console-navigation »- Applied at: spec info
- Purpose: Arborescence de navigation globale de la console — hiérarchie des espaces de travail et des menus.
- Consumers: console-catalog, xcsh, browser-automation
- Value type: object
- Value schema:
{"type": "object", "properties": {"workspaces": "object"}} - Injected by: scripts/utils/console_ui_enricher.py
- Driven by config: config/console_ui.yaml
- Example:
"x-f5xc-console-navigation": {"workspaces": {"web-app-and-api-protection": {"label": "Web App & API Protection", "route_prefix": "/web/workspaces/web-app-and-api-protection"}}} - Pass-through from upstream: no
Injectées — niveau schéma (schémas de composants)
Section intitulée « Injectées — niveau schéma (schémas de composants) »x-f5xc-minimum-configuration
Section intitulée « x-f5xc-minimum-configuration »- Applied at: schema
- Purpose: Ensemble minimal de champs requis pour réussir un POST/PUT de cette ressource.
- Consumers: multiple
- Value type: object
- Value schema:
{"type": "object"} - Injected by: scripts/utils/minimum_configuration_enricher.py
- Driven by config: config/minimum_configs.yaml
- Example:
"x-f5xc-minimum-configuration": {"required_fields": ["name"]} - Pass-through from upstream: no
x-f5xc-namespace-profile
Section intitulée « x-f5xc-namespace-profile »- Applied at: info
- Purpose: Fournit les métadonnées de contrainte, de recommandation et de classification de l’espace de noms pour une ressource.
- Consumers: multiple
- Value type: object
- Value schema:
{"type": "object", "properties": {"constraint": {"type": "object"}, "recommendation": {"type": "object"}, "classification": {"type": "object"}}} - Injected by: scripts/utils/namespace_profile_enricher.py
- Driven by config: config/namespace_profile.yaml
- Example:
"x-f5xc-namespace-profile": {"constraint": {"allowed": ["system", "shared", "user"]}, "recommendation": {"default": "shared"}, "classification": {"multi_tenant_pattern": "shared-ref"}} - Pass-through from upstream: no
x-f5xc-displayorder
Section intitulée « x-f5xc-displayorder »- Applied at: schema
- Purpose: Ordre suggéré des propriétés pour la présentation dans l’interface UI/CLI.
- Consumers: multiple
- Value type: array
- Value schema:
{"type": "array", "items": {"type": "string"}} - Injected by: scripts/utils/field_metadata_enricher.py
- Driven by config: config/field_metadata.yaml
- Example:
"x-f5xc-displayorder": ["name", "description", "spec"] - Pass-through from upstream: no
x-f5xc-terraform-resource
Section intitulée « x-f5xc-terraform-resource »- Applied at: schema
- Purpose: Nom du type de ressource Terraform associé à ce schéma.
- Consumers: Terraform
- Value type: string
- Value schema:
{"type": "string"} - Injected by: scripts/utils/field_metadata_enricher.py
- Driven by config: config/field_metadata.yaml
- Example:
"x-f5xc-terraform-resource": "volterra_http_loadbalancer" - Pass-through from upstream: no
x-f5xc-display-name
Section intitulée « x-f5xc-display-name »- Applied at: schema
- Purpose: Nom d’affichage lisible par l’humain pour un schéma de ressource (remplace la génération automatique).
- Consumers: multiple
- Value type: string
- Value schema:
{"type": "string"} - Injected by: scripts/utils/field_metadata_enricher.py
- Driven by config: config/field_metadata.yaml
- Example:
"x-f5xc-display-name": "HTTP Load Balancer" - Pass-through from upstream: no
x-f5xc-console
Section intitulée « x-f5xc-console »- Applied at: schema
- Purpose: Navigation dans l’interface console, routage et structure de formulaire pour cette ressource.
- Consumers: console-catalog, xcsh, vscode-xcsh, browser-automation
- Value type: object
- Value schema:
{"type": "object", "properties": {"workspace": "string", "menu_path": "array", "route_pattern": "string", "breadcrumbs": "array", "add_action": "object", "form_sections": "array", "metadata": "object"}} - Injected by: scripts/utils/console_ui_enricher.py
- Driven by config: config/console_ui.yaml
- Example:
"x-f5xc-console": {"workspace": "web-app-and-api-protection", "menu_path": ["Manage", "Load Balancers", "HTTP Load Balancers"]} - Pass-through from upstream: no
Injectées — niveau propriété
Section intitulée « Injectées — niveau propriété »x-f5xc-description
Section intitulée « x-f5xc-description »- Applied at: schema property
- Purpose: Description de propriété enrichie qui complète la
descriptionamont. - Consumers: multiple
- Value type: string
- Value schema:
{"type": "string"} - Injected by: scripts/utils/field_metadata_enricher.py
- Driven by config: config/field_descriptions.yaml
- Example:
"x-f5xc-description": "Fully-qualified domain name used for TLS SNI." - Pass-through from upstream: no
x-f5xc-validation
Section intitulée « x-f5xc-validation »- Applied at: schema property
- Purpose: Règles de validation déclaratives dérivées des
ves.io.schema.rulesprotobuf amont. - Consumers: multiple
- Value type: object
- Value schema:
{"type": "object"} - Injected by: scripts/utils/validation_enricher.py
- Driven by config: config/validation_rules.yaml
- Example:
"x-f5xc-validation": {"min_len": 1, "max_len": 64} - Pass-through from upstream: no
x-f5xc-examples
Section intitulée « x-f5xc-examples »- Applied at: schema property
- Purpose: Plusieurs exemples de valeurs illustratives pour une propriété.
- Consumers: multiple
- Value type: array
- Value schema:
{"type": "array"} - Injected by: scripts/utils/resource_examples_enricher.py
- Driven by config: config/resource_examples.yaml
- Example:
"x-f5xc-examples": ["example.com", "api.example.com"] - Pass-through from upstream: no
x-f5xc-example
Section intitulée « x-f5xc-example »- Applied at: schema property
- Purpose: Valeur d’exemple canonique unique.
- Consumers: multiple
- Value type: string
- Value schema:
{} - Injected by: scripts/utils/field_description_enricher.py
- Driven by config: config/field_descriptions.yaml
- Example:
"x-f5xc-example": "example.com" - Pass-through from upstream: no
x-f5xc-completion
Section intitulée « x-f5xc-completion »- Applied at: schema property
- Purpose: Indications de complétion shell (énumération statique ou commande dynamique).
- Consumers: CLI
- Value type: object
- Value schema:
{"type": "object"} - Injected by: scripts/utils/field_metadata_enricher.py
- Driven by config: config/field_metadata.yaml
- Example:
"x-f5xc-completion": {"source": "command", "cmd": "xcsh namespace list"} - Pass-through from upstream: no
x-f5xc-defaults
Section intitulée « x-f5xc-defaults »- Applied at: schema property
- Purpose: Valeur(s) par défaut à afficher dans la documentation générée et les interfaces.
- Consumers: multiple
- Value type: object
- Value schema:
{"type": "object"} - Injected by: scripts/utils/field_metadata_enricher.py
- Driven by config: config/field_metadata.yaml
- Example:
"x-f5xc-defaults": {"value": "default"} - Pass-through from upstream: no
x-f5xc-required-for-operations
Section intitulée « x-f5xc-required-for-operations »- Applied at: schema property
- Purpose: Liste les opérations HTTP (POST/PUT/…) qui requièrent cette propriété.
- Consumers: multiple
- Value type: array
- Value schema:
{"type": "array", "items": {"type": "string"}} - Injected by: scripts/utils/field_metadata_enricher.py
- Driven by config: config/field_metadata.yaml
- Example:
"x-f5xc-required-for-operations": ["POST", "PUT"] - Pass-through from upstream: no
x-f5xc-required-for
Section intitulée « x-f5xc-required-for »- Applied at: schema property
- Purpose: Liste les combinaisons de fonctionnalités nommées qui requièrent cette propriété.
- Consumers: multiple
- Value type: array
- Value schema:
{"type": "array", "items": {"type": "string"}} - Injected by: scripts/utils/minimum_configuration_enricher.py
- Driven by config: config/minimum_configs.yaml
- Example:
"x-f5xc-required-for": ["tls-origin", "mtls"] - Pass-through from upstream: no
x-f5xc-conditions
Section intitulée « x-f5xc-conditions »- Applied at: schema property
- Purpose: Exigences conditionnelles (ex. requis lorsqu’un champ frère est égal à X).
- Consumers: multiple
- Value type: array
- Value schema:
{"type": "array", "items": {"type": "object"}} - Injected by: scripts/utils/field_metadata_enricher.py
- Driven by config: config/field_metadata.yaml
- Example:
"x-f5xc-conditions": [{"when": "tls.enabled == true", "require": "cert"}] - Pass-through from upstream: no
x-f5xc-deprecated
Section intitulée « x-f5xc-deprecated »- Applied at: schema property
- Purpose: Avis de dépréciation avec des conseils de remplacement.
- Consumers: multiple
- Value type: object
- Value schema:
{"type": "object"} - Injected by: scripts/utils/field_metadata_enricher.py
- Driven by config: config/field_metadata.yaml
- Example:
"x-f5xc-deprecated": {"since": "3.0.0", "use": "new_field"} - Pass-through from upstream: no
x-f5xc-server-default
Section intitulée « x-f5xc-server-default »- Applied at: schema property
- Purpose: Valeur par défaut que le serveur attribue lorsque le client omet la propriété.
- Consumers: multiple
- Value type: string
- Value schema:
{} - Injected by: scripts/utils/default_value_enricher.py
- Driven by config: config/discovered_defaults.yaml
- Example:
"x-f5xc-server-default": "ROUND_ROBIN" - Pass-through from upstream: no
x-f5xc-recommended-value
Section intitulée « x-f5xc-recommended-value »- Applied at: schema property
- Purpose: Valeur de production recommandée pour un champ dont la valeur par défaut du serveur est sous-optimale.
- Consumers: multiple
- Value type: string
- Value schema:
{} - Injected by: scripts/utils/default_value_enricher.py
- Driven by config: config/discovered_defaults.yaml
- Example:
"x-f5xc-recommended-value": "LEAST_REQUEST" - Pass-through from upstream: no
x-f5xc-recommended-oneof-variant
Section intitulée « x-f5xc-recommended-oneof-variant »- Applied at: schema property
- Purpose: Pour les blocs
oneOf, indique quelle variante est recommandée. - Consumers: multiple
- Value type: string
- Value schema:
{"type": "string"} - Injected by: scripts/utils/default_value_enricher.py
- Driven by config: config/discovered_defaults.yaml
- Example:
"x-f5xc-recommended-oneof-variant": "tls_parameters" - Pass-through from upstream: no
x-f5xc-conflicts-with
Section intitulée « x-f5xc-conflicts-with »- Applied at: schema property
- Purpose: Liste les propriétés sœurs qui ne peuvent pas être définies en même temps que celle-ci.
- Consumers: multiple
- Value type: array
- Value schema:
{"type": "array", "items": {"type": "string"}} - Injected by: scripts/utils/conflicts_with_enricher.py
- Driven by config: hardcoded
- Example:
"x-f5xc-conflicts-with": ["plaintext", "auto_cert"] - Pass-through from upstream: no
x-f5xc-requires
Section intitulée « x-f5xc-requires »- Applied at: schema property
- Purpose: Documente les dépendances inter-champs où un champ en requiert un autre.
- Consumers: compile_catalog.py, xcsh CLI
- Value type: array
- Value schema:
{"type": "array", "items": {"type": "object", "properties": {"field": {"type": "string"}, "required": {"type": "boolean"}, "reason": {"type": "string"}}}} - Injected by: scripts/utils/dependency_enricher.py
- Driven by config: config/minimum_configs.yaml (dependencies section)
- Example:
"x-f5xc-requires": [{"field": "tls_config", "required": true, "reason": "use_tls requires tls_config sub-field"}] - Pass-through from upstream: no
x-f5xc-constraints
Section intitulée « x-f5xc-constraints »- Applied at: schema property
- Purpose: Contraintes numériques / de chaîne dérivées du sondage de l’API en direct ou de patrons statiques.
- Consumers: multiple
- Value type: object
- Value schema:
{"type": "object"} - Injected by: scripts/utils/constraint_enricher.py
- Driven by config: config/constraint_patterns.yaml
- Example:
"x-f5xc-constraints": {"min": 1, "max": 65535, "source": "live-api"} - Pass-through from upstream: no
x-f5xc-uniqueness
Section intitulée « x-f5xc-uniqueness »- Applied at: schema property
- Purpose: Déclare si un champ doit être unique dans sa portée.
- Consumers: multiple
- Value type: object
- Value schema:
{"type": "object"} - Injected by: scripts/utils/uniqueness_enricher.py
- Driven by config: hardcoded
- Example:
"x-f5xc-uniqueness": {"scope": "namespace"} - Pass-through from upstream: no
x-f5xc-console-field
Section intitulée « x-f5xc-console-field »- Applied at: schema property
- Purpose: Métadonnées du widget de formulaire console pour cette propriété API.
- Consumers: console-catalog, xcsh, browser-automation
- Value type: object
- Value schema:
{"type": "object", "properties": {"widget_type": "string", "label": "string", "default": "any", "selector": "string", "form_section": "string", "show_when": "object", "advanced": "boolean"}} - Injected by: scripts/utils/console_ui_enricher.py
- Driven by config: config/console_field_metadata.yaml
- Example:
"x-f5xc-console-field": {"widget_type": "listbox", "default": "HTTPS with Automatic Certificate", "form_section": "domains-and-lb-type"} - Pass-through from upstream: no
Injectées — niveau opération
Section intitulée « Injectées — niveau opération »x-f5xc-required-fields
Section intitulée « x-f5xc-required-fields »- Applied at: operation
- Purpose: Nomme les champs du corps de l’opération qui doivent être fournis pour réussir.
- Consumers: multiple
- Value type: array
- Value schema:
{"type": "array", "items": {"type": "string"}} - Injected by: scripts/utils/operation_metadata_enricher.py
- Driven by config: config/operation_metadata.yaml
- Example:
"x-f5xc-required-fields": ["metadata.name", "spec.domains"] - Pass-through from upstream: no
x-f5xc-danger-level
Section intitulée « x-f5xc-danger-level »- Applied at: operation
- Purpose: Classe le rayon d’action d’une opération (faible/moyen/élevé/critique).
- Consumers: multiple
- Value type: string
- Value schema:
{"type": "string", "enum": ["low", "medium", "high", "critical"]} - Injected by: scripts/utils/operation_metadata_enricher.py
- Driven by config: config/operation_metadata.yaml
- Example:
"x-f5xc-danger-level": "high" - Pass-through from upstream: no
x-f5xc-confirmation-required
Section intitulée « x-f5xc-confirmation-required »- Applied at: operation
- Purpose: Indique si le CLI/UI doit inviter l’utilisateur à confirmer avant l’exécution.
- Consumers: multiple
- Value type: boolean
- Value schema:
{"type": "boolean"} - Injected by: scripts/utils/operation_metadata_enricher.py
- Driven by config: config/operation_metadata.yaml
- Example:
"x-f5xc-confirmation-required": true - Pass-through from upstream: no
x-f5xc-side-effects
Section intitulée « x-f5xc-side-effects »- Applied at: operation
- Purpose: Liste les effets secondaires observables de l’opération (redémarrage, reconfiguration, etc.).
- Consumers: multiple
- Value type: array
- Value schema:
{"type": "array", "items": {"type": "string"}} - Injected by: scripts/utils/operation_metadata_enricher.py
- Driven by config: config/operation_metadata.yaml
- Example:
"x-f5xc-side-effects": ["invalidates-cache"] - Pass-through from upstream: no
x-f5xc-discovered-response-time
Section intitulée « x-f5xc-discovered-response-time »- Applied at: operation
- Purpose: Temps de réponse mesuré empiriquement pour cette opération lors de la découverte.
- Consumers: multiple
- Value type: object
- Value schema:
{"type": "object"} - Injected by: scripts/utils/discovery_enricher.py
- Driven by config: config/discovery_enrichment.yaml
- Example:
"x-f5xc-discovered-response-time": {"p50_ms": 40, "p95_ms": 120} - Pass-through from upstream: no
x-f5xc-discovered-rate-limits
Section intitulée « x-f5xc-discovered-rate-limits »- Applied at: operation
- Purpose: En-têtes / comportements de limite de débit observés depuis l’API en direct.
- Consumers: multiple
- Value type: object
- Value schema:
{"type": "object"} - Injected by: scripts/utils/discovery_enricher.py
- Driven by config: config/discovery_enrichment.yaml
- Example:
"x-f5xc-discovered-rate-limits": {"limit": 100, "window_s": 60} - Pass-through from upstream: no
x-f5xc-discovered-error-catalog
Section intitulée « x-f5xc-discovered-error-catalog »- Applied at: operation
- Purpose: Catalogue des réponses d’erreur observées lors de la découverte en direct, avec des exemples de charge utile.
- Consumers: multiple
- Value type: array
- Value schema:
{"type": "array", "items": {"type": "object"}} - Injected by: scripts/utils/discovery_enricher.py
- Driven by config: config/discovery_enrichment.yaml
- Example:
"x-f5xc-discovered-error-catalog": [{"status": 400, "reason": "bad_request"}] - Pass-through from upstream: no
Injectées — niveau index (métadonnées de domaine)
Section intitulée « Injectées — niveau index (métadonnées de domaine) »x-f5xc-category
Section intitulée « x-f5xc-category »- Applied at: info
- Purpose: Catégorie de regroupement CLI / UI / docs / Terraform de premier niveau pour un domaine.
- Consumers: multiple
- Value type: string
- Value schema:
{"type": "string"} - Injected by: scripts/merge_specs.py
- Driven by config: config/domain_patterns.yaml
- Example:
"x-f5xc-category": "networking" - Pass-through from upstream: no
x-f5xc-primary-resources
Section intitulée « x-f5xc-primary-resources »- Applied at: info
- Purpose: Liste des types de ressources primaires qui définissent le domaine.
- Consumers: multiple
- Value type: array
- Value schema:
{"type": "array", "items": {"type": "string"}} - Injected by: scripts/merge_specs.py
- Driven by config: config/domain_patterns.yaml
- Example:
"x-f5xc-primary-resources": ["http_loadbalancer"] - Pass-through from upstream: no
x-f5xc-critical-resources
Section intitulée « x-f5xc-critical-resources »- Applied at: info
- Purpose: Ressources nécessitant une attention particulière (critiques en production).
- Consumers: multiple
- Value type: array
- Value schema:
{"type": "array", "items": {"type": "string"}} - Injected by: scripts/merge_specs.py
- Driven by config: config/critical_resources.yaml
- Example:
"x-f5xc-critical-resources": ["tls_certificate"] - Pass-through from upstream: no
x-f5xc-description-short
Section intitulée « x-f5xc-description-short »- Applied at: info
- Purpose: Description courte du domaine (~60 caractères). S’applique également au niveau des propriétés pour les descriptions longues.
- Consumers: multiple
- Value type: string
- Value schema:
{"type": "string"} - Injected by: scripts/utils/property_description_short_enricher.py
- Driven by config: config/property_description_short.yaml
- Example:
"x-f5xc-description-short": "Layer-7 HTTPS load balancing." - Pass-through from upstream: no
x-f5xc-description-medium
Section intitulée « x-f5xc-description-medium »- Applied at: info
- Purpose: Description moyenne du domaine (~150 caractères). S’applique également au niveau des propriétés.
- Consumers: multiple
- Value type: string
- Value schema:
{"type": "string"} - Injected by: scripts/utils/property_description_short_enricher.py
- Driven by config: config/property_description_short.yaml
- Example:
"x-f5xc-description-medium": "HTTP/HTTPS load balancer with advanced routing, WAF, and TLS." - Pass-through from upstream: no
x-f5xc-description-long
Section intitulée « x-f5xc-description-long »- Applied at: info
- Purpose: Description longue du domaine (~500 caractères).
- Consumers: multiple
- Value type: string
- Value schema:
{"type": "string"} - Injected by: scripts/utils/description_enricher.py
- Driven by config: config/domain_descriptions.yaml
- Example:
"x-f5xc-description-long": "Full paragraph describing the domain..." - Pass-through from upstream: no
x-f5xc-complexity
Section intitulée « x-f5xc-complexity »- Applied at: info
- Purpose: Niveau de complexité relatif pour la création de configurations dans ce domaine.
- Consumers: multiple
- Value type: string
- Value schema:
{"type": "string", "enum": ["low", "medium", "high"]} - Injected by: scripts/merge_specs.py
- Driven by config: config/domain_patterns.yaml
- Example:
"x-f5xc-complexity": "medium" - Pass-through from upstream: no
x-f5xc-requires-tier
Section intitulée « x-f5xc-requires-tier »- Applied at: info
- Purpose: Niveau d’abonnement F5 XC minimum requis.
- Consumers: multiple
- Value type: string
- Value schema:
{"type": "string"} - Injected by: scripts/merge_specs.py
- Driven by config: config/domain_patterns.yaml
- Example:
"x-f5xc-requires-tier": "enterprise" - Pass-through from upstream: no
x-f5xc-is-preview
Section intitulée « x-f5xc-is-preview »- Applied at: info
- Purpose: Signale un domaine comme fonctionnalité en aperçu / bêta.
- Consumers: multiple
- Value type: boolean
- Value schema:
{"type": "boolean"} - Injected by: scripts/merge_specs.py
- Driven by config: config/domain_patterns.yaml
- Example:
"x-f5xc-is-preview": false - Pass-through from upstream: no
x-f5xc-use-cases
Section intitulée « x-f5xc-use-cases »- Applied at: info
- Purpose: Cas d’utilisation nommés que ce domaine prend en charge.
- Consumers: multiple
- Value type: array
- Value schema:
{"type": "array", "items": {"type": "string"}} - Injected by: scripts/merge_specs.py
- Driven by config: config/domain_patterns.yaml
- Example:
"x-f5xc-use-cases": ["tls-termination", "waf"] - Pass-through from upstream: no
x-f5xc-icon
Section intitulée « x-f5xc-icon »- Applied at: info
- Purpose: Identifiant d’icône à utiliser lors du rendu de ce domaine dans une interface.
- Consumers: Web UI
- Value type: string
- Value schema:
{"type": "string"} - Injected by: scripts/merge_specs.py
- Driven by config: config/domain_patterns.yaml
- Example:
"x-f5xc-icon": "f5xc:load-balancer" - Pass-through from upstream: no
x-f5xc-logo-svg
Section intitulée « x-f5xc-logo-svg »- Applied at: info
- Purpose: SVG intégré (ou chemin) pour un logo de marque représentant le domaine.
- Consumers: Web UI
- Value type: string
- Value schema:
{"type": "string"} - Injected by: scripts/merge_specs.py
- Driven by config: config/domain_patterns.yaml
- Example:
"x-f5xc-logo-svg": "<svg>...</svg>" - Pass-through from upstream: no
x-f5xc-related-domains
Section intitulée « x-f5xc-related-domains »- Applied at: info
- Purpose: Liens croisés vers d’autres domaines couramment utilisés avec celui-ci.
- Consumers: multiple
- Value type: array
- Value schema:
{"type": "array", "items": {"type": "string"}} - Injected by: scripts/merge_specs.py
- Driven by config: config/domain_patterns.yaml
- Example:
"x-f5xc-related-domains": ["origin_pool", "tls_certificate"] - Pass-through from upstream: no
x-f5xc-doc-section
Section intitulée « x-f5xc-doc-section »- Applied at: info
- Purpose: Section de documentation / slug de regroupement de navigation pour les docs rendus.
- Consumers: multiple
- Value type: string
- Value schema:
{"type": "string"} - Injected by: scripts/merge_specs.py
- Driven by config: config/domain_patterns.yaml
- Example:
"x-f5xc-doc-section": "load-balancing" - Pass-through from upstream: no
Transmises depuis l’amont
Section intitulée « Transmises depuis l’amont »x-ves-proto-package
Section intitulée « x-ves-proto-package »- Applied at: upstream
- Purpose: Préservé sans modification depuis la spec amont F5.
- Consumers: N/A
- Value type: varies
- Value schema: N/A
- Injected by: upstream
- Driven by config: upstream
- Example:
"x-ves-proto-package": "ves.io.schema.virtual_host" - Pass-through from upstream: yes
x-ves-proto-file
Section intitulée « x-ves-proto-file »- Applied at: upstream
- Purpose: Préservé sans modification depuis la spec amont F5.
- Consumers: N/A
- Value type: varies
- Value schema: N/A
- Injected by: upstream
- Driven by config: upstream
- Example:
"x-ves-proto-file": "ves.io/schema/virtual_host/types.proto" - Pass-through from upstream: yes
x-ves-proto-message
Section intitulée « x-ves-proto-message »- Applied at: upstream
- Purpose: Préservé sans modification depuis la spec amont F5.
- Consumers: N/A
- Value type: varies
- Value schema: N/A
- Injected by: upstream
- Driven by config: upstream
- Example:
"x-ves-proto-message": "ves.io.schema.virtual_host.CreateSpecType" - Pass-through from upstream: yes
x-ves-proto-service
Section intitulée « x-ves-proto-service »- Applied at: upstream
- Purpose: Préservé sans modification depuis la spec amont F5.
- Consumers: N/A
- Value type: varies
- Value schema: N/A
- Injected by: upstream
- Driven by config: upstream
- Example:
"x-ves-proto-service": "ves.io.schema.virtual_host.API" - Pass-through from upstream: yes
x-ves-proto-rpc
Section intitulée « x-ves-proto-rpc »- Applied at: upstream
- Purpose: Préservé sans modification depuis la spec amont F5.
- Consumers: N/A
- Value type: varies
- Value schema: N/A
- Injected by: upstream
- Driven by config: upstream
- Example:
"x-ves-proto-rpc": "ves.io.schema.api_sec.api_crawler.API.Create" - Pass-through from upstream: yes
x-displayname
Section intitulée « x-displayname »- Applied at: upstream
- Purpose: Préservé sans modification depuis la spec amont F5.
- Consumers: N/A
- Value type: varies
- Value schema: N/A
- Injected by: upstream
- Driven by config: upstream
- Example:
"x-displayname": "Namespace" - Pass-through from upstream: yes
x-ves-oneof
Section intitulée « x-ves-oneof »- Applied at: upstream
- Purpose: Préservé sans modification depuis la spec amont F5.
- Consumers: N/A
- Value type: varies
- Value schema: N/A
- Injected by: upstream
- Driven by config: upstream
- Example: Voir la documentation amont F5.
- Pass-through from upstream: yes
x-ves-default
Section intitulée « x-ves-default »- Applied at: upstream
- Purpose: Préservé sans modification depuis la spec amont F5.
- Consumers: N/A
- Value type: varies
- Value schema: N/A
- Injected by: upstream
- Driven by config: upstream
- Example: Voir la documentation amont F5.
- Pass-through from upstream: yes
x-ves-required
Section intitulée « x-ves-required »- Applied at: upstream
- Purpose: Préservé sans modification depuis la spec amont F5.
- Consumers: N/A
- Value type: varies
- Value schema: N/A
- Injected by: upstream
- Driven by config: upstream
- Example: Voir la documentation amont F5.
- Pass-through from upstream: yes