Skip to content

Network API

Neutron v2.0 · Extension-based (no microversions) · OpenStack Antelope (2023.1)

Base URL: https://network.{region}.rumble.cloud

Upstream reference: OpenStack Network API ↗ · Error handling: API errors

All requests require a Keystone token in the X-Auth-Token header. See Authentication for token issuance.

Networks

GET/v2.0/networks
POST/v2.0/networks
GET/v2.0/networks/{network_id}
PUT/v2.0/networks/{network_id}
DELETE/v2.0/networks/{network_id}
Examples

List networks

curl -s -H "X-Auth-Token: $TOKEN" \
  https://network.us-east-1.rumble.cloud/v2.0/networks | jq '.networks[] | {id, name, status}'

Create a network: request body

curl -s -X POST -H "X-Auth-Token: $TOKEN" \
  -H "Content-Type: application/json" \
  https://network.us-east-1.rumble.cloud/v2.0/networks \
  -d '{
  "network": {
    "name": "my-network",
    "admin_state_up": true
  }
}'

Key response fields: id, name, status, subnets, provider:network_type

Subnets

GET/v2.0/subnets
POST/v2.0/subnets
GET/v2.0/subnets/{subnet_id}
PUT/v2.0/subnets/{subnet_id}
DELETE/v2.0/subnets/{subnet_id}
Examples

Create a subnet: request body

curl -s -X POST -H "X-Auth-Token: $TOKEN" \
  -H "Content-Type: application/json" \
  https://network.us-east-1.rumble.cloud/v2.0/subnets \
  -d '{
  "subnet": {
    "network_id": "{network_id}",
    "ip_version": 4,
    "cidr": "192.168.1.0/24",
    "name": "my-subnet"
  }
}'

Key response fields: id, cidr, gateway_ip, allocation_pools

GET/v2.0/ports
POST/v2.0/ports
GET/v2.0/ports/{port_id}
PUT/v2.0/ports/{port_id}
DELETE/v2.0/ports/{port_id}
Examples

Create a port: request body

curl -s -X POST -H "X-Auth-Token: $TOKEN" \
  -H "Content-Type: application/json" \
  https://network.us-east-1.rumble.cloud/v2.0/ports \
  -d '{
  "port": {
    "network_id": "{network_id}",
    "name": "my-port",
    "admin_state_up": true
  }
}'

Key response fields: id, mac_address, fixed_ips, device_owner, security_groups

GET/v2.0/routers
POST/v2.0/routers
GET/v2.0/routers/{router_id}
PUT/v2.0/routers/{router_id}
DELETE/v2.0/routers/{router_id}
PUT/v2.0/routers/{router_id}/add_router_interface
PUT/v2.0/routers/{router_id}/remove_router_interface
Examples

Create a router: request body

curl -s -X POST -H "X-Auth-Token: $TOKEN" \
  -H "Content-Type: application/json" \
  https://network.us-east-1.rumble.cloud/v2.0/routers \
  -d '{
  "router": {
    "name": "my-router",
    "admin_state_up": true
  }
}'

Add subnet interface to router

curl -s -X PUT -H "X-Auth-Token: $TOKEN" \
  -H "Content-Type: application/json" \
  https://network.us-east-1.rumble.cloud/v2.0/routers/{router_id}/add_router_interface \
  -d '{ "subnet_id": "{subnet_id}" }'

Key response fields: id, status, external_gateway_info, routes

Floating IPs

Detailed guide →
GET/v2.0/floatingips
POST/v2.0/floatingips
GET/v2.0/floatingips/{floatingip_id}
PUT/v2.0/floatingips/{floatingip_id}
DELETE/v2.0/floatingips/{floatingip_id}
Examples

Allocate a floating IP

curl -s -X POST -H "X-Auth-Token: $TOKEN" \
  -H "Content-Type: application/json" \
  https://network.us-east-1.rumble.cloud/v2.0/floatingips \
  -d '{
  "floatingip": {
    "floating_network_id": "{external_network_id}"
  }
}'

Associate floating IP with a port

curl -s -X PUT -H "X-Auth-Token: $TOKEN" \
  -H "Content-Type: application/json" \
  https://network.us-east-1.rumble.cloud/v2.0/floatingips/{floatingip_id} \
  -d '{ "floatingip": { "port_id": "{port_id}" } }'

Key response fields: id, floating_ip_address, port_id, status

Guides