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 network interface detail
Retrieves the full Network Interface read model that backs the network interface detail page and its tabs
(Overview, Security groups, Allowed address pairs, Floating IP, Activity, Tags): identity (id, name,
description, ARN, DNS name), network placement (network id/name/external flag, subnet name + CIDR,
fixed IP, MAC, MTU), state (status, adminStateUp, binding type/host), security posture (portSecurity,
attached security-group ids, allowed address pairs), floating-IP association, attached device
(instance / load balancer / router / DHCP agent) and live throughput gauges (rxMbps, txMbps, pps).
Validation: networkInterfaceId must reference a port that exists and is visible inside
scopeId; an unknown or out-of-scope id → ERR_NOT_FOUND (404).
Async & state: Synchronous read; no state change.
Errors: 401 when the session is missing/expired; 403 when the caller lacks reader access to the
scope; 404 when the port does not exist in the scope; 500 on backend read failure.
Idempotency/Concurrency: Safe, cacheable; no idempotency key required. The response carries an
ETag usable as If-Match on subsequent PATCH/PUT/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.
networkInterfaceId*stringNetwork interface (port) identifier, e.g. port-web01.
The Network Interface detail read model.
application/json- response
Network interface (port) read model.
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*stringPort identifier (e.g. port-web01).
name*stringPort name, unique within the project.
description*stringarn*stringResource name, e.g. arn:publiccloud:network:ist-1:{account}:port/{name}.
networkId*stringIdentifier of the network the port lives on.
networkName*stringnetworkExternal*booleanTrue when the network is a public (provider) network.
subnetName*stringsubnetCidr*stringCIDR of the subnet the fixed IP is reserved on.
fixedIp*stringPRIMARY fixed address — the first entry of fixedIps. Not the only one: read fixedIps to see the whole reservation. Empty string until the provider allocates.
fixedIps*array<>The port's FULL fixed-IP reservation as Neutron holds it, in provider order (fixedIp mirrors the first entry). A consumer that shows only fixedIp silently hides every further address, which is how a two-address port read back as a single-address one. Empty until the provider allocates.
mac*stringMAC address under the fa:16:3e OUI, auto-generated at create time.
status*NetworkInterfaceStatusPort lifecycle status. UI labels Active / Down / Build.
"active""down""build"statusReason*|Human-readable, customer-facing reason the last lifecycle command on this port failed (e.g. "The request could not be completed after repeated attempts. Try again, or contact support if it persists."); a create that failed after the port already existed settles down with the reason here. Never raw provider text. Null while healthy, once a later settle clears it, or when the failure carried no detail. Mirrors VirtualNetwork.statusReason.
adminStateUp*booleanAdministrative state; false forces the port down regardless of binding.
portSecurity*booleanAnti-spoofing filter + security-group enforcement flag.
securityGroups*array<string>Attached security-group ids; empty when port security is off.
floatingIp*|Associated floating IP, or null when none is associated.
device*|nullBound device, or null when the port is unattached.
bindingType*NetworkInterfaceBindingTypePort binding type (BindingType). UI labels: Normal (virtio) / Direct (SR-IOV) / MACVTAP.
"normal""direct""macvtap"bindingHost*|Hypervisor the port is bound to, or null when unbound.
mtu*integerEffective MTU (9000 for SR-IOV direct bindings, otherwise the network MTU).
dnsName*stringA name the platform derives from the interface name and region ({name}.{region}. followed by an internal zone). Informational: it is not guaranteed to resolve.
allowedAddressPairs*array<>region*RegionIdPlatform region code (a DNS-label-shaped slug, e.g. ist-1). No longer a closed enum: the set of valid region codes is operator-managed in the platform-region registry, so this carries only a shape guard. The authoritative set of activated regions is read from GET /regions; invalid-shape codes are VALIDATION_FAILED and codes absent from the registry are rejected at the resolving endpoint.
^[a-z][a-z0-9-]{1,39}$createdAt*stringdate-timeupdatedAt*stringdate-timerxMbps*integerCurrent receive throughput in Mb/s (0 when the port is not active).
txMbps*integerCurrent transmit throughput in Mb/s (0 when the port is not active).
pps*integerCurrent packets-per-second (0 when the port is not active).
curl -X GET "https://example.com/scopes/string/network/network-interfaces/string"{ "origin": "portal", "id": "string", "name": "string", "description": "string", "arn": "string", "networkId": "string", "networkName": "string", "networkExternal": true, "subnetName": "string", "subnetCidr": "string", "fixedIp": "string", "fixedIps": [ { "ipAddress": "string", "subnetId": "string" } ], "mac": "string", "status": "active", "statusReason": "string", "adminStateUp": true, "portSecurity": true, "securityGroups": [ "string" ], "floatingIp": "string", "device": { "kind": "instance", "id": "string", "name": "string", "owner": "string" }, "bindingType": "normal", "bindingHost": "string", "mtu": 0, "dnsName": "string", "allowedAddressPairs": [ { "ip": "string", "mac": "" } ], "region": "string", "createdAt": "2019-08-24T14:15:22Z", "updatedAt": "2019-08-24T14:15:22Z", "rxMbps": 0, "txMbps": 0, "pps": 0}