Skip to main content

REST APIs for 22.5

Virtual Servers

A virtual server is similar to a workload. It can be assigned labels and has IP addresses, but does not report traffic to the Illumio Core. Each virtual server has only one VIP. The local IP addresses are used as a source IP address for connections to the pool members (backend servers) when the virtual server is operating in SNAT mode or Auto mode. These IP addresses are likely to be shared by multiple virtual servers on the server load balancer.

A discovered virtual server is a server load balancer (SLB) virtual server (IP address and port(s)) that the NEN has discovered when interrogating SLBs managed by the PCE.

For the topic overview and more details see the Security Policy Guide, Load Balancers and Virtual Servers.

Virtual Server Methods

There are two groups of methods used to manage virtual servers:

  • Methods for virtual servers

  • Methods for discovered virtual servers

Virtual Servers
Virtual Server Methods

Functionality

HTTP

URI

Get a list of Virtual Servers

GET

[api_version][org_href]/sec_policy/:version/virtual_servers

Get a specified Virtual Server

GET

[api_version][org_href]/sec_policy/:version/virtual_servers/:uuid

Create a Virtual Server object

POST

[api_version][org_href]/sec_policy/:version/virtual_servers

Modify the enforcement mode, labels, and backend/provider labels of a specified Virtual Server

PUT

[api_version][org_href]/sec_policy/:version/virtual_servers/:uuid

Parameters for Virtual Servers :

Parameter

Description

Type

Required

org_id

Organization

Integer

Yes

pversion

Security Policy Version

String

Yes

virtual_server_id

Virtual server UUID (to get a specific virtual server)

String

Yes

external_data_reference

A unique identifier within the external data source

String

No

external_data_set

The data source from which a resource originates

String

No

labels

2D array of label URIs, encoded as a JSON string. Filter by virtual server labels.

String

Yes

mode

Mode of the virtual server(s) to return

String

No

discovered_virtual_server

URI of discovered virtual server to filter by

String

No

Properties for Virtual Servers

Parameter

Description

Type

Required

href

href of virtual server

String

Yes

name

The short friendly name of the virtual server

String

Yes

labels

2D array of label URIs, encoded as a JSON string. Filter by virtual server labels.

"$ref": "../common/label_optional_key_value.schema.json"

Array

Yes

service

URI of associated service

"$ref": "../common/href_object.schema.json"

Yes

providers

minItems: 0,

label: "$ref": "../common/label_optional_key_value.schema.json"

workload: "$ref": "../common/href_object.schema.json"

Array

Yes

mode

Virtual server mode of operation",

String/Null

Yes

discovered_virtual_server

Corresponding discovered virtual server, server URI

String/Null

Yes

update_type

"$ref": "../common/sec_policy_update_type.schema.json"

Yes

created_at

The time (rfc3339 timestamp) at which this virtual server was created

date/time

Yes

updated_at

The time (rfc3339 timestamp) at which this virtual server was last updated

date/time

Yes

deleted_at

The time (rfc3339 timestamp) at which this virtual server was deleted

String/Null

Yes

created_by

The URI of the user who created this virtual server

"$ref": "../common/href_object.schema.json"

Yes

updated_by

The URI of the user who last updated this virtual server

"$ref": "../common/href_object.schema.json"

Yes

deleted_by

The URI of the user who deleted this virtual server

"$ref": "../common/nullable_href_object.schema.json"

Yes

virtual_server_id

Virtual server UUID

String

Yes

pversion

Security Policy Version

String

Yes

external_data_reference

A unique identifier within the external data source

String

No

external_data_set

The data source from which a resource originates

String/Null

No

Discovered Virtual Servers
Discovered Virtual Servers Methods

You can use only three GET methods for discovered virtual servers

Functionality

HTTP

URI

Get a list of Discovered Virtual Servers

GET

[api_version][org_href]/discovered_virtual_servers

Get a specified Discovered Virtual Server

GET

[api_version][org_href]/discovered_virtual_servers/:uuid

Discovery on-demand: list the discovered virtual servers

GET

[api_version][org_href]/network_enforcement_nodes/virtual_server_discovery_jobs/:uuid

Discovered Virtual Server Parameters

Parameter

Description

Type

Required

org_id

Organization

Integer

Yes

dvs_identifier

NFC-generated unique identifier for discovered virtual server

String

Yes

name

Name of discovered virtual server(s) to return. Supports partial matches

String

No

vip

Frontend (VIP) address of the discovered virtual server(s). Supports suffix-wildcard matches

String

No

vip_port

Port of frontend VIP of the discovered virtual server(s)

Integer

No

vip_proto

Protocol of frontend VIP of the discovered virtual server(s)

Integer

No

local_ips

Local IPs of virtual server

Format: ipv4

String

Yes

virtual_server_mode

Filter discovered virtual server(s) by virtual server mode. Requires usage of has_virtual_server: true

String

No

slb

URI of SLB object to filter discovered virtual server(s)

String

No

Discovered Virtual Server Properties

Parameter

Description

Type

Required

href

href of discovered virtual server

String

Yes

dvs_identifier

NFC-generated unique identifier for discovered virtual server

String

Yes

name

Configured name of virtual server

"$ref": "../common/dvs_vip_port.schema.json"

String

Yes

vip_port

VIP including protocol and port for discovered virtual server

Yes

local_ips

Local IPs of virtual server

Format: ipv4

String

Yes

mode

Virtual server mode of operation

Yes

slb

URI of Service Load Balancer (SLB) object to filter discovered virtual server(s)

"$ref": "../common/href_object.schema.json"

String

Yes

service_checks

Yes

nfc

DEPRECATED AND REPLACED (USE 'network_enforcement_node' INSTEAD) URI of the NFC for this discovered virtual server

"$ref": "../common/href_object.schema.json"

Yes

created_at

The time (rfc3339 timestamp) at which this server load balancer was created

date/time

Yes

updated_at

The time (rfc3339 timestamp) at which this server load balancer was last updated

date/time

Yes

created_by

"$ref": "../common/href_object.schema.json"

Yes

updated_by

"$ref": "../common/href_object.schema.json"

Yes

network_enforcement_node

URI of the Network Enforcement Node for this discovered virtual server

"$ref": "../common/href_object.schema.json"

Yes

snat_type

SNAT source ip type

String

No

snat_pool_ips

NAT source IPs of virtual server

Format: ipv4

String

No

virtual_server

The virtual server policy object corresponding to this discovered virtual server

Object

No

has_virtual_server

Filter discovered virtual server(s) by whether they are managed by a virtual server object

"$ref": "../common/href_object.schema.json"

String

No

labels

Labels for virtual server

String

No