#%RAML 0.8 title: BPI - Load Balancer Service version: v2.0

Last modified date - Oct 28, 2016


baseUri: https://bpi.automation.api.rackspacecloud.com/2.0/{tenant_id}/loadbalancers documentation: - title: API Overview content: | This API exposes methods to view and manage Load Balancer resources - title: Authentication and Authorization content: | Access to this API is granted through a valid token acquired through the Internal Identity service . The token is passed within the *X-Auth-Token* HTTP header. ** Roles required to access API :
** "bpi_lbs_read" is required for GET calls
"bpi_lbs_write" is required for PUT, POST, DELETE calls
- title: Standard errors content: | - **400**: Bad request. - **401**: Authentication error, the user does not have valid authentication details. - **403**: Forbidden, you are not authorized to view this resource. - **404**: The page or resource requested does not exist. - **500**: An indeterminate error occurred. This is caused by an unexpected error. - **501**: Retrieving a list of details is not supported and/or not implemented. - **510**: An indeterminate error occurred. This is caused by an unexpected error. baseUriParameters: tenant_id: displayName: Tenant ID description: | The account number associated with the device_id type: integer mediaType: application/json securitySchemes: - internalIdentity: description: | Rackspace Internal Identity authentication type: x-auth-token describedBy: headers: X-Auth-Token: description: | Used to send a valid Identity access token. type: string responses: 401: description: | Bad or expired token. To fix, you should re-authenticate the user. 403: description: | User Doesn't have the required role. settings: identityServiceUri: https://identity-internal.api.rackspacecloud.com/v2.0/ securedBy: [internalIdentity] /{device_id}: displayName: Loadbalancer API Calls get: description: Returns a complete info about loadbalancer responses: 200: body: application/json: example: !include devices.sample 404: body: application/json: example: !include error.sample /ha: displayName: Information about High Availability configuration. get: description: High Availability template. responses: 200: body: application/json: example: | { "message": "This is a test template for High Availability" } /vips: displayName: VIPs configured to devices get: description: VIPs in a device for the given device id responses: 200: body: application/json: example: !include vips.sample post: description: Create a new VIP. body: application/json: example: !include create_vip.sample responses: 202: body: application/json: example: !include event.sample /{vip_id}: displayName: VIP Information for given VIP id. get: description: Information about single VIP. responses: 200: body: application/json: example: !include vip.sample put: description: Update VIP information. body: application/json: example: !include create_vip.sample responses: 202: body: application/json: example: !include event.sample delete: description: Delete VIP. body: application/json: example: | { "account_number": req"", "comment": req"comment" } responses: 202: body: application/json: example: !include event.sample /nodes: displayName: Display nodes configured to a given vip id. get: description: List nodes for single VIP. responses: 200: body: application/json: example: !include nodes.sample /{node_id}: displayName: Bind/Unbind given node_id with vip. post: description: Bind given node_id with VIP. body: application/json: example: | { "account_number": req"" } responses: 202: body: application/json: example: !include event.sample delete: description: Unbind given node_id from VIP. body: application/json: example: | { "account_number": req"" } responses: 202: body: application/json: example: !include event.sample /configuration: displayName: Activate/Deactivate VIP. post: description: Activate the VIP. body: application/json: example: | { "account_number": req"" } responses: 202: body: application/json: example: !include event.sample delete: description: Deactivate the VIP. body: application/json: example: | { "account_number": req"" } responses: 202: body: application/json: example: !include event.sample /stats: displayName: Display stats for given vip id. get: description: Statistics for single VIP. responses: 200: body: application/json: example: !include stats.sample /nodes: displayName: Information about Nodes. get: description: Nodes in a device for the given device id responses: 200: body: application/json: example: !include node_device.sample post: description: Create a new node. body: application/json: example: !include create_node.sample responses: 202: body: application/json: example: !include event.sample /{node_id}: displayName: Information about a particular node. get: description: Node Information responses: 200: body: application/json: example: !include node_info.sample put: description: Update node configuration. body: application/json: example: !include update_node.sample responses: 202: body: application/json: example: !include event.sample delete: description: Delete the Node. body: application/json: example: | { "account_number": req"" } responses: 202: body: application/json: example: !include event.sample /configuration: displayName: Activate/Deactivate node. post: description: Activate the node. body: application/json: example: | { "account_number": req"" } responses: 202: body: application/json: example: !include event.sample delete: description: Deactivate the node. body: application/json: example: | { "account_number": req"" } responses: 202: body: application/json: example: !include event.sample /stats: displayName: Statistics for node. get: description: Display the stats for given node_id responses: 200: body: application/json: example: !include node_stat.sample /events: displayName: In flight requests (events) for asyncronous calls to create or modify load balancer resources. get: description: Returns a list of events. responses: 200: body: application/json: example: !include events.sample /{event_id}: displayName: Details for a specific event. get: description: Returns a specfic event info. responses: 200: body: application/json: example: !include event.sample