This is an old revision of the document!
1. Add Provider
Register a new resource provider (e.g. OpenStack) into reservation system.
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 |
Response parameters
Name | Type | Description |
---|---|---|
provider-id | String | Id of the new resource provider |
result | Enumeration | Result info |
Example request
{ "provider-type": "openstack", "endpoint": "http://10.0.2.15:5000/v2.0/tokens", "username": "promise_user", "password": "******", "tenant": { "name": "promise" } }
Example response
{ "provider-id": "f25ed9cb-de57-43d5-9b4a-a389a1397302", "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" }, "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" } }
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 (WIP)
Create an instance of specified resource(s) utilizing capacity from the pool.
7. Destroy Instance (WIP)
Destroy an instance of resource utilization and release it back to the 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": "ResourcePool:4085f0da-8030-4252-a0ff-c6f93870eb5f", "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": [] }