- Startseite
- API Enriched
- Erweiterungen
- Anreicherungserweiterungs-Katalog
Anreicherungserweiterungs-Katalog
Maßgebliche Referenz für jede x-*-Erweiterung, die in
docs/specifications/api/*.json vorkommt. Die Parität mit
scripts/utils/extension_constants.py wird durch
tests/test_extension_catalog.py erzwungen.
Drei Klassen von Erweiterungen sind hier dokumentiert:
- Hier eingefügt — Erweiterungen, die unsere Anreicherungsprozesse hinzufügen (
x-f5xc-*undx-ves-cli-*/x-ves-field-*/x-ves-operation-*/ Discovery- Varianten). Diese sind diejenigen, die nachgelagerte Werkzeuge konsumieren sollen. - Upstream-Durchleitung — Erweiterungen, die F5 in den Quellspezifikationen
ausgibt und die wir unverändert weitergeben (
x-ves-proto-*,x-displaynameusw.). Aus Transparenzgründen dokumentiert, aber nicht von diesem Repository gesteuert. - Zukünftig eingefügt — Noch nicht ausgegeben; hier dokumentiert in dem Moment, in dem ein Anreicherungsprozess beginnt, diese zu erzeugen (gilt nicht für die erste Befüllung).
Eintragsschema
Abschnitt betitelt „Eintragsschema“Jeder Eintrag unten hat genau diese Form. Der Paritätstest in
tests/test_extension_catalog.py toleriert, dass der Abschnittskörper kurz ist,
solange der ### x-name-Header vorhanden ist und das
Pass-through from upstream:-Kennzeichen mit dem Wert yes oder no vorhanden ist.
### 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>Eingefügt — Spezifikationsebene (Info-Abschnitt)
Abschnitt betitelt „Eingefügt — Spezifikationsebene (Info-Abschnitt)“x-f5xc-cli-domain
Abschnitt betitelt „x-f5xc-cli-domain“- Applied at: info
- Purpose: Identifiziert den CLI-Domain-Slug (z. B.
http_loadbalancer) für eine angereicherte Spezifikation. - 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
Abschnitt betitelt „x-f5xc-cli-metadata“- Applied at: info
- Purpose: CLI-weiter Metadatenblock (Werkzeugname, Versionshinweise, Domain-Gruppierung).
- 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
Abschnitt betitelt „x-f5xc-upstream-timestamp“- Applied at: info
- Purpose: Zeitstempel der vorgelagerten Quellspezifikation, aus der die angereicherte Datei erstellt wurde.
- 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
Abschnitt betitelt „x-f5xc-upstream-etag“- Applied at: info
- Purpose: ETag des Release-Assets der vorgelagerten Quellspezifikation.
- 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
Abschnitt betitelt „x-f5xc-enriched-version“- Applied at: info
- Purpose: Semantische Version, die von der Pipeline auf die angereicherte Spezifikation gestempelt wird.
- 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
Abschnitt betitelt „x-f5xc-glossary“- Applied at: info
- Purpose: Marken-/Terminologie-Glossarblock, der auf jede Domain-Spezifikation angewendet wird.
- 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
Abschnitt betitelt „x-f5xc-discovered-at“- Applied at: info
- Purpose: Zeitstempel, wann der Live-API-Discovery-Durchlauf ausgeführt wurde.
- 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
Abschnitt betitelt „x-f5xc-api-url“- Applied at: info
- Purpose: Basis-URL der Live-API, die während der Discovery geprüft wurde.
- 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
Abschnitt betitelt „x-f5xc-api-reference-url“- Applied at: info
- Purpose: URL zur gehosteten API-Referenzdokumentationsseite für diese Domain.
- 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
Abschnitt betitelt „x-f5xc-response-time-ms“- Applied at: info
- Purpose: Beobachtete Antwortzeit (ms) für die geprüfte API während der Discovery.
- 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
Abschnitt betitelt „x-f5xc-best-practices“- Applied at: info
- Purpose: Kuratierte Best-Practice-Anleitungen für eine Domain.
- 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
Abschnitt betitelt „x-f5xc-guided-workflows“- Applied at: info
- Purpose: Benannte schrittweise Workflows zur Erledigung häufiger Aufgaben in einer Domain.
- 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
Abschnitt betitelt „x-f5xc-acronyms“- Applied at: info
- Purpose: Domain-spezifische Akronym-Auflösungstabelle.
- 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
Abschnitt betitelt „x-f5xc-console-navigation“- Applied at: spec info
- Purpose: Globaler Konsolen-Navigationsbaum — Arbeitsbereich- und Menühierarchie.
- 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
Eingefügt — Schemaebene (Komponentenschemata)
Abschnitt betitelt „Eingefügt — Schemaebene (Komponentenschemata)“x-f5xc-minimum-configuration
Abschnitt betitelt „x-f5xc-minimum-configuration“- Applied at: schema
- Purpose: Minimaler lebensfähiger Feldsatz, der erforderlich ist, um diese Ressource erfolgreich per POST/PUT zu übertragen.
- 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
Abschnitt betitelt „x-f5xc-namespace-profile“- Applied at: info
- Purpose: Stellt Namespace-Einschränkungs-, Empfehlungs- und Klassifizierungsmetadaten für eine Ressource bereit.
- 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
Abschnitt betitelt „x-f5xc-displayorder“- Applied at: schema
- Purpose: Empfohlene Reihenfolge der Eigenschaften für die UI-/CLI-Darstellung.
- 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
Abschnitt betitelt „x-f5xc-terraform-resource“- Applied at: schema
- Purpose: Terraform-Ressourcentypname, der diesem Schema zugeordnet ist.
- 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
Abschnitt betitelt „x-f5xc-display-name“- Applied at: schema
- Purpose: Lesbarer Anzeigename für ein Ressourcenschema (überschreibt die automatische Generierung).
- 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
Abschnitt betitelt „x-f5xc-console“- Applied at: schema
- Purpose: Konsolen-UI-Navigation, Routing und Formularstruktur für diese 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
x-f5xc-action
Abschnitt betitelt „x-f5xc-action“- Applied at: schema
- Purpose: Kennzeichnet ein Schema, dessen Operation eine Ressource im Aktionsstil ist, z. B.
approve, sodass codegen eine Aktionsressource statt CRUD generiert. - Consumers: Terraform
- Value type: string
- Value schema:
{"type": "string"} - Injected by: scripts/utils/schema_override_enricher.py
- Driven by config: config/schema_overrides.yaml
- Example:
"x-f5xc-action": "approve" - Pass-through from upstream: no
Eingefügt — Eigenschaftsebene
Abschnitt betitelt „Eingefügt — Eigenschaftsebene“x-f5xc-description
Abschnitt betitelt „x-f5xc-description“- Applied at: schema property
- Purpose: Angereicherte Eigenschaftsbeschreibung, die die vorgelagerte
descriptionergänzt. - 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
Abschnitt betitelt „x-f5xc-validation“- Applied at: schema property
- Purpose: Deklarative Validierungsregeln, abgeleitet aus den vorgelagerten Protobuf-
ves.io.schema.rules. - 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
Abschnitt betitelt „x-f5xc-examples“- Applied at: schema property
- Purpose: Mehrere veranschaulichende Beispielwerte für eine Eigenschaft.
- 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
Abschnitt betitelt „x-f5xc-example“- Applied at: schema property
- Purpose: Ein einzelner kanonischer Beispielwert.
- 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
Abschnitt betitelt „x-f5xc-completion“- Applied at: schema property
- Purpose: Shell-Vervollständigungshinweise (statische Aufzählung oder dynamischer Befehl).
- 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
Abschnitt betitelt „x-f5xc-defaults“- Applied at: schema property
- Purpose: Standardwert(e), die in generierten Dokumenten und Benutzeroberflächen angezeigt werden.
- 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
Abschnitt betitelt „x-f5xc-required-for-operations“- Applied at: schema property
- Purpose: Listet HTTP-Operationen (POST/PUT/…) auf, die diese Eigenschaft erfordern.
- 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
Abschnitt betitelt „x-f5xc-required-for“- Applied at: schema property
- Purpose: Listet benannte Funktionskombinationen auf, die diese Eigenschaft erfordern.
- 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
Abschnitt betitelt „x-f5xc-conditions“- Applied at: schema property
- Purpose: Bedingte Anforderungen (z. B. erforderlich, wenn ein Geschwisterfeld gleich X ist).
- 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
Abschnitt betitelt „x-f5xc-deprecated“- Applied at: schema property
- Purpose: Veraltungshinweis mit Ersetzungsanleitung.
- 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
Abschnitt betitelt „x-f5xc-server-default“- Applied at: schema property
- Purpose: Standardwert, den der Server zuweist, wenn der Client die Eigenschaft weglässt.
- 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
Abschnitt betitelt „x-f5xc-recommended-value“- Applied at: schema property
- Purpose: Empfohlener Produktionswert für ein Feld, bei dem der Server-Standard suboptimal ist.
- 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
Abschnitt betitelt „x-f5xc-recommended-oneof-variant“- Applied at: schema property
- Purpose: Gibt für
oneOf-Blöcke an, welche Variante empfohlen wird. - 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
Abschnitt betitelt „x-f5xc-conflicts-with“- Applied at: schema property
- Purpose: Listet Geschwistereigenschaften auf, die nicht zusammen mit dieser gesetzt werden können.
- 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-references
Abschnitt betitelt „x-f5xc-references“- Applied at: schema property
- Purpose: Deklariert die referenzierte Ressourcenart eines ObjectRefType-Feldes (die Ressource, auf die es zeigt und die zuerst vorhanden sein muss), mit oneOf-Auswahlsteuerung, Pflichtangabe bei der Erstellung und Kardinalität — die ressourcenreferenz-Dimension des Abhängigkeitsmodells.
- Consumers: terraform, cli, mcp, IDE, ai-assistants
- Value type: array
- Value schema:
{"type": "array", "items": {"type": "object", "properties": {"resource_kind": {"type": ["string", "null"]}, "field_path": {"type": "string"}, "gated_by": {"type": ["object", "null"]}, "required": {"type": "boolean"}, "cardinality": {"type": "string"}}}} - Injected by: scripts/utils/references_enricher.py
- Driven by config: config/resource_references.yaml
- Example:
"x-f5xc-references": [{"resource_kind": "app_firewall", "field_path": "app_firewall", "gated_by": {"choice": "waf_choice"}, "required": false, "cardinality": "single"}] - Pass-through from upstream: no
x-f5xc-field-examples
Abschnitt betitelt „x-f5xc-field-examples“- Applied at: schema (CreateSpecType)
- Purpose: Feldspezifische Erstellungsbeispielpielwerte (flache Zuordnung von Feldpfad zu Wert), abgeleitet aus x-f5xc-minimum-configuration.example_yaml — die einzige Quelle der Wahrheit für deterministische Erstellungswerte für die nachgelagerte Formular-/Workflow-Generierung.
- Consumers: cli, workflow-generator, sweep, ai-assistants
- Value type: object
- Value schema:
{"type": "object", "additionalProperties": true} - Injected by: scripts/utils/example_field_enricher.py
- Driven by config: derived from x-f5xc-minimum-configuration.example_yaml
- Example:
"x-f5xc-field-examples": {"spec.port": 8080} - Pass-through from upstream: no
x-f5xc-requires
Abschnitt betitelt „x-f5xc-requires“- Applied at: schema property
- Purpose: Dokumentiert feldübergreifende Abhängigkeiten, bei denen ein Feld erfordert, dass ein anderes gesetzt ist.
- 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
Abschnitt betitelt „x-f5xc-constraints“- Applied at: schema property
- Purpose: Numerische/String-Einschränkungen, abgeleitet aus Live-API-Prüfungen oder statischen Mustern.
- 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
Abschnitt betitelt „x-f5xc-uniqueness“- Applied at: schema property
- Purpose: Gibt an, ob ein Feld innerhalb seines Geltungsbereichs eindeutig sein muss.
- 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
Abschnitt betitelt „x-f5xc-console-field“- Applied at: schema property
- Purpose: Konsolen-Formular-Widget-Metadaten für diese API-Eigenschaft.
- 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
Eingefügt — Operationsebene
Abschnitt betitelt „Eingefügt — Operationsebene“x-f5xc-required-fields
Abschnitt betitelt „x-f5xc-required-fields“- Applied at: operation
- Purpose: Benennt die Felder des Operationskörpers, die für den Erfolg bereitgestellt werden müssen.
- 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
Abschnitt betitelt „x-f5xc-danger-level“- Applied at: operation
- Purpose: Klassifiziert den Wirkungsbereich einer Operation (niedrig/mittel/hoch/kritisch).
- 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
Abschnitt betitelt „x-f5xc-confirmation-required“- Applied at: operation
- Purpose: Gibt an, ob CLI/UI den Benutzer vor der Ausführung zur Bestätigung auffordern soll.
- 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
Abschnitt betitelt „x-f5xc-side-effects“- Applied at: operation
- Purpose: Listet beobachtbare Nebeneffekte der Operation auf (Neustart, Neukonfiguration usw.).
- 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
Abschnitt betitelt „x-f5xc-discovered-response-time“- Applied at: operation
- Purpose: Empirisch gemessene Antwortzeit für diese Operation während der Discovery.
- 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
Abschnitt betitelt „x-f5xc-discovered-rate-limits“- Applied at: operation
- Purpose: Beobachtete Rate-Limit-Header/-Verhalten, die von der Live-API ermittelt wurden.
- 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
Abschnitt betitelt „x-f5xc-discovered-error-catalog“- Applied at: operation
- Purpose: Katalog der während der Live-Discovery beobachteten Fehlerantworten mit Beispiel-Payloads.
- 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
Eingefügt — Indexebene (Domain-Metadaten)
Abschnitt betitelt „Eingefügt — Indexebene (Domain-Metadaten)“x-f5xc-category
Abschnitt betitelt „x-f5xc-category“- Applied at: info
- Purpose: Übergeordnete CLI-/UI-/Dokumentations-/Terraform-Gruppierungskategorie für eine Domain.
- 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
Abschnitt betitelt „x-f5xc-primary-resources“- Applied at: info
- Purpose: Liste der primären Ressourcentypen, die die Domain definieren.
- 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
Abschnitt betitelt „x-f5xc-critical-resources“- Applied at: info
- Purpose: Ressourcen, die erhöhte Sorgfalt erfordern (produktionskritisch).
- 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
Abschnitt betitelt „x-f5xc-description-short“- Applied at: info
- Purpose: Kurze (~60 Zeichen) Domain-Beschreibung. Gilt auch auf Eigenschaftsebene für lange Beschreibungen.
- 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
Abschnitt betitelt „x-f5xc-description-medium“- Applied at: info
- Purpose: Mittlere (~150 Zeichen) Domain-Beschreibung. Gilt auch auf Eigenschaftsebene.
- 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
Abschnitt betitelt „x-f5xc-description-long“- Applied at: info
- Purpose: Lange (~500 Zeichen) Domain-Beschreibung.
- 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
Abschnitt betitelt „x-f5xc-complexity“- Applied at: info
- Purpose: Relative Komplexitätsstufe für das Erstellen von Konfigurationen in dieser Domain.
- 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
Abschnitt betitelt „x-f5xc-requires-tier“- Applied at: info
- Purpose: Minimale erforderliche F5 XC-Abonnementstufe.
- 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
Abschnitt betitelt „x-f5xc-is-preview“- Applied at: info
- Purpose: Kennzeichnet eine Domain als Vorschau-/Beta-Funktion.
- 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
Abschnitt betitelt „x-f5xc-use-cases“- Applied at: info
- Purpose: Benannte Anwendungsfälle, die diese Domain unterstützt.
- 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
Abschnitt betitelt „x-f5xc-icon“- Applied at: info
- Purpose: Symbolkennung, die beim Rendern dieser Domain in einer Benutzeroberfläche verwendet werden soll.
- 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
Abschnitt betitelt „x-f5xc-logo-svg“- Applied at: info
- Purpose: Inline-SVG (oder Pfad) für ein Markenlogo, das die Domain repräsentiert.
- 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
Abschnitt betitelt „x-f5xc-related-domains“- Applied at: info
- Purpose: Querverweise auf andere Domains, die häufig zusammen mit dieser verwendet werden.
- 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
Abschnitt betitelt „x-f5xc-doc-section“- Applied at: info
- Purpose: Dokumentationsabschnitt-/Navigationsgruppen-Slug für gerenderte Dokumentation.
- 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
Upstream-Durchleitung
Abschnitt betitelt „Upstream-Durchleitung“x-ves-proto-package
Abschnitt betitelt „x-ves-proto-package“- Applied at: upstream
- Purpose: Unverändert aus der vorgelagerten F5-Spezifikation übernommen.
- 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
Abschnitt betitelt „x-ves-proto-file“- Applied at: upstream
- Purpose: Unverändert aus der vorgelagerten F5-Spezifikation übernommen.
- 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
Abschnitt betitelt „x-ves-proto-message“- Applied at: upstream
- Purpose: Unverändert aus der vorgelagerten F5-Spezifikation übernommen.
- 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
Abschnitt betitelt „x-ves-proto-service“- Applied at: upstream
- Purpose: Unverändert aus der vorgelagerten F5-Spezifikation übernommen.
- 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
Abschnitt betitelt „x-ves-proto-rpc“- Applied at: upstream
- Purpose: Unverändert aus der vorgelagerten F5-Spezifikation übernommen.
- 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
Abschnitt betitelt „x-displayname“- Applied at: upstream
- Purpose: Unverändert aus der vorgelagerten F5-Spezifikation übernommen.
- 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
Abschnitt betitelt „x-ves-oneof“- Applied at: upstream
- Purpose: Unverändert aus der vorgelagerten F5-Spezifikation übernommen.
- Consumers: N/A
- Value type: varies
- Value schema: N/A
- Injected by: upstream
- Driven by config: upstream
- Example: Siehe F5-Upstream-Dokumentation.
- Pass-through from upstream: yes
x-ves-default
Abschnitt betitelt „x-ves-default“- Applied at: upstream
- Purpose: Unverändert aus der vorgelagerten F5-Spezifikation übernommen.
- Consumers: N/A
- Value type: varies
- Value schema: N/A
- Injected by: upstream
- Driven by config: upstream
- Example: Siehe F5-Upstream-Dokumentation.
- Pass-through from upstream: yes
x-ves-required
Abschnitt betitelt „x-ves-required“- Applied at: upstream
- Purpose: Unverändert aus der vorgelagerten F5-Spezifikation übernommen.
- Consumers: N/A
- Value type: varies
- Value schema: N/A
- Injected by: upstream
- Driven by config: upstream
- Example: Siehe F5-Upstream-Dokumentation.
- Pass-through from upstream: yes
x-f5xc-wire-name
Abschnitt betitelt „x-f5xc-wire-name“- Applied at: schema property
- Purpose: Ursprünglicher vorgelagerter Eigenschaftsschlüssel, der auf dem Übertragungsweg verwendet werden muss. Die Pufferzone benennt die falsch geschriebenen Eigenschaftsnamen von F5 um und hinterlegt hier den ursprünglichen Schlüssel, da der F5-Server nur die ursprüngliche Schreibweise akzeptiert.
- Consumers: Terraform
- Value type: string
- Value schema:
{"type": "string"} - Injected by: upstream (f5-sales-demo/api-specs)
- Driven by config: upstream
- Example:
"blocked_service": {"x-f5xc-wire-name": "blocked_sevice"} - Pass-through from upstream: yes