Skip to content

List a Client VPN endpoint's connections (enrolled peers).

GET
/v1/projects/{projectId}/network/client-vpn-endpoints/{clientVpnEndpointId}/connections
Code sample: Shell / cURL
curl --request GET \
--url https://stratum.example.com/v1/projects/example/network/client-vpn-endpoints/example/connections \
--header 'Authorization: Bearer <token>'
projectId
required
string
/^p-[a-z0-9-]+$/
clientVpnEndpointId
required
string
/^cvpn-[a-z0-9-]+$/

Connections.

Media typeapplication/json
object
items
required
Array<object>

One enrolled device — a principal’s WireGuard device key bound to an assigned client IP.

object
id
required
string
/^cvpnp-[a-z0-9-]+$/
projectId
required
string
clientVpnEndpointId
required
string
/^cvpn-[a-z0-9-]+$/
principalId
required
string
devicePublicKey
required

The client’s WireGuard device public key (base64).

string
assignedClientIp
required
string
deviceName
string
state
required
string
Allowed values: active revoked
createdAt
required
string format: date-time
updatedAt
required
string format: date-time
revokedAt
string format: date-time
createdBy
string
nextPageToken
string
isTruncated

True when the server had more rows than it returned. The response is a valid prefix of the result, not the whole of it.

Without this flag a client at the server’s row ceiling receives a full page and no nextPageToken, which means “this is the complete set” — so data it never saw would be indistinguishable from data that does not exist.

It does not imply a cursor exists. These queries do not all sort on a total order, so a resumable token cannot be minted for them yet. The remedy is to narrow the request (a filter, or a tighter scope), not to page.

boolean

Example

{
"items": [
{
"state": "active"
}
]
}