Networking

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.

Get one VPN endpoint group

GET
/scopes/{scopeId}/network/vpn/endpoint-groups/{vpnEndpointGroupId}

Returns one VPN endpoint group with its type, its single endpoint, this record's provisioning state and the site connections using it as a local or peer end (usedBy). Validation: vpnEndpointGroupId must reference an existing, non-deleted group in the scope (404). Async & state: Synchronous read; no state change. Errors: 401; 403; 404; 500. Idempotency/Concurrency: Safe; carries a weak ETag for read-then-If-Match.

Authorization

bearerToken
headerAuthorizationBearer <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.

Path Parameters

scopeId*string

Opaque ownership+authorization scope resolving to tenant + subscription + project.

vpnEndpointGroupId*string

Identifier of the VPN endpoint group within the scope.

Response Body

The VPN endpoint group.

application/json
  1. response

One VPN endpoint group plus the site connections that use it.

origin?string

Where the resource was made -- portal for a create on the console, api for an object made straight against the OpenStack API (CLI, Terraform, the Kubernetes cloud provider) that discovery adopted. Informational; nothing behaves differently. Absent from a backend that predates it, which means portal.

Value in"portal""api""system""imported"
id*string

Platform identifier of the endpoint group.

name*string

Group display name, unique within the scope.

Match^[^\p{C}\p{Z}\x{10000}-\x{10FFFF}](?:[^\p{C}\p{Zl}\p{Zp}\x{10000}-\x{10FFFF}]*[^\p{C}\p{Z}\x{10000}-\x{10FFFF}])?$
Length1 <= length <= 255
description*string

Free-text description; empty string when unset.

type*string

Which end of the tunnel this group describes.

Value in"subnet""cidr"
endpoints*array<string>

One or more endpoints - subnet ids for type subnet, CIDRs for type cidr. Immutable once created (neutron marks it allow_put false).

Items1 <= items
endpointLabel?|

Human-readable rendering of the endpoints - each subnet's name and CIDR for a subnet group, resolved from the networking read model, comma-separated when there is more than one. Null when no subnet can be resolved; the raw endpoints above are always present.

provisioningState*string

Lifecycle state of this platform record.

Value in"PENDING_CREATE""PENDING_UPDATE""PENDING_DELETE""READY""ERROR"
statusReason?|

The provider's own message from the last failed write; null when the last write succeeded.

statusReasonCode?|

Machine-readable companion to statusReason: a small, OPEN vocabulary of codes the console can branch on without parsing the human text, deliberately a plain string rather than a closed enum so a code the client does not recognize yet degrades to the generic failure message. Today the only value is cancelled: the resource is in its failure state because its create operation was CANCELLED; a provider object the create had already built may be left in place, and the resource's DELETE removes it. Reported only while the resource is in that failure state; null otherwise.

providerId?|

neutron's UUID for this endpoint group; null until the worker has created it.

usedByCount*integer

How many IPsec site connections use this group as their local or peer end. Non-zero means a delete will be refused with 409 DEPENDENCY_BLOCKED.

usedBy*array<>

The IPsec site connections using this group as a local or peer end. While this list is non-empty the group cannot be deleted.

curl -X GET "https://example.com/scopes/string/network/vpn/endpoint-groups/string"
{  "origin": "portal",  "id": "string",  "name": "string",  "description": "string",  "type": "subnet",  "endpoints": [    "string"  ],  "endpointLabel": "string",  "provisioningState": "PENDING_CREATE",  "statusReason": "string",  "statusReasonCode": "string",  "providerId": "string",  "usedByCount": 0,  "usedBy": [    {      "id": "string",      "name": "string"    }  ]}