Floating IPs
AuthorizationBearer <token>label_selector?stringFilter by labels: env=prod, env!=prod, env (has key), !env; comma = AND
Floating IPs
application/json- response
floating_ips*array<>curl -X GET "https://example.com/floating_ips"{ "floating_ips": [ { "id": 0, "name": "string", "description": "string", "type": "ipv4", "ip": "string", "location": "string", "server": 0, "dns_ptr": "string", "blocked": true, "protection": { "delete": true }, "labels": { "property1": "string", "property2": "string" }, "created": "2019-08-24T14:15:22Z" } ]}AuthorizationBearer <token>application/json- body
type*string"ipv4""ipv6"name?stringlength <= 64description?stringlength <= 255location?stringRequired unless server is given
server?integerAssign to this server
int64labels?Up to 64 key/value pairs; keys and values up to 63 characters
Created
application/json- response
floating_ip*action?|nullcurl -X POST "https://example.com/floating_ips" \ -H "Content-Type: application/json" \ -d '{ "type": "ipv4" }'{ "floating_ip": { "id": 0, "name": "string", "description": "string", "type": "ipv4", "ip": "string", "location": "string", "server": 0, "dns_ptr": "string", "blocked": true, "protection": { "delete": true }, "labels": { "property1": "string", "property2": "string" }, "created": "2019-08-24T14:15:22Z" }, "action": { "id": 0, "command": "create_server", "status": "running", "progress": 0, "started": "2019-08-24T14:15:22Z", "finished": "2019-08-24T14:15:22Z", "resources": [ { "id": 0, "type": "server" } ], "error": { "code": "string", "message": "string" } }}AuthorizationBearer <token>id*integerint64FloatingIp
application/json- response
floating_ip*curl -X GET "https://example.com/floating_ips/0"{ "floating_ip": { "id": 0, "name": "string", "description": "string", "type": "ipv4", "ip": "string", "location": "string", "server": 0, "dns_ptr": "string", "blocked": true, "protection": { "delete": true }, "labels": { "property1": "string", "property2": "string" }, "created": "2019-08-24T14:15:22Z" }}AuthorizationBearer <token>id*integerint64Deletion started
application/json- response
action*curl -X DELETE "https://example.com/floating_ips/0"{ "action": { "id": 0, "command": "create_server", "status": "running", "progress": 0, "started": "2019-08-24T14:15:22Z", "finished": "2019-08-24T14:15:22Z", "resources": [ { "id": 0, "type": "server" } ], "error": { "code": "string", "message": "string" } }}AuthorizationBearer <token>id*integerint64application/json- body
name?string1 <= length <= 64description?stringlength <= 255labels?Up to 64 key/value pairs; keys and values up to 63 characters
protection?Updated
application/json- response
floating_ip*curl -X PUT "https://example.com/floating_ips/0" \ -H "Content-Type: application/json" \ -d '{}'{ "floating_ip": { "id": 0, "name": "string", "description": "string", "type": "ipv4", "ip": "string", "location": "string", "server": 0, "dns_ptr": "string", "blocked": true, "protection": { "delete": true }, "labels": { "property1": "string", "property2": "string" }, "created": "2019-08-24T14:15:22Z" }}The address is routed to the server's public interface. Add it inside
the guest (e.g. ip addr add 203.0.113.7/32 dev eth0, persisted in
netplan) and announce it once with a gratuitous ARP
(arping -U -c 3 -I eth0 203.0.113.7; Ubuntu: apt install iputils-arping)
or reboot. Until the server announces it, traffic may still reach the
previous holder.
AuthorizationBearer <token>id*integerint64application/json- body
server*integerint64Action started
application/json- response
action*curl -X POST "https://example.com/floating_ips/0/actions/assign" \ -H "Content-Type: application/json" \ -d '{ "server": 0 }'{ "action": { "id": 0, "command": "create_server", "status": "running", "progress": 0, "started": "2019-08-24T14:15:22Z", "finished": "2019-08-24T14:15:22Z", "resources": [ { "id": 0, "type": "server" } ], "error": { "code": "string", "message": "string" } }}AuthorizationBearer <token>id*integerint64Action started
application/json- response
action*curl -X POST "https://example.com/floating_ips/0/actions/unassign"{ "action": { "id": 0, "command": "create_server", "status": "running", "progress": 0, "started": "2019-08-24T14:15:22Z", "finished": "2019-08-24T14:15:22Z", "resources": [ { "id": 0, "type": "server" } ], "error": { "code": "string", "message": "string" } }}The hostname must already resolve to the IP (forward-confirmed reverse DNS).
AuthorizationBearer <token>id*integerint64application/json- body
dns_ptr?|null resets the entry
Changed
application/json- response
action*curl -X POST "https://example.com/floating_ips/0/actions/change_dns_ptr" \ -H "Content-Type: application/json" \ -d '{}'{ "action": { "id": 0, "command": "create_server", "status": "running", "progress": 0, "started": "2019-08-24T14:15:22Z", "finished": "2019-08-24T14:15:22Z", "resources": [ { "id": 0, "type": "server" } ], "error": { "code": "string", "message": "string" } }}