Jump to: navigation, search

Difference between revisions of "Sahara/ApiProposal"

m (Sergey Lukjanov moved page Savanna/ApiProposal to Sahara/ApiProposal: Savanna project was renamed due to the trademark issues.)
 
(9 intermediate revisions by one other user not shown)
Line 2: Line 2:
  
 
Please recognize that this is only a proposed DSL to be considered for development. This specification is NOT YET IMPLEMENTED.
 
Please recognize that this is only a proposed DSL to be considered for development. This specification is NOT YET IMPLEMENTED.
 +
 +
See: [https://blueprints.launchpad.net/savanna/+spec/pluggable-cluster-provisioning Launchpad blueprint for Pluggable cluster provisioning mechanism]
  
 
== List of API Calls ==
 
== List of API Calls ==
Line 172: Line 174:
  
 
==== List clusters ====
 
==== List clusters ====
Verb
+
{| class="wikitable"
URI
+
|-
Description
+
! Verb !! URI !! Description !! Representations
Representations
+
|-
GET
+
| GET || /clusters || List all the clusters for the user || JSON, XML
/clusters
+
|}
List all the clusters for the user
 
JSON, XML
 
  
 
===== Request =====
 
===== Request =====
Line 231: Line 231:
  
  
Response Code Message
+
{| class="wikitable"
200 Success
+
|-
 +
! Response Code !! Message
 +
|-
 +
| 200 || Success
 +
|}
  
  
 
==== Get cluster details ====
 
==== Get cluster details ====
Verb
+
{| class="wikitable"
URI
+
|-
Description
+
! Verb !! URI !! Description !! Representations
Representations
+
|-
GET
+
| GET || /clusters/{clusterId} || Get details about a cluster || JSON, XML
/clusters/{clusterId}
+
|}
Get details about a cluster
 
JSON, XML
 
  
 
===== Request =====
 
===== Request =====
Line 272: Line 274:
 
     }
 
     }
  
Response Code Message
+
{| class="wikitable"
200 Success
+
|-
404 Resource not found
+
! Response Code !! Message
 +
|-
 +
| 200 || Success
 +
|-
 +
| 404 || Resource not found
 +
|}
  
 
==== Perform actions on a cluster ====
 
==== Perform actions on a cluster ====
Verb
+
{| class="wikitable"
URI
+
|-
Description
+
! Verb !! URI !! Description !! Representations
Representations
+
|-
POST
+
| POST
/clusters/{clusterId}/action
+
|| /clusters/{clusterId}/action
Perform actions on a cluster (e.g. resize)
+
|| Perform actions on a cluster (e.g. resize)
JSON, XML
+
|| JSON, XML
 +
|}
 +
 
  
 
===== Request =====
 
===== Request =====
Line 317: Line 326:
 
     }
 
     }
  
Response Code Message
+
{| class="wikitable"
200 Success
+
|-
400 Unacceptable parameters
+
! Response Code !! Message
400 Malformed data
+
|-
404 The resource cannot be found
+
| 200 || Success
409 Invalid state
+
|-
+
| 400 || Unacceptable parameters
 +
|-
 +
| 400 || Malformed data
 +
|-
 +
| 404 || The resource cannot be found
 +
|-
 +
| 409 || Invalid state
 +
|}
  
 
=== Nodes ===
 
=== Nodes ===
 
==== List nodes in a cluster ====
 
==== List nodes in a cluster ====
Verb
+
{| class="wikitable"
URI
+
|-
Description
+
! Verb !! URI !! Description !! Representations
Representations
+
|-
GET
+
| GET || /clusters/{clusterId}/nodes || List all nodes in a cluster || JSON, XML
/clusters/{clusterId}/nodes
+
|}
List all nodes in a cluster
 
JSON, XML
 
  
 
===== Request =====
 
===== Request =====
Line 500: Line 514:
 
     }
 
     }
  
Response Code Message
+
{| class="wikitable"
200 Success
+
|-
404 The resource cannot be found
+
! Response Code !! Message
 +
|-
 +
| 200 || Success
 +
|-
 +
| 404 || The resource cannot be found
 +
|}
  
 
==== Get details about a node ====
 
==== Get details about a node ====
Verb
+
{| class="wikitable"
URI
+
|-
Description
+
! Verb
Representations
+
! URI
GET
+
! Description
/clusters/{clusterId}/nodes/{nodeId}
+
! Representations
Get details about a node in a cluster
+
|-
JSON, XML
+
| GET
 +
|| /clusters/{clusterId}/nodes/{nodeId}
 +
|| Get details about a node in a cluster
 +
|| JSON, XML
 +
|}
  
 
===== Request =====
 
===== Request =====
Line 559: Line 582:
 
     }
 
     }
  
Response Code Message
+
{| class="wikitable"
200 Success
+
|-
404 The resource cannot be found
+
! Response Code !! Message
+
|-
 +
| 200 || Success
 +
|-
 +
| 404 || The resource cannot be found
 +
|}
 +
 
 
=== Profile ===
 
=== Profile ===
 
==== Get information about the current user profile ====
 
==== Get information about the current user profile ====
Verb
+
{| class="wikitable"
URI
+
|-
Description
+
! Verb
Representations
+
! URI
GET
+
! Description
/profile
+
! Representations
Get information about the current user profile
+
|-
JSON, XML
+
| GET
 +
|| /profile
 +
|| Get information about the current user profile
 +
|| JSON, XML
 +
|}
  
 
===== Request =====
 
===== Request =====
Line 602: Line 634:
 
     }
 
     }
  
Response Code Message
+
{| class="wikitable"
200 Success
+
|-
 +
! Response Code !! Message
 +
|-
 +
| 200 ||Success
 +
|}
  
 
==== Update an existing profile ====
 
==== Update an existing profile ====
Verb
+
{| class="wikitable"
URI
+
|-
Description
+
! Verb
Representations
+
! URI
POST
+
! Description
/profile
+
! Representations
Update an existing profile
+
|-
JSON, XML
+
| POST
 +
|| /profile
 +
|| Update an existing profile
 +
|| JSON, XML
 +
|}
  
 
===== Request =====
 
===== Request =====
Line 661: Line 701:
 
}
 
}
  
Response Code Message
+
{| class="wikitable"
200 Success
+
|-
400 Malformed data
+
! Response Code !! Message
400 Unacceptable parameters
+
|-
+
| 200 || Success
 +
|-
 +
| 400 || Malformed data
 +
|-
 +
| 400 || Unacceptable parameters
 +
|}
 +
 
 
=== Flavors ===
 
=== Flavors ===
 
==== List all available flavors ====
 
==== List all available flavors ====
Verb
+
{| class="wikitable"
URI
+
|-
Description
+
! Verb
Representations
+
! URI
GET
+
! Description
/flavors
+
! Representations
List all available flavors
+
|-
JSON, XML
+
| GET
 +
|| /flavors
 +
|| List all available flavors
 +
|| JSON, XML
 +
|}
  
 
===== Request =====
 
===== Request =====
Line 737: Line 787:
 
     }
 
     }
  
Response Code Message
+
{| class="wikitable"
200 Success
+
|-
 +
! Response Code !! Message
 +
|-
 +
| 200 ||Success
 +
|}
  
 
==== Get details about a flavor ====
 
==== Get details about a flavor ====
Verb
+
{| class="wikitable"
URI
+
|-
Description
+
! Verb
Representations
+
! URI
GET
+
! Description
/flavors/{flavorId}
+
! Representations
Get details about a flavor
+
|-
JSON, XML
+
| GET
 +
|| /flavors/{flavorId}
 +
|| Get details about a flavor
 +
|| JSON, XML
 +
|}
  
 
===== Request =====
 
===== Request =====
Line 774: Line 832:
 
     }
 
     }
  
Response Code Message
+
{| class="wikitable"
200 Success
+
|-
404 The resource cannot be found
+
! Response Code !! Message
 +
|-
 +
| 200 || Success
 +
|-
 +
| 404 || The resource cannot be found
 +
|}
  
 
=== Types ===
 
=== Types ===
 
==== List all available cluster types ====
 
==== List all available cluster types ====
Verb
+
{| class="wikitable"
URI
+
|-
Description
+
! Verb
Representations
+
! URI
GET
+
! Description
/types
+
! Representations
List all available cluster types
+
|-
JSON, XML
+
| GET
 +
|| /types
 +
|| List all available cluster types
 +
|| JSON, XML
 +
|}
  
 
===== Request =====
 
===== Request =====
Line 813: Line 880:
 
     }
 
     }
  
Response Code Message
+
{| class="wikitable"
200 Success
+
|-
 +
! Response Code !! Message
 +
|-
 +
| 200 || Success
 +
|}
  
 
==== Get details about a cluster type ====
 
==== Get details about a cluster type ====
Verb
+
{| class="wikitable"
URI
+
|-
Description
+
! Verb
Representations
+
! URI
GET
+
! Description
/types/{typeId}
+
! Representations
Get details about a cluster type
+
|-
JSON, XML
+
| GET
 +
|| /types/{typeId}
 +
|| Get details about a cluster type
 +
|| JSON, XML
 +
|}
  
 
===== Request =====
 
===== Request =====
Line 865: Line 940:
 
     }
 
     }
  
Response Code Message
+
{| class="wikitable"
200 Success
+
|-
404 The resource cannot be found
+
! Response Code !! Message
 +
|-
 +
| 200 || Success
 +
|-
 +
| 404 || The resource cannot be found
 +
|}
  
 
==== List all the supported flavors for a cluster type ====
 
==== List all the supported flavors for a cluster type ====
 
   
 
   
Verb
+
{| class="wikitable"
URI
+
|-
Description
+
! Verb
Representations
+
! URI
GET
+
! Description
/types/{typeId}/flavors
+
! Representations
List all the supported flavors for a cluster type
+
|-
JSON, XML
+
| GET
 +
|| /types/{typeId}/flavors
 +
|| List all the supported flavors for a cluster type
 +
|| JSON, XML
 +
|}
  
 
===== Request =====
 
===== Request =====
Line 940: Line 1,024:
 
     }
 
     }
 
   
 
   
Response Code Message
+
{| class="wikitable"
200 Success
+
|-
404 The resource cannot be found
+
! Response Code !! Message
 +
|-
 +
| 200 || Success
 +
|-
 +
| 404 || The resource cannot be found
 +
|}
  
 
==== List all the supported cluster types for a flavor ====
 
==== List all the supported cluster types for a flavor ====
Verb
+
{| class="wikitable"
URI
+
|-
Description
+
! Verb
Representations
+
! URI
GET
+
! Description
/flavors/{flavorId}/types
+
! Representations
List all the supported cluster types for a flavor
+
|-
JSON, XML
+
| GET
 +
|| /flavors/{flavorId}/types
 +
|| List all the supported cluster types for a flavor
 +
|| JSON, XML
 +
|}
  
 
===== Request =====
 
===== Request =====
Line 993: Line 1,086:
 
     }
 
     }
  
Response Code Message
+
{| class="wikitable"
200 Success
+
|-
404 The resource cannot be found
+
! Response Code !! Message
 +
|-
 +
| 200 || Success
 +
|-
 +
| 404 || The resource cannot be found
 +
|}
 
   
 
   
 
=== Limits ===
 
=== Limits ===
 
==== List all the resource limits for the user ====
 
==== List all the resource limits for the user ====
Verb
+
{| class="wikitable"
URI
+
|-
Description
+
! Verb
Representations
+
! URI
GET
+
! Description
/limits
+
! Representations
List all the resource limits for the user
+
|-
JSON, XML
+
| GET
 +
|| /limits
 +
|| List all the resource limits for the user
 +
|| JSON, XML
 +
|}
  
 
===== Request =====
 
===== Request =====
Line 1,046: Line 1,148:
 
     }
 
     }
  
Response Code Message
+
{| class="wikitable"
200 Success
+
|-
 +
! Response Code !! Message
 +
|-
 +
| 200 || Success
 +
|}

Latest revision as of 15:41, 7 March 2014

Proposal Only

Please recognize that this is only a proposed DSL to be considered for development. This specification is NOT YET IMPLEMENTED.

See: Launchpad blueprint for Pluggable cluster provisioning mechanism

List of API Calls

Verb URI Description Representations
POST /clusters Create a cluster JSON, XML
DELETE /clusters/{clusterId} Delete a cluster JSON, XML
GET /clusters List all the clusters for the user JSON, XML
GET /clusters/{clusterId} Get details about a cluster JSON, XML
POST /clusters/{clusterId}/action Perform actions on a cluster (e.g. resize) JSON, XML
GET /clusters/{clusterId}/nodes List all nodes in a cluster JSON, XML
GET /clusters/{clusterId}/nodes/{nodeId} Get details about a node in a cluster JSON, XML
GET /profile Get information about the current user profile JSON, XML
POST /profile Update an existing profile JSON, XML
GET /limits List all the resource limits for the user JSON, XML
GET /flavors List all available flavors JSON, XML
GET /flavors/{flavorId} Get details about a flavor JSON, XML
GET /flavors/{flavorid}/types List the supported cluster types for a flavor JSON, XML
GET /types List all available cluster types JSON, XML
GET /types/{typeId} Get details about a cluster type JSON, XML
GET /types/{typeid}/flavors List the supported flavors for a cluster type JSON, XML

Common Error Responses

Response Code Element Message
401 unauthorized Not authorized.
403 forbidden Access is denied to this resource.
404 itemNotFound The resource could not be found.
500 fault (Not implemented yet) An unknown exception occurred.

API Call Details

Clusters

Create a cluster

Verb URI Description Representations
POST /clusters Create a cluster JSON, XML
Request
   {
       "cluster": {
           "name": "slice",
           "clusterType": "hadoop",
           "flavorId": "2",
           "nodeCount": 5
       }
   }


Response
   {
       "cluster": {
           "id": "db478fc1-2d86-4597-8010-cbe787bbbc41",
           "created": "2012-12-27T10:10:10Z",
           "updated": "",
           "name": "slice",
           "clusterType": "hadoop",
           "flavorId": "2",
           "nodeCount": 5,
           "status": "BUILD",
           "links": [
               {
                   "rel": "self",
                   "href": "https://bigdata.api.rackspacecloud.com/v1.0/1234/clusters/db478fc1-2d86-4597-8010-cbe787bbbc41"
               },
               {
                   "rel": "bookmark",
                   "href": "https://bigdata.api.rackspacecloud.com/1234/clusters/db478fc1-2d86-4597-8010-cbe787bbbc41"
               }
           ]
       }
   }


Response Code Message
200 Success
400 Invalid Response Body
400 User profile needs to be created
400 Invalid Node Count
400 Not valid flavor
400 Malformed Data
413 Over Limits (Quota Exceeded)

Delete a cluster

Verb URI Description Representations
DELETE /clusters/{clusterid} Delete a cluster JSON, XML
Request

N/A

Response
   {
       "cluster": {
           "id": "db478fc1-2d86-4597-8010-cbe787bbbc41",
           "created": "2012-12-27T10:10:10Z",
           "updated": "",
           "name": "slice",
           "clusterType": "hadoop",
           "flavorId": "2",
           "nodeCount": 5,
           "status": "DELETING",
           "links": [
               {
                   "rel": "self",
                   "href": "https://bigdata.api.rackspacecloud.com/v1.0/1234/clusters/db478fc1-2d86-4597-8010-cbe787bbbc41"
               },
               {
                   "rel": "bookmark",
                   "href": "https://bigdata.api.rackspacecloud.com/1234/clusters/db478fc1-2d86-4597-8010-cbe787bbbc41"
               }
           ]
       }
   }
Response Code Message
202 Accepted
400 Cannot delete
404 Resource not found
409 Invalid state

List clusters

Verb URI Description Representations
GET /clusters List all the clusters for the user JSON, XML
Request

N/A

Response
   {
       "clusters": [
           {
               "id": "db478fc1-2d86-4597-8010-cbe787bbbc41",
               "name": "slice",
               "created": "2012-12-27T10:10:10Z",
               "updated": "2012-12-27T10:15:10Z",
               "clusterType": "hadoop",
               "flavorId": "2",
               "nodeCount": 5,
               "status": "ACTIVE",
               "links": [
                   {
                       "rel": "self",
                       "href": "https://bigdata.api.rackspacecloud.com/v1.0/1234/clusters/db478fc1-2d86-4597-8010-cbe787bbbc41"
                   },
                   {
                       "rel": "bookmark",
                       "href": "https://bigdata.api.rackspacecloud.com/1234/clusters/db478fc1-2d86-4597-8010-cbe787bbbc41"
                   }
               ]
           },
           {
               "id": "ac111111-2d86-4597-8010-cbe787bbbc41",
               "name": "real",
               "created": "2012-12-27T10:10:10Z",
               "updated": "2012-12-27T10:15:10Z",
               "clusterType": "hbase",
               "flavorId": "4",
               "nodeCount": 20,
               "status": "ACTIVE",
               "links": [
                   {
                       "rel": "self",
                       "href": "https://bigdata.api.rackspacecloud.com/v1.0/1234/clusters/ac111111-2d86-4597-8010-cbe787bbbc41"
                   },
                   {
                       "rel": "bookmark",
                       "href": "https://bigdata.api.rackspacecloud.com/1234/clusters/ac111111-2d86-4597-8010-cbe787bbbc41"
                   }
               ]
           }
       ]
   }


Response Code Message
200 Success


Get cluster details

Verb URI Description Representations
GET /clusters/{clusterId} Get details about a cluster JSON, XML
Request

N/A

Response
   {
       "cluster": {
           "id": "db478fc1-2d86-4597-8010-cbe787bbbc41",
           "created": "2012-12-27T10:10:10Z",
           "updated": "2012-12-27T10:20:10Z",
           "name": "slice",
           "clusterType": "hadoop",
           "flavorId": "2",
           "nodeCount": 5,
           "status": "ACTIVE",
           "links": [
               {
                   "rel": "self",
                   "href": "https://bigdata.api.rackspacecloud.com/v1.0/1234/clusters/db478fc1-2d86-4597-8010-cbe787bbbc41"
               },
               {
                   "rel": "bookmark",
                   "href": "https://bigdata.api.rackspacecloud.com/1234/clusters/db478fc1-2d86-4597-8010-cbe787bbbc41"
               }
           ]
       }
   }
Response Code Message
200 Success
404 Resource not found

Perform actions on a cluster

Verb URI Description Representations
POST /clusters/{clusterId}/action Perform actions on a cluster (e.g. resize) JSON, XML


Request
   {
       "resize": {
           "nodeCount": 10
       }
   }
Response
   {
       "cluster": {
           "id": "db478fc1-2d86-4597-8010-cbe787bbbc41",
           "created": "2012-12-27T10:10:10Z",
           "updated": "2012-12-27T16:20:10Z",
           "name": "slice",
           "clusterType": "hadoop",
           "flavorId": "2",
           "nodeCount": 10,
           "status": "RESIZING",
           "links": [
               {
                   "rel": "self",
                   "href": "https://bigdata.api.rackspacecloud.com/v1.0/1234/clusters/db478fc1-2d86-4597-8010-cbe787bbbc41"
               },
               {
                   "rel": "bookmark",
                   "href": "https://bigdata.api.rackspacecloud.com/1234/clusters/db478fc1-2d86-4597-8010-cbe787bbbc41"
               }
           ]
       }
   }
Response Code Message
200 Success
400 Unacceptable parameters
400 Malformed data
404 The resource cannot be found
409 Invalid state

Nodes

List nodes in a cluster

Verb URI Description Representations
GET /clusters/{clusterId}/nodes List all nodes in a cluster JSON, XML
Request

N/A

Response
   {
       "nodes": [
           {
               "id": "000",
               "created": "2012-12-27T10:10:10Z",
               "role": "NAMENODE",
               "name": "NAMENODE-1",
               "status": "ACTIVE",
               "addresses": {
                   "public": [
                       {
                           "addr": "168.x.x.3",
                           "version": 4
                       }
                   ],
                   "private": [
                       {
                           "addr": "10.x.x.3",
                           "version": 4
                       }
                   ]
               },
               "services": {
                   "namenode": {},
                   "jobtracker": {},
                   "ssh": {
                       "uri": "ssh://user@168.x.x.3"
                   }
               },
               "links": [
                   {
                       "rel": "self",
                       "href": "https://bigdata.api.rackspacecloud.com/v1.0/1234/clusters/db478fc1-2d86-4597-8010-cbe787bbbc41/nodes/000"
                   },
                   {
                       "rel": "bookmark",
                       "href": "https://bigdata.api.rackspacecloud.com/1234/clusters/db478fc1-2d86-4597-8010-cbe787bbbc41/nodes/000"
                   }
               ]
           },
           {
               "id": "aaa",
               "role": "GATEWAY",
               "name": "GATEWAY-1",
               "status": "ACTIVE",
               "addresses": {
                   "public": [
                       {
                           "addr": "168.x.x.4",
                           "version": 4
                       }
                   ],
                   "private": [
                       {
                           "addr": "10.x.x.4",
                           "version": 4
                       }
                   ]
               },
               "services": {
                   "pig": {},
                   "hive": {},
                   "ssh": {
                       "uri": "ssh://user@168.x.x.4"
                   },
                   "status": {
                       "uri": "http://10.x.x.4"
                   },
                   "hdfs-scp": {
                       "uri": "scp://user@168.x.x.4:9022"
                   }
               },
               "links": [
                   {
                       "rel": "self",
                       "href": "https://bigdata.api.rackspacecloud.com/v1.0/1234/clusters/db478fc1-2d86-4597-8010-cbe787bbbc41/nodes/aaa"
                   },
                   {
                       "rel": "bookmark",
                       "href": "https://bigdata.api.rackspacecloud.com/1234/clusters/db478fc1-2d86-4597-8010-cbe787bbbc41/nodes/aaa"
                   }
               ]
           },
           {
               "id": "bbb",
               "role": "DATANODE",
               "name": "DATANODE-1",
               "status": "ACTIVE",
               "addresses": {
                   "public": [
                       {
                           "addr": "168.x.x.5",
                           "version": 4
                       }
                   ],
                   "private": [
                       {
                           "addr": "10.x.x.5",
                           "version": 4
                       }
                   ]
               },
               "services": {
                   "datanode": {},
                   "tasktracker": {},
                   "ssh": {
                       "uri": "ssh://user@168.x.x.5"
                   }
               },
               "links": [
                   {
                       "rel": "self",
                       "href": "https://bigdata.api.rackspacecloud.com/v1.0/1234/clusters/db478fc1-2d86-4597-8010-cbe787bbbc41/nodes/bbb"
                   },
                   {
                       "rel": "bookmark",
                       "href": "https://bigdata.api.rackspacecloud.com/1234/clusters/db478fc1-2d86-4597-8010-cbe787bbbc41/nodes/bbb"
                   }
               ]
           },
           {
               "id": "ccc",
               "role": "DATANODE",
               "name": "DATANODE-2",
               "status": "ACTIVE",
               "addresses": {
                   "public": [
                       {
                           "addr": "168.x.x.6",
                           "version": 4
                       }
                   ],
                   "private": [
                       {
                           "addr": "10.x.x.6",
                           "version": 4
                       }
                   ]
               },
               "services": {
                   "datanode": {},
                   "tasktracker": {},
                   "ssh": {
                       "uri": "ssh://user@168.x.x.6"
                   }
               },
               "links": [
                   {
                       "rel": "self",
                       "href": "https://bigdata.api.rackspacecloud.com/v1.0/1234/clusters/db478fc1-2d86-4597-8010-cbe787bbbc41/nodes/ccc"
                   },
                   {
                       "rel": "bookmark",
                       "href": "https://bigdata.api.rackspacecloud.com/1234/clusters/db478fc1-2d86-4597-8010-cbe787bbbc41/nodes/ccc"
                   }
               ]
           }
       ]
   }
Response Code Message
200 Success
404 The resource cannot be found

Get details about a node

Verb URI Description Representations
GET /clusters/{clusterId}/nodes/{nodeId} Get details about a node in a cluster JSON, XML
Request

N/A

Response
   {
       "node": {
           "id": "000",
           "created": "2012-12-27T10:10:10Z",
           "role": "NAMENODE",
           "name": "NAMENODE-1",
           "status": "ACTIVE",
           "addresses": {
               "public": [
                   {
                       "addr": "168.x.x.3",
                       "version": 4
                   }
               ],
               "private": [
                   {
                       "addr": "10.x.x.3",
                       "version": 4
                   }
               ]
           },
           "services": {
               "namenode": {},
               "jobtracker": {},
               "ssh": {
                   "uri": "ssh://user@168.x.x.3"
               }
           },
           "links": [
               {
                   "rel": "self",
                   "href": "https://bigdata.api.rackspacecloud.com/v1.0/1234/clusters/db478fc1-2d86-4597-8010-cbe787bbbc41/nodes/000"
               },
               {
                   "rel": "bookmark",
                   "href": "https://bigdata.api.rackspacecloud.com/1234/clusters/db478fc1-2d86-4597-8010-cbe787bbbc41/nodes/000"
               }
           ]
       }
   }
Response Code Message
200 Success
404 The resource cannot be found

Profile

Get information about the current user profile

Verb URI Description Representations
GET /profile Get information about the current user profile JSON, XML
Request

N/A

Response
   {
       "profile": {
           "username": "john.doe",
           "user_id": "12346",
           "tenant_id": "123456",
           "sshkeys": [
               {
                   "name": "t@test"
               }
           ],
           "cloudCredentials": {},
           "links": [
               {
                   "rel": "self",
                   "href": "https://bigdata.api.rackspacecloud.com/v1.0/123456/profile"
               },
               {
                   "rel": "bookmark",
                   "href": "https://bigdata.api.rackspacecloud.com/123456/profile"
               }
           ]
       }
   }
Response Code Message
200 Success

Update an existing profile

Verb URI Description Representations
POST /profile Update an existing profile JSON, XML
Request
   {
       "profile": {
           "username": "john.doe",
           "password": "j0Hnd03",
           "sshkeys": [
               {
                   "name": "t@test",
                   "key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCtUFnkFrqDDCgEqW1akQkpMOX Owwvg73PLn5Z5QgvxjvJhRCg9ZTR/OWXpWcYqFVNagH4Zs8NOb9921TyQ+ydMnatOM             haxMh1ZwTgaUcvndOF8fY+kcERiw1l0iT95w42F8IdUH42Z+8KihZM8gVsbMS6qYTi OM29WHX7y37wuJIzqf3N2TiVXrqfjwugvY/bZ+47EUn78uk6aPZYJGXdDgaFqnIXUV  N+hRFYXgKnU0Ui0aQkuYwnAW8KmanLoNU2xodrb6/XqWnSAAmwl7aoGKFunQsT6xDW yQk+ncUHUcdofDUqgd3lXmHGrTmQW97vqexDEnhsJ+AwbLGD5dukr t@test"
               }
           ],
           "cloudCredentials": {
               "username": "jdoe",
               "apikey": "df23gkh34h52gkdgfakgf"
           }
       }
   }
  
Response

{

   "profile": {
       "username": "john.doe",
       "userId": "12346",
       "tenantId": "123456",
       "sshkeys": [
           {
               "name": "t@test",
               "publicKey": "ssh-rsa ....."
           }
       ],
       "cloudCredentials": {
           "username": "jdoe"
       },
       "links": [
           {
               "rel": "self",
               "href": "https://bigdata.api.rackspacecloud.com/v1.0/123456/profile"
           },
           {
               "rel": "bookmark",
               "href": "https://bigdata.api.rackspacecloud.com/123456/profile"
           }
       ]
   }

}

Response Code Message
200 Success
400 Malformed data
400 Unacceptable parameters

Flavors

List all available flavors

Verb URI Description Representations
GET /flavors List all available flavors JSON, XML
Request

N/A

Response
   {
       "flavors": [
           {
               "id": "1",
               "name": "hadoop.small",
               "ram": "5120MB",
               "vcpus": 1,
               "disk": "375GB",
               "links": [
                   {
                       "rel": "self",
                       "href": "https://bigdata.api.rackspacecloud.com/v1.0/1234/flavors/1"
                   },
                   {
                       "rel": "bookmark",
                       "href": "https://bigdata.api.rackspacecloud.com/1234/flavors/1"
                   }
               ]
           },
           {
               "id": "2",
               "name": "hadoop.medium",
               "ram": "10240MB",
               "vcpus": 2,
               "disk": "750GB",
               "links": [
                   {
                       "rel": "self",
                       "href": "https://bigdata.api.rackspacecloud.com/v1.0/1234/flavors/2"
                   },
                   {
                       "rel": "bookmark",
                       "href": "https://bigdata.api.rackspacecloud.com/1234/flavors/2"
                   }
               ]
           },
           {
               "id": "3",
               "name": "hadoop.large",
               "ram": "20480MB",
               "vcpus": 4,
               "disk": "1500GB",
               "links": [
                   {
                       "rel": "self",
                       "href": "https://bigdata.api.rackspacecloud.com/v1.0/1234/flavors/3"
                   },
                   {
                       "rel": "bookmark",
                       "href": "https://bigdata.api.rackspacecloud.com/1234/flavors/3"
                   }
               ]
           }
       ]
   }
Response Code Message
200 Success

Get details about a flavor

Verb URI Description Representations
GET /flavors/{flavorId} Get details about a flavor JSON, XML
Request

N/A

Response
   {
       "flavor": {
           "id": "1",
           "name": "hadoop.small",
           "ram": "5120MB",
           "vcpus": 1,
           "disk": "375GB",
           "links": [
               {
                   "rel": "self",
                   "href": "https://bigdata.api.rackspacecloud.com/v1.0/1234/flavors/1"
               },
               {
                   "rel": "bookmark",
                   "href": "https://bigdata.api.rackspacecloud.com/1234/flavors/1"
               }
           ]
       }
   }
Response Code Message
200 Success
404 The resource cannot be found

Types

List all available cluster types

Verb URI Description Representations
GET /types List all available cluster types JSON, XML
Request

N/A

Response
   {
       "types": [
           {
               "id": "HADOOP_HDP1_1",
               "name": "Hadoop(HDP1.1)",
               "version": 1.1,
               "links": [
                   {
                       "rel": "self",
                       "href": "https: //bigdata.api.rackspacecloud.com/v1.0/1234/types/HADOOP_HDP1_1"
                   },
                   {
                       "rel": "bookmark",
                       "href": "https: //bigdata.api.rackspacecloud.com/1234/types/HADOOP_HDP1_1"
                   }
               ]
           }
       ]
   }
Response Code Message
200 Success

Get details about a cluster type

Verb URI Description Representations
GET /types/{typeId} Get details about a cluster type JSON, XML
Request

N/A

Response
   {
       "type": {
           "name": "HADOOP_HDP1_1",
           "version": 1.1,
           "services": [
               {
                   "name": "mapreduce",
                   "version": "1.0.3"
               },
               {
                   "name": "hdfs",
                   "version": "1.0.3"
               },
               {
                   "name": "pig",
                   "version": "0.9.2"
               },
               {
                   "name": "hive",
                   "version": "0.9.0"
               }
           ],
           "links": [
               {
                   "rel": "self",
                   "href": "https://bigdata.api.rackspacecloud.com/v1.0/1234/types/HADOOP_HDP1_1"
               },
               {
                   "rel": "bookmark",
                   "href": "https://bigdata.api.rackspacecloud.com/1234/types/HADOOP_HDP1_1"
               }
           ]
       }
   }
Response Code Message
200 Success
404 The resource cannot be found

List all the supported flavors for a cluster type

Verb URI Description Representations
GET /types/{typeId}/flavors List all the supported flavors for a cluster type JSON, XML
Request

N/A

Response
   {
       "flavors": [
           {
               "id": "1",
               "name": "hadoop.small",
               "ram": "5120MB",
               "vcpus": 1,
               "disk": "375GB",
               "links": [
                   {
                       "rel": "self",
                       "href": "https://bigdata.api.rackspacecloud.com/v1.0/1234/flavors/1"
                   },
                   {
                       "rel": "bookmark",
                       "href": "https://bigdata.api.rackspacecloud.com/1234/flavors/1"
                   }
               ]
           },
           {
               "id": "2",
               "name": "hadoop.medium",
               "ram": "10240MB",
               "vcpus": 2,
               "disk": "750GB",
               "links": [
                   {
                       "rel": "self",
                       "href": "https://bigdata.api.rackspacecloud.com/v1.0/1234/flavors/2"
                   },
                   {
                       "rel": "bookmark",
                       "href": "https://bigdata.api.rackspacecloud.com/1234/flavors/2"
                   }
               ]
           },
           {
               "id": "3",
               "name": "hadoop.large",
               "ram": "20480MB",
               "vcpus": 4,
               "disk": "1500GB",
               "links": [
                   {
                       "rel": "self",
                       "href": "https://bigdata.api.rackspacecloud.com/v1.0/1234/flavors/3"
                   },
                   {
                       "rel": "bookmark",
                       "href": "https://bigdata.api.rackspacecloud.com/1234/flavors/3"
                   }
               ]
           }
       ]
   }

Response Code Message
200 Success
404 The resource cannot be found

List all the supported cluster types for a flavor

Verb URI Description Representations
GET /flavors/{flavorId}/types List all the supported cluster types for a flavor JSON, XML
Request

N/A

Response
   {
       "type": {
           "name": "HADOOP_HDP1_1",
           "version": 1.1,
           "services": [
               {
                   "name": "mapreduce",
                   "version": "1.0.3"
               },
               {
                   "name": "hdfs",
                   "version": "1.0.3"
               },
               {
                   "name": "pig",
                   "version": "0.9.2"
               },
               {
                   "name": "hive",
                   "version": "0.9.0"
               }
           ],
           "links": [
               {
                   "rel": "self",
                   "href": "https://bigdata.api.rackspacecloud.com/v1.0/1234/types/HADOOP_HDP1_1"
               },
               {
                   "rel": "bookmark",
                   "href": "https://bigdata.api.rackspacecloud.com/1234/types/HADOOP_HDP1_1"
               }
           ]
       }
   }
Response Code Message
200 Success
404 The resource cannot be found

Limits

List all the resource limits for the user

Verb URI Description Representations
GET /limits List all the resource limits for the user JSON, XML
Request

N/A

Response
   {
       "limits": {
           "absolute": {
               "nodeCount": {
                   "value": 100,
                   "remaining": 50
               },
               "ram": {
                   "value": 50000,
                   "remaining": 34567
               },
               "disk": {
                   "value": 100000,
                   "remaining": 28882
               },
               "vcpus": {
                   "value": 50,
                   "remaining": 25
               }
           },
           "links": [
               {
                   "rel": "self",
                   "href": "https://bigdata.api.rackspacecloud.com/v1.0/1234/limits"
               },
               {
                   "rel": "bookmark",
                   "href": "https://bigdata.api.rackspacecloud.com/1234/limits"
               }
           ]
       }
   }
Response Code Message
200 Success