Preview — pending review
This reference is generated from the platform API contract and is still under review. Operations, fields, and descriptions can change before publication.
List VPN services in the active scope
Returns the paginated collection of VPN services in the active scope. A VPN service mirrors
neutron-VPNaaS vpnservices: it anchors tunnels on one router that has an external gateway, and one
service may carry many site connections. Each row carries the owning router, the router's external
gateway address (the tunnel's local endpoint, read from neutron's external_v4_ip - never invented), the
administrative state, neutron's own status, this record's provisioning state and usedByCount.
Validation: scopeId must resolve to an accessible scope; paging/sort parameters must be well-formed
(-> 422 VALIDATION_FAILED); caller needs the reader role.
Async & state: Synchronous read. status is neutron's value verbatim; it is null until the provider has
reported one, rather than being defaulted to a value neutron never returned.
Errors: 401; 403; 422; 500.
Idempotency/Concurrency: Safe, cacheable. Soft-deleted services are excluded.
bearerTokenAuthorizationBearer <token>An API token (pc_live_…) or a service-account key (sak_live_…), created in Identity & Access Management and sent as Authorization: Bearer <token>. Requests are rate limited per credential and per tenant: every response carries X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset, and a refused request gets 429 RATE_LIMITED with Retry-After.
scopeId*stringOpaque ownership+authorization scope resolving to tenant + subscription + project.
region?stringRestrict the result set to a single region.
^[a-z][a-z0-9-]{1,39}$q?stringFree-text search.
sort?stringField to sort by (entity-specific; defaults to the entity's natural order).
order?stringSort direction.
"asc""asc""desc"page?integer1-based page number.
1 <= value1pageSize?integerItems per page (max 200).
1 <= value <= 20050status?stringFilter by the provider-reported VPN status.
"ACTIVE""DOWN""PENDING_CREATE""PENDING_UPDATE""PENDING_DELETE""INACTIVE""ERROR"Paginated collection of VPN services in the active scope.
application/json- response
data*array<>meta*Pagination envelope metadata. List responses are always { data, meta } — never a naked array.
curl -X GET "https://example.com/scopes/string/network/vpn/services"{ "data": [ { "origin": "portal", "id": "string", "name": "string", "description": "string", "routerId": "string", "routerName": "string", "externalV4Ip": "string", "adminStateUp": true, "status": "ACTIVE", "statusReason": "string", "statusReasonCode": "string", "provisioningState": "PENDING_CREATE", "providerId": "string", "usedByCount": 0 } ], "meta": { "page": 1, "pageSize": 1, "total": 0, "hasNext": true }}