This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
promise:apis_b_release [2015/11/27 10:44] Bertrand Souville created |
promise:apis_b_release [2016/02/01 11:06] (current) Bertrand Souville |
||
---|---|---|---|
Line 1: | Line 1: | ||
==== Supported APIs for B-Release ==== | ==== Supported APIs for B-Release ==== | ||
+ | **1. Add Provider** | ||
- | 1. Add Provider | + | Register a new resource provider (e.g. OpenStack) into reservation system. |
- | Register a new resource provider (e.g. OpenStack) into reservation system. See pkgcloud lib for list of supported providers. | + | Request parameters |
+ | ^ Name ^ Type ^ Description ^ | ||
+ | | provider-type | Enumeration | Name of the resource provider | | ||
+ | | endpoint | URI | Target URL endpoint for the resource provider | | ||
+ | | username | String | User name | | ||
+ | | password | String | Password | | ||
+ | | region | String | Specified region for the provider | | ||
+ | | tenant.id | String | Id of the tenant | | ||
+ | | tenant.name | String | Name of the tenant | | ||
- | **Request parameters** | + | Response parameters |
- | ^ Parameters ^ Types ^ Description ^ | + | ^ Name ^ Type ^ Description ^ |
- | | provider-type | Enumeration | Name of the resource provider | | + | | provider-id | String | Id of the new resource provider | |
- | | endpoint | URI | Target URL endpoint for the resource provider | | + | | result | Enumeration | Result info | |
- | | username | String | User name | | + | |
- | | password | String | Password | | + | |
- | | region | String | Specified region for the provider (Optional) | | + | |
- | | tenantId | String | Id of the tenant | | + | |
- | | tenantName | String | Name of the tenant | | + | |
- | **Response parameters** | + | **Example request** |
- | ^ Parameters ^ Types ^ Description ^ | + | |
- | | provider-id | Identifier | Identifier of the new resource provider | | + | |
- | | result | Enumeration | Output message (e.g. OK, ERROR} | | + | |
- | + | ||
- | Example request | + | |
{ | { | ||
"provider-type": "openstack", | "provider-type": "openstack", | ||
"endpoint": "http://10.0.2.15:5000/v2.0/tokens", | "endpoint": "http://10.0.2.15:5000/v2.0/tokens", | ||
- | "username": "admin", | + | "username": "promise_user", |
"password": "******", | "password": "******", | ||
"tenant": { | "tenant": { | ||
- | "id": "0d36689a21e24a15a9c543ec8dd86510", | + | "name": "promise" |
- | "name": "admin" | + | |
} | } | ||
} | } | ||
- | Example response | + | **Example response** |
{ | { | ||
- | "provider-id": "1bc96b9c-c316-4854-aa10-9d2bea35508f", | + | "provider-id": "f25ed9cb-de57-43d5-9b4a-a389a1397302", |
"result": "ok" | "result": "ok" | ||
} | } | ||
+ | |||
+ | **2. Create Reservation** | ||
+ | |||
+ | Make a request to the reservation system to reserve resources. | ||
+ | |||
+ | Request parameters | ||
+ | ^ Name ^ Type ^ Description ^ | ||
+ | | zone | String | Id to an availability zone | | ||
+ | | start | DateTime | Timestamp when the consumption of reserved resources can begin | | ||
+ | | end | DateTime | Timestamp when the consumption of reserved resources should end | | ||
+ | | capacity.cores | int16 | Amount of cores to be reserved | | ||
+ | | capacity.ram | int32 | Amount of RAM to be reserved | | ||
+ | | capacity.instances | int16 | Amount of instances to be reserved | | ||
+ | | capacity.addresses | int32 | Amount of public IP addresses to be reserved | | ||
+ | | elements | ResourceElement | List of pre-existing resource elements to be reserved | | ||
+ | |||
+ | Response parameters | ||
+ | ^ Name ^ Type ^ Description ^ | ||
+ | | reservation-id | String | Id of the reservation | | ||
+ | | result | Enumeration | Result info | | ||
+ | | message | String | Output message | | ||
+ | |||
+ | **Example request** | ||
+ | |||
+ | { | ||
+ | "capacity": { | ||
+ | "cores": "5", | ||
+ | "ram": "25600", | ||
+ | "addresses": "3", | ||
+ | "instances": "3" | ||
+ | }, | ||
+ | "start": "2016-02-02T00:00:00Z", | ||
+ | "end": "2016-02-03T00:00:00Z" | ||
+ | } | ||
+ | | ||
+ | **Example response** | ||
+ | |||
+ | { | ||
+ | "reservation-id": "269b2944-9efc-41e0-b067-6898221e8619", | ||
+ | "result": "ok", | ||
+ | "message": "reservation request accepted" | ||
+ | } | ||
+ | |||
+ | **3. Update Reservation** | ||
+ | |||
+ | Update reservation details for an existing reservation. | ||
+ | |||
+ | Request parameters | ||
+ | ^ Name ^ Type ^ Description ^ | ||
+ | | reservation-id | String | Id of the reservation to be updated | | ||
+ | | zone | String | Id to an availability zone | | ||
+ | | start | DateTime | Updated timestamp when the consumption of reserved resources can begin | | ||
+ | | end | DateTime | Updated timestamp when the consumption of reserved resources should end | | ||
+ | | capacity.cores | int16 | Updated amount of cores to be reserved | | ||
+ | | capacity.ram | int32 | Updated amount of RAM to be reserved | | ||
+ | | capacity.instances | int16 | Updated amount of instances to be reserved | | ||
+ | | capacity.addresses | int32 | Updated amount of public IP addresses to be reserved | | ||
+ | | elements | ResourceElement | Updated list of pre-existing resource elements to be reserved | | ||
+ | |||
+ | Response parameters | ||
+ | ^ Name ^ Type ^ Description ^ | ||
+ | | result | Enumeration | Result info | | ||
+ | | message | String | Output message | | ||
+ | |||
+ | |||
+ | **Example request** | ||
+ | |||
+ | { | ||
+ | "reservation-id": "269b2944-9efv-41e0-b067-6898221e8619", | ||
+ | "capacity": { | ||
+ | "cores": "1", | ||
+ | "ram": "5120", | ||
+ | "addresses": "1", | ||
+ | "instances": "1" | ||
+ | } | ||
+ | } | ||
+ | | ||
+ | **Example response** | ||
+ | | ||
+ | { | ||
+ | "result": "ok", | ||
+ | "message": "reservation update successful" | ||
+ | } | ||
+ | | ||
+ | **4. Cancel Reservation** | ||
+ | |||
+ | Cancel the reservation. | ||
+ | |||
+ | Request parameters | ||
+ | ^ Name ^ Type ^ Description ^ | ||
+ | | reservation-id | String | Id of the reservation to be canceled | | ||
+ | |||
+ | Response parameters | ||
+ | ^ Name ^ Type ^ Description ^ | ||
+ | | result | Enumeration | Result info | | ||
+ | | message | String | Output message | | ||
+ | |||
+ | |||
+ | **Example request** | ||
+ | |||
+ | { | ||
+ | "reservation-id": "269b2944-9efv-41e0-b067-6898221e8619" | ||
+ | } | ||
+ | |||
+ | **Example response** | ||
+ | |||
+ | { | ||
+ | "result": "ok", | ||
+ | "message": "reservation canceled" | ||
+ | } | ||
+ | |||
+ | **5. Query Reservation** | ||
+ | |||
+ | Query the reservation system to return matching reservation(s). | ||
+ | |||
+ | Request parameters | ||
+ | ^ Name ^ Type ^ Description ^ | ||
+ | | zone | String | Id to an availability zone | | ||
+ | | show-utilization | Boolean | Show capacity utilization | | ||
+ | | without | ResourceCollection | Excludes specified collection identifiers from the result | | ||
+ | | elements.some | ResourceElement | Query for ResourceCollection(s) that contain some or more of these element(s) | | ||
+ | | elements.every | ResourceElement | Query for ResourceCollection(s) that contain all of these element(s) | | ||
+ | | window.start | DateTime | Matches entries that are within the specified start/end window | | ||
+ | | window.end | DateTime | | | ||
+ | | window.scope | Enumeration | Matches entries that start {and/or} end within the time window | | ||
+ | |||
+ | Response parameters | ||
+ | ^ Name ^ Type ^ Description ^ | ||
+ | | reservations | ResourceReservation | List of matching reservations | | ||
+ | | utilization | CapacityUtilization | Capacity utilization over time | | ||
+ | |||
+ | |||
+ | **Example request** | ||
+ | |||
+ | { | ||
+ | "show-utilization": false, | ||
+ | "window": { | ||
+ | "start": "2016-02-01T00:00:00Z", | ||
+ | "end": "2016-02-04T00:00:00Z" | ||
+ | } | ||
+ | } | ||
+ | |||
+ | |||
+ | **Example response** | ||
+ | |||
+ | { | ||
+ | "reservations": [ | ||
+ | "269b2944-9efv-41e0-b067-6898221e8619" | ||
+ | ], | ||
+ | "utilization": [] | ||
+ | } | ||
+ | | ||
+ | **6. Create Instance** | ||
+ | |||
+ | Create an instance of specified resource(s) utilizing capacity from the pool. | ||
+ | |||
+ | Request parameters | ||
+ | ^ Name ^ Type ^ Description ^ | ||
+ | | provider-id | String | Id of the resource provider | | ||
+ | | reservation-id | String | Id of the resource reservation | | ||
+ | | name | String | Name of the instance | | ||
+ | | image | String | Id of the image | | ||
+ | | networks | Uuid | List of network uuids | | ||
+ | |||
+ | Response parameters | ||
+ | ^ Name ^ Type ^ Description ^ | ||
+ | | instance-id | String | Id of the instance | | ||
+ | | result | Enumeration | Result info | | ||
+ | | message | String | Output message | | ||
+ | |||
+ | **Example request** | ||
+ | |||
+ | { | ||
+ | "provider-id": "f25ed9cb-de57-43d5-9b4a-a389a1397302", | ||
+ | "name": "vm1", | ||
+ | "image": "ddffc6f5-5c86-4126-b0fb-2c71678633f8", | ||
+ | "flavor": "91bfdf57-863b-4b73-9d93-fc311894b902" | ||
+ | } | ||
+ | |||
+ | **Example response** | ||
+ | |||
+ | { | ||
+ | "instance-id": "82572779-896b-493f-92f6-a63008868250", | ||
+ | "result": "ok", | ||
+ | "message": "created-instance request accepted" | ||
+ | } | ||
+ | |||
+ | **7. Destroy Instance** | ||
+ | |||
+ | Destroy an instance of resource utilization and release it back to the pool. | ||
+ | |||
+ | Request parameters | ||
+ | ^ Name ^ Type ^ Description ^ | ||
+ | | instance-id | String | Id of the instance to be destroyed | | ||
+ | |||
+ | Response parameters | ||
+ | |||
+ | ^ Name ^ Type ^ Description ^ | ||
+ | | result | Enumeration | Result info | | ||
+ | | message | String | Output message | | ||
+ | |||
+ | **Example request** | ||
+ | |||
+ | { | ||
+ | "instance-id": "82572779-896b-493f-92f6-a63008868250" | ||
+ | } | ||
+ | |||
+ | **Example response** | ||
+ | |||
+ | { | ||
+ | "result": "ok", | ||
+ | "message": "instance destroyed and resource released back to pool" | ||
+ | } | ||
+ | |||
+ | **8. Decrease Capacity** | ||
+ | |||
+ | Decrease total capacity for the reservation system for a given time window. | ||
+ | |||
+ | Request parameters | ||
+ | ^ Name ^ Type ^ Description ^ | ||
+ | | source | String | Id of the resource container | | ||
+ | | start | DateTime | start/end defines the time window when total capacity is decreased | | ||
+ | | end | DateTime | | | ||
+ | | capacity.cores | int16 | Decreased amount of cores | | ||
+ | | capacity.ram | int32 | Decreased amount of RAM | | ||
+ | | capacity.instances | int16 | Decreased amount of instances | | ||
+ | | capacity.addresses | int32 | Decreased amount of public IP addresses | | ||
+ | |||
+ | |||
+ | Response parameters | ||
+ | ^ Name ^ Type ^ Description ^ | ||
+ | | pool-id | String | Id of the resource pool | | ||
+ | | result | Enumeration | Result info | | ||
+ | | message | String | Output message | | ||
+ | |||
+ | |||
+ | **Example request** | ||
+ | |||
+ | { | ||
+ | "source": "ResourcePool:4085f0da-8030-4252-a0ff-c6f93870eb5f", | ||
+ | "capacity": { | ||
+ | "cores": "3", | ||
+ | "ram": "5120", | ||
+ | "addresses": "1" | ||
+ | } | ||
+ | } | ||
+ | |||
+ | |||
+ | **Example response** | ||
+ | |||
+ | { | ||
+ | "pool-id": "c63b2a41-bcc6-42f6-8254-89d633e1bd0b", | ||
+ | "result": "ok", | ||
+ | "message": "capacity decrease successful" | ||
+ | } | ||
+ | |||
+ | |||
+ | **9. Increase Capacity** | ||
+ | |||
+ | Increase total capacity for the reservation system for a given time window. | ||
+ | |||
+ | Request parameters | ||
+ | ^ Name ^ Type ^ Description ^ | ||
+ | | source | String | Id of the resource container | | ||
+ | | start | DateTime | start/end defines the time window when total capacity is increased | | ||
+ | | end | DateTime | | | ||
+ | | capacity.cores | int16 | Increased amount of cores | | ||
+ | | capacity.ram | int32 | Increased amount of RAM | | ||
+ | | capacity.instances | int16 | Increased amount of instances | | ||
+ | | capacity.addresses | int32 | Increased amount of public IP addresses | | ||
+ | |||
+ | Response parameters | ||
+ | ^ Name ^ Type ^ Description ^ | ||
+ | | pool-id | String | Id of the resource pool | | ||
+ | | result | Enumeration | Result info | | ||
+ | | message | String | Output message | | ||
+ | |||
+ | |||
+ | **Example request** | ||
+ | |||
+ | { | ||
+ | "source": "ResourceProvider:f6f13fe3-0126-4c6d-a84f-15f1ab685c4f", | ||
+ | "capacity": { | ||
+ | "cores": "20", | ||
+ | "ram": "51200", | ||
+ | "instances": "10", | ||
+ | "addresses": "10" | ||
+ | } | ||
+ | } | ||
+ | |||
+ | |||
+ | **Example response** | ||
+ | |||
+ | { | ||
+ | "pool-id": "279217a4-7461-4176-bf9d-66770574ca6a", | ||
+ | "result": "ok", | ||
+ | "message": "capacity increase successful" | ||
+ | } | ||
+ | |||
+ | |||
+ | **10. Query Capacity** | ||
+ | |||
+ | Query for capacity information about a specified resource collection. | ||
+ | |||
+ | Request parameters | ||
+ | ^ Name ^ Type ^ Description ^ | ||
+ | | capacity | Enumeration | Return total or reserved or available or usage capacity information | | ||
+ | | zone | String | Id to an availability zone | | ||
+ | | show-utilization | Boolean | Show capacity utilization | | ||
+ | | without | ResourceCollection | Excludes specified collection identifiers from the result | | ||
+ | | elements.some | ResourceElement | Query for ResourceCollection(s) that contain some or more of these element(s) | | ||
+ | | elements.every | ResourceElement | Query for ResourceCollection(s) that contain all of these element(s) | | ||
+ | | window.start | DateTime | Matches entries that are within the specified start/end window | | ||
+ | | window.end | DateTime | | | ||
+ | | window.scope | Enumeration | Matches entries that start {and/or} end within the time window" | | ||
+ | |||
+ | Response parameters | ||
+ | ^ Name ^ Type ^ Description ^ | ||
+ | | collections | ResourceCollection | List of matching collections | | ||
+ | | utilization | CapacityUtilization | Capacity utilization over time | | ||
+ | |||
+ | |||
+ | **Example request** | ||
+ | |||
+ | { | ||
+ | "show-utilization": false | ||
+ | } | ||
+ | |||
+ | |||
+ | **Example response** | ||
+ | |||
+ | { | ||
+ | "collections": [ | ||
+ | "ResourcePool:279217a4-7461-4176-bf9d-66770574ca6a" | ||
+ | ], | ||
+ | "utilization": [] | ||
+ | } | ||
+ | |