List VPCs in a project.
curl --request GET \ --url https://stratum.example.com/v1/projects/example/network/vpcs \ --header 'Authorization: Bearer <token>'Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Responses
Section titled “Responses”VPCs.
object
object
Set on a platform-owned row; absent on a tenant’s own.
object
The owner: the Auto Scaling group id, or for platform the component (front-door, pack:platform-health, default-network, operator-recipe).
Canonical Stratum ARN for this VPC, for resource-policy targeting.
RFC 1918 CIDR block; /16 to /28; immutable.
Additional IPv4 CIDR blocks associated with the VPC. Subnets may carve from the primary or any
secondary block. Managed via the
/actions/associate-cidr-block +
/actions/disassociate-cidr-block endpoints.
Associated DHCP option set; empty means the
built-in defaults. Managed via
/actions/associate-dhcp-options.
When true, the VPC’s logical router gets an external port + default
0.0.0.0/0 route to the upstream and a transit IP allocated from the
FIP pool. Inbound reachability requires a floating IP attached to a
NIC. Outbound differs from AWS. Stratum at v1 also installs an
implicit-SNAT rule on the LR (source = the VPC CIDR, snat-to = the
transit IP), so every VM in the VPC reaches the internet whether
or not it has a floating IP — AWS would require a NAT Gateway for
that. documents the delta + the 2.0 plan to
restore AWS-strict semantics via the explicit NATGateway
resource. Operators building isolation on “no FIP = no internet”
must keep this flag false.
Per-VPC transit-network IP allocated by the lifecycle worker when the OVN external LRP is wired. Empty means the LRP isn’t wired yet (desired but not yet converged) or the VPC has no IGW.
AWS-shape resource tags. Freeform UTF-8 keys (1-128 bytes, no
leading/trailing whitespace) mapped to freeform UTF-8 values
(0-256 bytes). Max 50 tags per resource. Reserved prefixes
(stratum.dev/, stratum.platform_health., stratum:,
aws:) return 400 RESERVED_NAMESPACE on customer input.
PATCH replaces the whole map..
object
The VPC resolver’s address on each available subnet, ordered by subnet id. Empty when no resolver answers in this VPC: DNS resolution is off, or the install runs no per-VPC resolver.
The VPC resolver’s address on one subnet: the subnet’s .3, which DHCP hands instances as their DNS server and which forwards to the VPC’s recursor.
object
The subnet’s .3.
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.
Example
{ "items": [ { "ownedBy": { "kind": "auto-scaling-group" }, "cidrBlock": "10.0.0.0/16", "state": "creating", "resolverAddresses": [ { "address": "10.0.1.3" } ] } ]}