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 load balancer detail
Retrieves the full detail read model for one load balancer, powering the load balancer detail page and all of its
panels: header (id, VIP, optional floating IP, flavor, provisioning/operating badges, created time),
listeners table (protocol, port, default pool, TLS certificate, connection limit, status), backend pools
with embedded members and health monitors, targets roll-up and health counters, and related-resource links
(VNet of the VIP subnet, floating IP, security group).
Validation: scopeId must be readable by the caller (403) and loadBalancerId must identify a
non-deleted load balancer inside that scope (404 NOT_FOUND otherwise).
Async & state: Synchronous read; no state change. Subsequent provisioning/operating transitions are
delivered as resource.updated SSE frames (kind "network.load_balancer") patching this entity.
Errors: 401 unauthenticated; 403 caller lacks reader access to the scope; 404 unknown or soft-deleted
load balancer id; 500 on backend failure.
Idempotency/Concurrency: Safe, cacheable; no idempotency key required. The response carries an ETag the
UI replays via If-Match on subsequent PATCH/DELETE calls.
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.
loadBalancerId*stringLoad balancer detail read model.
application/json- response
Load balancer read model with embedded listeners and pools, as rendered by the Load balancers page and the load balancer detail page.
origin?stringWhere 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.
"portal""api""system""imported"id*stringname*stringdescription*stringvip*stringVirtual IP address.
vipSubnet*stringIdentifier (UUID) of the subnet hosting the VIP — the same value that was supplied on create and that the platform passes to the provider as the VIP subnet id, not a display name.
floatingIp*|Attached public floating IP, or null.
provisioning*LbProvisioningProvisioning lifecycle state of a load balancer.
"ACTIVE""PENDING_CREATE""PENDING_UPDATE""PENDING_DELETE""ERROR"operating*LbOperatingOperating (health) state of a load balancer or one of its sub-resources.
"ONLINE""DEGRADED""OFFLINE""ERROR""NO_MONITOR"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.
flavor*stringThe PRODUCT size the load balancer was created with (lb.small, lb.standard, lb.large). An LB adopted from Octavia reads the size its Octavia flavor maps to, the default size when it runs on the provider default, else the Octavia flavor's own label.
listeners*array<>pools*array<>createdAt*stringdate-timecurl -X GET "https://example.com/scopes/string/network/load-balancers/string"{ "origin": "portal", "id": "string", "name": "string", "description": "string", "vip": "string", "vipSubnet": "string", "floatingIp": "string", "provisioning": "ACTIVE", "operating": "ONLINE", "statusReasonCode": "string", "flavor": "string", "listeners": [ { "id": "string", "name": "string", "protocol": "HTTP", "port": 0, "defaultPool": "string", "connectionLimit": 0, "tlsCertificate": "string", "operating": "ONLINE" } ], "pools": [ { "id": "string", "name": "string", "protocol": "HTTP", "algorithm": "ROUND_ROBIN", "sessionPersistence": "string", "cookieName": "string", "operating": "ONLINE", "members": [ { "id": "string", "name": "string", "address": "string", "port": 0, "weight": 0, "operating": "ONLINE", "backupMember": true } ], "monitor": { "id": "string", "type": "HTTP", "delay": 0, "timeout": 0, "maxRetries": 0, "httpMethod": "string", "urlPath": "string", "expectedCodes": "string", "operating": "ONLINE" } } ], "createdAt": "2019-08-24T14:15:22Z"}