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 lets you get information about one or all of the interfaces on a workload. You can retrieve workload interface information such as its connectivity (up, down, unknown), interface IP address, number of bits in the subnet, the IP address of the default gateway, and the 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" }