Release inactive VPC VNI

View as Markdown
Release the allocation retained after a routing-profile change, leaving the active VNI and routing profile unchanged. Requires the same Provider ownership, registered Site, and `PROVIDER_ADMIN` authorization as [routing-state inspection](#tag/VPC/operation/get-vpc-routing-profile). Before release, independently verify that all attached and directly peered DPUs and fabric routes no longer use the inactive VNI. Keep the attachment, peering, deletion, and profile-definition hold described in [profile changes](#tag/VPC/operation/update-vpc-routing-profile) through release. Retain the allocation for unreachable consumers unless they have been isolated. REST and Core validate ownership, not dataplane convergence. Supply the exact `ifVersionMatch` and `expectedInactiveVni` from the authoritative state used for that decision. REST does not substitute a fresh version. The release advances the Core VPC version and makes the inactive VNI available for allocation to another VPC. It is never part of an automatic profile change or cleanup loop. A timeout, lost response, or invalid acknowledgement may follow a committed release. Inspect authoritative routing state before deciding what to do next; do not automatically retry or replace the original version. A stale-version error does not prove that a previous release failed. The ordinary VPC GET may lag the authoritative response.

Authentication

AuthorizationBearer
``` export JWT_BEARER_TOKEN="<jwt-bearer-token>" # Example org name: "acme-inc export ORG_NAME=<org-name> # Use the JWT bearer token in your API request auth header: curl -v -X GET -H "Content-Type: application/json" -H "Authorization: Bearer $JWT_BEARER_TOKEN" https://nico-rest-api.nico.svc.cluster.local/v2/org/$ORG_NAME/nico/user/current ```

Path parameters

orgstringRequired
Name of the Infrastructure Provider Org
vpcIdstringRequiredformat: "uuid"
REST ID of the VPC

Request

This endpoint expects an object.
ifVersionMatchstringRequired>=1 character

Exact Core VPC version from routing-state inspection used for the release decision, in V<counter>-T<microseconds> format. Missing or malformed versions are rejected. A stale version returns 412; after an ambiguous release, that error does not prove whether the previous release committed.

expectedInactiveVniintegerRequired1-16777215

Exact retained VNI observed with ifVersionMatch. It must match the VPC’s inactive allocation and differ from its active VNI.

Response

Authoritative acknowledgement of the released allocation and advanced VPC version
vpcIdstringformat: "uuid"
REST ID of the VPC selected in the release request.
versionstring
Advanced Core VPC version after release committed.
routingProfilestring or null

Unchanged persisted profile name, or null when none is stored. Known Core names use the REST aliases external, internal, and privileged-internal; custom names are unchanged.

activeVniuint0-4294967295
Unchanged active VNI.
releasedInactiveVniuint1-16777215
Exact inactive VNI released by this request and now available for allocation to another VPC.

Errors

400
Bad Request Error
403
Forbidden Error
404
Not Found Error
412
Precondition Failed Error
500
Internal Server Error
501
Not Implemented Error
503
Service Unavailable Error
504
Gateway Timeout Error