Virtual IPs¶
A virtual IP (VIP) makes a load balancer accessible by clients. The load balancing service supports either a public VIP, routable on the public Internet, or a ServiceNet address, routable only within the region in which the load balancer resides.
Note
All load balancers must have at least one virtual IP associated with
them at all times. Attempting to delete the last virtual IP results in a
400 (badRequest) fault. To bulk-delete virtual IPs, provide a query
parameter list of virtual ip IDs. For example:
virtualips?id='virtualIpId' &id='virtualIpId'
. The current
default limit is ten IDs per request. Any and all configuration data is
immediately purged and is not recoverable. If one or more of the items
in the list cannot be removed due to its current status, a 400
(badRequest) is returned along with the IDs of the ones the system
identified as potential failures for this request.
Table. Virtual IP types
Name |
Description |
---|---|
|
An address that is routable on the public Internet. |
|
An address that is routable only on ServiceNet. |
The following table lists the required and optional attributes:
Table. Required and optional attributes
Name |
Description |
Required |
---|---|---|
ipVersion |
IP Version: must be set to IPV6. |
Yes |
type |
Type of virtualIp to add:
|
Yes |
List virtual IPs¶
GET /v1.0/{account}/loadbalancers/{loadBalancerId}/virtualips
Lists virtual IPs that are associated with a specified load balancer.
The following table shows the possible response codes for this operation:
Response Code |
Name |
Description |
---|---|---|
200 |
Success |
Request succeeded. |
400 |
Bad Request |
The request is missing one or more elements, or the values of some elements are invalid. |
401 |
Unauthorized |
You are not authorized to complete this operation. This error can occur if the request is submitted with an invalid authentication token. |
404 |
Not Found |
The requested item was not found. |
413 |
Over Limit |
The number of items returned is above the allowed limit. |
422 |
ImmutableEntity |
This fault is returned when a user attempts to modify an item that is not currently in a state that allows modification. For example, load balancers in a status of PENDING_UPDATE,BUILD, or DELETED may not be modified. |
500 |
Load Balancer Fault |
The load balancer has experienced a fault. |
503 |
Service Unavailable |
The service is not available. |
Request¶
The following table shows the URI parameters for the request:
Name |
Type |
Description |
---|---|---|
{account} |
String |
The ID for the tenant or account in a multi- tenancy cloud. |
{loadBalancerId} |
String |
The ID for the load balancer. |
This operation does not accept a request body.
Response¶
Example List virtual IPs: JSON response
{
"virtualIps": [
{
"address": "172.25.0.17",
"id": 17,
"type": "PUBLIC",
"ipVersion": "IPV4"
},
{
"address": "fd00:0000:0000:0101:22d6:5749:0000:0011",
"id": 17,
"type": "PUBLIC",
"ipVersion": "IPV6"
}
]
}
Example List virtual IPs: XML response
<virtualIps xmlns="http://docs.openstack.org/loadbalancers/api/v1.0">
<virtualIp id="17" address="172.25.0.17" ipVersion="IPV4" type="PUBLIC"/>
<virtualIp id="17" address="fd00:0000:0000:0101:22d6:5749:0000:0011" ipVersion="IPV6" type="PUBLIC"/>
</virtualIps>
Example List atom virtual IPs: ATOM/XML response
<feed xmlns="http://www.w3.org/2005/Atom">
<link rel="next" href="https://staging.ord.loadbalancers.api.rackspacecloud.com/v1.0/5806065/loadbalancers/347763/virtualips.atom?page=2"/>
<title type="text">Virtual Ips Feed</title>
<id>5806065-loadbalancers-347763-virtualips</id>
<author>
<name>Rackspace Cloud</name>
</author>
<entry>
<title type="text">Virtual Ip Successfully Added</title>
<summary type="text">Virtual ip successfully added with address: '184.106.24.17', type: 'PUBLIC'</summary>
<author>
<name>cloudUser</name>
</author>
<link href="https://staging.ord.loadbalancers.api.rackspacecloud.com/v1.0/5806065/loadbalancers/347763/virtualips/919"/>
<id>5806065-loadbalancers-347763-virtualips-919-20193501825450</id>
<category term="CREATE"/>
<updated>2019-12-16T18:25:45.000Z</updated>
</entry>
<entry>
<title type="text">Virtual Ip Successfully Added</title>
<summary type="text">Virtual ip successfully added with address: '2001:4801:79f1:0100:22d6:5749:0000:0001', type: 'PUBLIC'</summary>
<author>
<name>cloudUser</name>
</author>
<link href="https://staging.ord.loadbalancers.api.rackspacecloud.com/v1.0/5806065/loadbalancers/347763/virtualips/9078732"/>
<id>5806065-loadbalancers-347763-virtualips-9078732-20193501825450</id>
<category term="CREATE"/>
<updated>2019-12-16T18:25:45.000Z</updated>
</entry>
</feed>
Add virtual IP version 6¶
POST /v1.0/{account}/loadbalancers/{loadBalancerId}/virtualips
Adds virtual IP version 6.
The following table shows the possible response codes for this operation:
Response Code |
Name |
Description |
---|---|---|
202 |
Success |
Request succeeded. |
400 |
Bad Request |
The request is missing one or more elements, or the values of some elements are invalid. |
401 |
Unauthorized |
You are not authorized to complete this operation. This error can occur if the request is submitted with an invalid authentication token. |
404 |
Not Found |
The requested item was not found. |
413 |
Over Limit |
The number of items returned is above the allowed limit. |
422 |
ImmutableEntity |
This fault is returned when a user attempts to modify an item that is not currently in a state that allows modification. For example, load balancers in a status of PENDING_UPDATE,BUILD, or DELETED may not be modified. |
500 |
Load Balancer Fault |
The load balancer has experienced a fault. |
503 |
Service Unavailable |
The service is not available. |
Request¶
The following table shows the URI parameters for the request:
Name |
Type |
Description |
---|---|---|
{account} |
String |
The ID for the tenant or account in a multi- tenancy cloud. |
{loadBalancerId} |
String |
The ID for the load balancer. |
Example Add virtual IP version 6: JSON request
{
"type":"PUBLIC",
"ipVersion":"IPV6"
}
Example Add virtual IP version 6: XML request
<virtualIp xmlns="http://docs.openstack.org/loadbalancers/api/v1.0" type="PUBLIC" ipVersion="IPV6" />
Example Add shared virtual IP version 6: JSON request
{
"loadBalancer": {
"name": "a-new-loadbalancer_sharedIP",
"port": 53,
"protocol": "TCP",
"algorithm": "ROUND_ROBIN",
"nodes": [{
"port": "80",
"condition": "ENABLED",
"address": "23.253.151.92"
}
],
"virtualIps": [{
"id": 9039389
}]
}
}
Example Add shared virtual IP version 6: XML request
<loadBalancer xmlns="http://docs.openstack.org/loadbalancers/api/v1.0"
name="a-new-loadbalancer_sharedIP"
port="80"
protocol="HTTP">
<virtualIps>
<virtualIp id="9039381"/>
</virtualIps>
<nodes>
<node address="10.1.1.1" port="80" condition="ENABLED"/>
</nodes>
</loadBalancer>
Response¶
Example Add virtual IP version 6: JSON response
{
"address":"fd24:f480:ce44:91bc:1af2:15ff:0000:0002",
"id":9000134,
"type":"PUBLIC",
"ipVersion":"IPV6"
}
Example Add virtual IP version 6: XML response
<virtualIp xmlns="http://docs.openstack.org/loadbalancers/api/v1.0"
id="9000133"
address="fd24:f480:ce44:91bc:1af2:15ff:0000:0001"
ipVersion="IPV6"
type="PUBLIC" />
Example Add shared virtual IP version 6: JSON response
{
"address":"fd24:f480:ce44:91bc:1af2:15ff:0000:0002",
"id":9000137,
"type":"PUBLIC",
"ipVersion":"IPV6"
}
Example Add shared virtual IP version 6: XML response
<virtualIp xmlns="http://docs.openstack.org/loadbalancers/api/v1.0"
id="9000137"
address="fd24:f480:ce44:91bc:1af2:15ff:0000:0001"
ipVersion="IPV6"
type="PUBLIC" />
Bulk-delete virtual IPs¶
DELETE /v1.0/{account}/loadbalancers/{loadBalancerId}/virtualips
Bulk-deletes specified virtual IPs.
Note
All load balancers must have at least one virtual IP associated with them
at all times. Attempting to delete the last virtual IP results in a 400
(badRequest) fault. To bulk-delete virtual IPs, provide a query parameter
list of virtual ip IDs, for example:
/virtualips?id=virtualIpId&id=virtualIpId
.
The current default limit is ten IDs per request. Any and all configuration data is immediately purged and is not recoverable. If one or more of the items in the list cannot be removed due to its current status, a 400 (badRequest) is returned along with the IDs of the ones the system identified as potential failures for this request.
The following table shows the possible response codes for this operation:
Response Code |
Name |
Description |
---|---|---|
202 |
Success |
Request succeeded. |
400 |
Bad Request |
The request is missing one or more elements, or the values of some elements are invalid. |
401 |
Unauthorized |
You are not authorized to complete this operation. This error can occur if the request is submitted with an invalid authentication token. |
404 |
Not Found |
The requested item was not found. |
413 |
Over Limit |
The number of items returned is above the allowed limit. |
422 |
ImmutableEntity |
This fault is returned when a user attempts to modify an item that is not currently in a state that allows modification. For example, load balancers in a status of PENDING_UPDATE,BUILD, or DELETED may not be modified. |
500 |
Load Balancer Fault |
The load balancer has experienced a fault. |
503 |
Service Unavailable |
The service is not available. |
Request¶
The following table shows the URI parameters for the request:
Name |
Type |
Description |
---|---|---|
{account} |
String |
The ID for the tenant or account in a multi- tenancy cloud. |
{loadBalancerId} |
String |
The ID for the load balancer. |
The following table shows the query parameters for the request:
Name |
Type |
Description |
---|---|---|
virtualIpId |
String |
The ID for the virtual IP. |
This operation does not accept a request body.
Response¶
This operation does not return a response body.
Delete virtual IP¶
DELETE /v1.0/{account}/loadbalancers/{loadBalancerId}/virtualips/{virtualIpId}
Deletes a specified virtual IP.
The following table shows the possible response codes for this operation:
Response Code |
Name |
Description |
---|---|---|
200 |
Success |
Request succeeded. |
401 |
Unauthorized |
You are not authorized to complete this operation. This error can occur if the request is submitted with an invalid authentication token. |
404 |
Not Found |
The requested item was not found. |
422 |
ImmutableEntity |
This fault is returned when a user attempts to modify an item that is not currently in a state that allows modification. For example, load balancers in a status of PENDING_UPDATE,BUILD, or DELETED may not be modified. |
500 |
Load Balancer Fault |
The load balancer has experienced a fault. |
503 |
Service Unavailable |
The service is not available. |
Request¶
The following table shows the URI parameters for the request:
Name |
Type |
Description |
---|---|---|
{account} |
String |
The ID for the tenant or account in a multi- tenancy cloud. |
{loadBalancerId} |
String |
The ID for the load balancer. |
{virtualIpId} |
String |
The ID for the virtual IP. |
This operation does not accept a request body.
Response¶
This operation does not return a response body.