All pipeline behavior is controlled by two YAML files in config/.
Field Description timeoutHTTP request timeout in seconds. retriesNumber of retry attempts on failure.
Caution
Live validation requires all three environment variables below. They have no
source-controlled defaults, and authentication, connection, or namespace
probe failure stops validation without generating a successful dry-run report.
export F5XC_API_URL = " https://example-tenant.console.ves.volterra.io "
export F5XC_NAMESPACE = " example-namespace "
export F5XC_API_TOKEN = " your-api-token "
url : " https://docs.cloud.f5.com/docs-v2/downloads/f5-distributed-cloud-open-api.zip "
output_dir : " specs/original "
etag_cache : " .etag_cache "
Field Description urlURL of the official F5 XC OpenAPI spec bundle (ZIP). output_dirWhere extracted specs are stored. etag_cacheFile that stores the HTTP ETag for conditional downloads.
input_dir : " specs/transformed "
Live tests resolve their semantic domains from the corrected transform output.
Raw files in specs/original/ remain the immutable upstream landing bytes and
are never presented as the corrected intermediate API contract.
Ten categories corresponding to the OpenAPI schema constraint types. Each can be independently enabled/disabled.
keywords : [ " minLength " , " maxLength " ]
description : " Validate string length boundaries "
Category Keywords string_lengthminLength, maxLengthpatternpatternnumeric_boundsminimum, maximum, exclusiveMinimum, exclusiveMaximumrequired_fieldsrequiredenum_valuesenumarray_boundsminItems, maxItems, uniqueItemsobject_structureadditionalProperties, properties, propertyNamescompositiononeOf, anyOf, allOfdependenciesdependentRequired, dependentSchemasdata_typestype, format
examples_per_operation : 1
Field Description examples_per_operationExact number of generated test cases per configured operation.
Generation is derandomized and uses only Hypothesis’s generation phase, so an
unchanged spec and configuration produce the same example sequence. Requests
are sent to F5XC_API_URL with the APIToken authorization scheme.
missing_constraint : " add "
extra_constraint : " remove "
Field Description priorityOrder of preference when multiple data sources disagree. fix_strategiesMaps each discrepancy type to its fix action. See Fixes Applied .
ruleset : " spectral-pipeline.yaml "
oas3-unused-component : true
operation-operationId-unique : true
oas3-valid-schema-example : true
no-script-tags-in-markdown : true
name : " F5 Distributed Cloud "
url : " https://docs.cloud.f5.com "
- url : " https://{tenant}.console.ves.volterra.io "
description : " F5 Distributed Cloud API "
default : " example-tenant "
description : " Your F5 XC tenant name "
description : " F5 XC API Token (format: APIToken <token>) "
Field Description enabledToggle Spectral linting entirely. rulesetWhich Spectral config file to use (pipeline uses spectral-pipeline.yaml). auto_fixMap of rule name to boolean. true means the reconciler will fix violations. gate.max_errorsMaximum allowed errors in the post-reconcile gate. null disables the check. gate.max_warningsMaximum allowed warnings. null disables the check. contactContact info injected into info.contact by the info-contact fixer. serversServers array injected by the oas3-api-servers fixer. security_schemeSecurity scheme definition injected into every spec.
max_examples_per_issue : 5
include_validation_report : true
Field Description output_dirDirectory for release artifacts. include_changelogInclude CHANGELOG.md in the release package. include_validation_reportInclude the validation report in the release package. version_fromVersion source. git derives version from spec metadata date + patch number.
Defines the baseline endpoints used for live API validation. Each entry maps a logical resource name to its spec file, API group, and CRUD paths.
domain_file : docs-cloud-f5-com.0124.public.ves.io.schema.healthcheck.ves-swagger.json
create : POST /api/config/namespaces/{namespace}/healthchecks
read : GET /api/config/namespaces/{namespace}/healthchecks/{name}
list : GET /api/config/namespaces/{namespace}/healthchecks
update : PUT /api/config/namespaces/{namespace}/healthchecks/{name}
delete : DELETE /api/config/namespaces/{namespace}/healthchecks/{name}
description : " Health check configurations for origin monitoring "
Field Description resourceAPI resource name (used in URL paths). domain_fileFilename of the OpenAPI spec in specs/original/. api_groupAPI group prefix (config, web, etc.). crud_operationsHTTP method and path for each CRUD operation. test_priorityhigh, medium, or low — controls test execution order.descriptionHuman-readable description of the resource.
10 endpoints across three domains:
Endpoint Domain Priority healthcheckVirtual high origin_poolVirtual high app_firewallVirtual high service_policyVirtual medium api_definitionAPI Security high api_discoveryAPI Security medium api_groupsAPI Security medium code_base_integrationAPI Security low data_typeData Privacy medium sensitive_data_policyData Privacy medium
To add a new endpoint for validation:
Find the spec filename in specs/original/ (format: docs-cloud-f5-com.NNNN.*.ves-swagger.json)
Add an entry under endpoints: following the structure above
Add the domain file mapping under domain_files: with a priority number
Add the endpoint name to test_order: in the desired position