Skip to content

List each VPC's resolver addresses and whether they answer.

GET
/v1/projects/{projectId}/dns/recursors
Code sample: Shell / cURL
curl --request GET \
--url https://stratum.example.com/v1/projects/example/dns/recursors \
--header 'Authorization: Bearer <token>'

The tenant’s view of each VPC’s resolver (; reduced by): the address each available subnet resolves through (its .3, which DHCP hands instances) and whether a client on each subnet got an answer from it in the last 3 minutes. It names no node, no address on the VPC’s internal DNS switch and no placement; operators find those at GET /v1/admin/network/dns/recursors. Optionally narrowed to one VPC.

projectId
required
string
/^p-[a-z0-9-]+$/
vpcId
string

Each VPC’s resolver.

Media typeapplication/json
object
items
required
Array<object>

A VPC’s resolver, as the tenant sees it: the address each of its subnets resolves through and whether it answers. It names no node, no address on the VPC’s internal DNS switch and no placement; those are the operator’s (GET /v1/admin/network/dns/recursors).

object
vpcId
required
string
resolverAddresses
required

The resolver address of each available subnet (its .3, which DHCP hands instances), ordered by subnet id, each with its own verdict.

Array<object>

One subnet’s resolver address (its .3) and whether it answers.

object
subnetId
required
string
address
required

The subnet’s .3, which DHCP hands instances as their DNS server.

string
healthy
required

A client on the subnet resolved a public name through this address within the last 3 minutes.

boolean
checkedAt

When a client on the subnet last asked. Absent before the first check.

string format: date-time
reason

Why not healthy.

string
healthy
required

True when every available subnet’s .3 answered a client on that subnet within the last 3 minutes: a probe port on the subnet’s own switch resolved a public name through it (NOERROR or NXDOMAIN pass; SERVFAIL and no answer fail). That is the path an instance’s query takes. False with no subnet, since the resolver then has no address.

boolean
reason

Why not healthy, subnet by subnet.

string

Example

{
"items": [
{
"resolverAddresses": [
{
"address": "10.0.1.3"
}
]
}
]
}