Workload Interfaces
This Public Stable API allows you to get network interface information from a workload for all interfaces on a workload or an individual interface. You can also configure (create) or delete an individual network interface configuration.
Workload Interfaces Methods
Functionality | HTTP | URI |
---|---|---|
Request the list of the workload_interfaces (outside of the workloads or VENs scope). The |
|
|
Get an instance for the workload interface using the name. (DEPRECATED) |
|
|
Directly creates a workload interface. The request payload was not changed. However, the |
|
|
Delete the workload interface with the name.(DEPRECATED) |
|
|
Set the network manually and update the automatic network detection. (DEPRECATED) |
|
|
Get Workload Network Interface
This API allows you to get information about one or all of the interfaces on a workload. You can retrieve workload interface information, including its connectivity status (up, down, or unknown), interface IP address, subnet mask size, default gateway IP address, and associated network.
URI to Get a Collection of a Workload's Network Interfaces
GET [api_version][workload_href]/interfaces
Create Workload Network Interface
Directly creates a workload interface. The request payload was not changed. However, the href
field in the API response is deprecated.
URI to Create a Workload Network Interface Configuration
POST [api_version][workload_href]/interfaces
Workload Interfaces Reference
This topic contains properties and examples for workload interfaces.
GET Properties for workload interfaces
Property | Description | Type | Required |
---|---|---|---|
| Interface name. | String | Yes |
| The IP address is assigned to the interface. | String | Yes |
| The number of bits in the subnet (for example, /24 is 255.255.255.0). | Integer, Null | Yes |
| The default IP address of the default gateway. | String, Null | Yes |
| State of the interface connection, which is one of three values:
| String, Null | Yes |
| Network Detection Mode | String, Null | Yes |
| A user-friendly name is given to the interface. | String, Null | Yes |
| A network that the interface belongs to | Object, Null | Yes |
| DEPRECATED WITH NO REPLACEMENT | String | No |
POST properties for workload interfaces
Properties | Description | Type | Required |
---|---|---|---|
| The short, friendly name of the workload | String | Yes |
| State of the interface connection, which is one of three values:
| String | Yes |
| The IP address assigned to the interface. Reference to common schema | String | No |
| The number of bits in the subnet (for example, /24 is 255.255.255.0). | Integer | No |
| The default IP address of the default gateway. Reference to common schema | String | No |
| User-friendly name given to the interface. | String | No |
| DEPRECATED WITH NO REPLACEMENT | String | No |
Request Body
{ "name": "eth0.public", "address": "192.0.2.0", "cidr_block": 32, "default_gateway_address": 255.255.255.0, "link_state": "up", }
Curl Command Create Network Interface
curl -i -X POST https://pce.my-company.com:8443/api/v2/orgs/2/workloads/xxxxxxxx-c4e9-44e7-8a31-e86acf6b276c/interfaces -H "Content-Type: application/json" -u $KEY:$TOKEN -d '{"name": "eth0.public", "address": "192.0.2.0","cidr_block": "32", "default_gateway_address": "255.255.255.0", "link_state": "up"}'
Examples
Request for all workload interfaces with a specific name
Request: GET /api/v2/orgs/:org_id/workloads/:workload_id/interfaces?name=eth0.public
The response includes the deprecated href field in the response:
[ { "href": "/orgs/1/workloads/561bd65e-136c-4005-8aa2-bdc8af1b3600/interfaces/eth0.public" "name": "eth0.public", "cidr_block": null, link_state": null, "network_detection_mode": null, "friendly_name": null, "network": { "href": "/orgs/1/networks/366ff4c1-ec60-49be-a05f-3a5ccab09c2f" }, "loopback": false, "address": "1.1.1.1", "default_gateway_address": null }, { "href": "/orgs/1/workloads/561bd65e-136c-4005-8aa2-bdc8af1b3600/interfaces/eth0.public" "name": "eth0.public", "cidr_block": null, "link_state": null, "network_detection_mode": null, "friendly_name": null, "network": { "href": "/orgs/1/networks/366ff4c1-ec60-49be-a05f-3a5ccab09c2f" }, "loopback": false, "address": "2.2.2.2", "default_gateway_address": null }
API request/response creating new workload interface
Request: POST /api/v2/orgs/:org_id/workloads/:workload_id/interfaces
{ "name": "eth1.private", "cidr_block": 32, "link_state": "up", "address": "99.99.99.7" }
The Response body (with the href
deprecated):
{ "href": "/orgs/1/workloads/561bd65e-136c-4005-8aa2/interfaces/eth1.private" "name": "eth1.private", "cidr_block": 32, "link_state": "up", "network_detection_mode": "single_private_brn", "friendly_name": null, "network": { "href": "/orgs/1/networks/5b25c11d-4e95-42d3-abd2-488506e48b02" }, "loopback": false, "address": "99.99.99.7", "default_gateway_address": null }
API request deleting multiple workload interfaces (bundle delete)
Request: PUT /api/v2/orgs/:org_id/workloads/:workload_id/interfaces/delete
Successful delete
Payload - all interfaces with the name eth0.public
and only one interface with the name eth1.private
are deleted.
Response code - 200
{ "name": "eth0.public" }, { "name": "eth1.private", "address": "10.10.10.1" }