Tigera · OpenAPI Overlay 1.0.0
API Evangelist enhancements for the Calico API (projectcalico.org/v3)
5 actions
5 updates
documentation
extends
openapi/tigera-calico-api-openapi-original.json
Generated by API Evangelist
Written by API Evangelist tooling for Tigera's API. It is a proposal applied on top of the contract, not a document Tigera publishes.
What the actions change
titledescriptionversioncontactx-apievangelist-providerx-apievangelist-aidx-apievangelist-artifactshost
Targets 2
$.info
$
OpenAPI Overlay
# authorship: generated by API Evangelist tooling. Stamped 2026-08-18
# on the file's own generator header (roadmap#64). An unmarked file is
# NOT assumed to be ours -- absence of evidence was never stamped.
x-method: generated
overlay: 1.0.0
info:
title: API Evangelist enhancements for the Calico API (projectcalico.org/v3)
version: 1.0.0
extends: openapi/tigera-calico-api-openapi-original.json
x-generated: '2026-08-05'
x-method: generated
x-source: >-
Enhancements derived from this repo's artifacts. The harvested Swagger 2.0 document at
https://docs.tigera.io/json/calico-api-swagger.json is never mutated; everything API Evangelist
adds lives here as Overlay 1.0.0 actions.
actions:
- target: $.info
update:
title: Calico API (projectcalico.org/v3)
description: >-
The Calico aggregated Kubernetes API server, serving 27 custom resources for network
policy, tiered policy, network sets, BGP, IPAM, host endpoints, observability, threat
feeds and cluster management. Published by Tigera as a Swagger 2.0 document and rendered
at https://docs.tigera.io/calico-cloud/reference/rest-api-reference. The upstream document
carries the generic generated title "Generic API Server" and version "unversioned"; this
overlay names it.
version: projectcalico.org/v3
contact:
name: Tigera
url: https://www.tigera.io/
x-apievangelist-provider: tigera
x-apievangelist-aid: tigera:calico-api
x-apievangelist-artifacts:
authentication: authentication/tigera-authentication.yml
conventions: conventions/tigera-conventions.yml
errors: errors/tigera-problem-types.yml
data_model: data-model/tigera-data-model.yml
conformance: conformance/tigera-conformance.yml
lifecycle: lifecycle/tigera-lifecycle.yml
skills: skills/_index.yml
- target: $
update:
host: kubernetes.default.svc
basePath: /
schemes:
- https
x-apievangelist-host-note: >-
The upstream document declares no host, basePath or schemes because it is generated by the
aggregated API server itself and served relative to whatever cluster it runs in.
kubernetes.default.svc is the canonical in-cluster address; callers outside the cluster
substitute their own kube-apiserver endpoint.
- target: $
update:
securityDefinitions:
x-apievangelist-KubernetesBearerToken:
type: apiKey
name: Authorization
in: header
description: >-
ADDED BY API EVANGELIST — not asserted by Tigera. The upstream document declares no
securityDefinitions at all. In practice the fronting kube-apiserver authenticates the
caller with a bearer token (ServiceAccount or OIDC) sent as
"Authorization: Bearer <token>", or with a TLS client certificate. Recorded here so
spec-driven tooling has a signal; see authentication/tigera-authentication.yml for the
full profile, including the client-certificate and etcdv3 paths this apiKey shape
cannot express.
- target: $
update:
x-apievangelist-contract-gaps:
security_definitions: 0
four_xx_responses_declared: 0
five_xx_responses_declared: 0
note: >-
Across 261 operations the upstream document declares only 200/201/202. The
meta/v1.Status error schema IS present in definitions but is never referenced from a
failure response, so generated clients and agents see no failure modes. Adding
400/401/403/404/409/422/429/500 responses that $ref the existing
io.k8s.apimachinery.pkg.apis.meta.v1.Status definition would close this with no new
schema work. Derived failure contract: errors/tigera-problem-types.yml.
- target: $
update:
x-apievangelist-agent-notes:
idempotency: >-
Not an Idempotency-Key header. Idempotency comes from server-side apply (PATCH with
application/apply-patch+yaml plus a stable fieldManager), full replace (PUT), and
resourceVersion preconditions that turn a lost update into a 409 instead of silent data
loss.
dry_run: >-
Every one of the 139 write operations accepts dryRun=All. An agent should validate with
dryRun before any write.
pagination: limit + continue cursor; follow metadata.continue until empty.
high_blast_radius_operations: >-
The 31 deleteProjectcalicoOrgV3Collection* operations delete every object matching a
selector. These should require human confirmation in any agentic deployment.