Jump to: navigation, search

Difference between revisions of "Sahara/ApiProposal"

(Created page with "== Proposal Only == Please recognize that this is only a proposed DSL to be considered for development. This specification is NOT YET IMPLEMENTED. == List of API Calls == {...")
 
Line 59: Line 59:
  
 
=== Clusters ===
 
=== Clusters ===
 +
==== Create a cluster ====
 +
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
Line 66: Line 68:
 
|}
 
|}
  
==== Request ====
+
===== Request =====
{
+
    {
{"cluster":
+
        "cluster": {
    { "name": "slice",
+
            "name": "slice",
      "clusterType": "hadoop",
+
            "clusterType": "hadoop",
      "flavorId": "2",
+
            "flavorId": "2",
      "nodeCount": 5
+
            "nodeCount": 5
    }  
+
        }
}
+
    }
}
+
 
  
==== Response ====
+
===== 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"
 +
                }
 +
            ]
 +
        }
 +
    }
  
{
 
{"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"
 
          }
 
      ],
 
    }
 
}
 
}
 
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 120: Line 123:
 
|}
 
|}
  
 +
==== Delete a cluster ====
 +
{| class="wikitable"
 +
|-
 +
! Verb !! URI !! Description !! Representations
 +
|-
 +
| DELETE || /clusters/{clusterid} || Delete a cluster || JSON, XML
 +
|}
  
Verb
+
===== Request =====
URI
 
Description
 
Representations
 
DELETE
 
/clusters/{clusterid}
 
Delete a cluster
 
JSON, XML
 
 
 
==== Request ====
 
 
N/A
 
N/A
  
==== Response ====
+
===== Response =====
{  
+
    {
{"cluster":
+
        "cluster": {
{ "id": "db478fc1-2d86-4597-8010-cbe787bbbc41",
+
            "id": "db478fc1-2d86-4597-8010-cbe787bbbc41",
"created": "2012-12-27T10:10:10Z",
+
            "created": "2012-12-27T10:10:10Z",
"updated": "",  
+
            "updated": "",
"name": "slice",
+
            "name": "slice",
"clusterType": "hadoop",
+
            "clusterType": "hadoop",
"flavorId": "2",
+
            "flavorId": "2",
"nodeCount": 5,
+
            "nodeCount": 5,
"status": "DELETING",
+
            "status": "DELETING",
"links": [
+
            "links": [
  { "rel": "self",
+
                {
    "href": "https://bigdata.api.rackspacecloud.com/v1.0/1234/clusters/db478fc1-2d86-4597-8010-cbe787bbbc41"
+
                    "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"
+
                {
  }
+
                    "rel": "bookmark",
  ]  
+
                    "href": "https://bigdata.api.rackspacecloud.com/1234/clusters/db478fc1-2d86-4597-8010-cbe787bbbc41"
}
+
                }
}
+
            ]
}  
+
        }
 +
    }
  
Response Code Message
+
{| class="wikitable"
202 Accepted
+
|-
400 Cannot delete
+
! Response Code !! Message
404 Resource not found
+
|-
409 Invalid state
+
| 202 || Accepted
 +
|-
 +
| 400 || Cannot delete
 +
|-
 +
| 404 || Resource not found
 +
|-
 +
| 409 || Invalid state
 +
|}
  
 +
==== List clusters ====
 
Verb
 
Verb
 
URI
 
URI
Line 171: Line 181:
 
JSON, XML
 
JSON, XML
  
==== Request ====
+
===== Request =====
 
N/A
 
N/A
  
==== Response ====
+
===== Response =====
{
+
    {
{"clusters":
+
        "clusters": [
  [
+
            {
    { "id": "db478fc1-2d86-4597-8010-cbe787bbbc41",  
+
                "id": "db478fc1-2d86-4597-8010-cbe787bbbc41",
      "name": "slice",
+
                "name": "slice",
      "created": "2012-12-27T10:10:10Z",
+
                "created": "2012-12-27T10:10:10Z",
      "updated": "2012-12-27T10:15:10Z",
+
                "updated": "2012-12-27T10:15:10Z",
      "clusterType": "hadoop",
+
                "clusterType": "hadoop",
      "flavorId": "2",
+
                "flavorId": "2",
      "nodeCount": 5,
+
                "nodeCount": 5,
      "status": "ACTIVE",
+
                "status": "ACTIVE",
      "links": [
+
                "links": [
          { "rel": "self",
+
                    {
            "href": "https://bigdata.api.rackspacecloud.com/v1.0/1234/clusters/db478fc1-2d86-4597-8010-cbe787bbbc41"
+
                        "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"
+
                    {
          }
+
                        "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",
+
                "id": "ac111111-2d86-4597-8010-cbe787bbbc41",
      "clusterType": "hbase",
+
                "name": "real",
      "flavorId": "4",
+
                "created": "2012-12-27T10:10:10Z",
      "nodeCount": 20,
+
                "updated": "2012-12-27T10:15:10Z",
      "status": "ACTIVE",
+
                "clusterType": "hbase",
      "links": [
+
                "flavorId": "4",
          { "rel": "self",
+
                "nodeCount": 20,
            "href": "https://bigdata.api.rackspacecloud.com/v1.0/1234/clusters/ac111111-2d86-4597-8010-cbe787bbbc41"
+
                "status": "ACTIVE",
          },
+
                "links": [
          { "rel": "bookmark",
+
                    {
            "href": "https://bigdata.api.rackspacecloud.com/1234/clusters/ac111111-2d86-4597-8010-cbe787bbbc41"
+
                        "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
 
Response Code Message
 
200 Success
 
200 Success
 +
 +
 +
==== Get cluster details ====
 
Verb
 
Verb
 
URI
 
URI
Line 227: Line 245:
 
JSON, XML
 
JSON, XML
  
==== Request ====
+
===== Request =====
 
N/A
 
N/A
  
==== Response ====
+
===== Response =====
{
+
    {
{"cluster":
+
        "cluster": {
    { "id": "db478fc1-2d86-4597-8010-cbe787bbbc41",
+
            "id": "db478fc1-2d86-4597-8010-cbe787bbbc41",
      "created": "2012-12-27T10:10:10Z",
+
            "created": "2012-12-27T10:10:10Z",
      "updated": "2012-12-27T10:20:10Z",
+
            "updated": "2012-12-27T10:20:10Z",
      "name": "slice",
+
            "name": "slice",
      "clusterType": "hadoop",
+
            "clusterType": "hadoop",
      "flavorId": "2",
+
            "flavorId": "2",
      "nodeCount": 5,
+
            "nodeCount": 5,
      "status": "ACTIVE",
+
            "status": "ACTIVE",
      "links": [
+
            "links": [
          { "rel": "self",
+
                {
            "href": "https://bigdata.api.rackspacecloud.com/v1.0/1234/clusters/db478fc1-2d86-4597-8010-cbe787bbbc41"
+
                    "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"
+
                {
          }
+
                    "rel": "bookmark",
      ]
+
                    "href": "https://bigdata.api.rackspacecloud.com/1234/clusters/db478fc1-2d86-4597-8010-cbe787bbbc41"
 +
                }
 +
            ]
 +
        }
 
     }
 
     }
}
 
}
 
  
 
Response Code Message
 
Response Code Message
 
200 Success
 
200 Success
 
404 Resource not found
 
404 Resource not found
 +
 +
==== Perform actions on a cluster ====
 
Verb
 
Verb
 
URI
 
URI
Line 265: Line 286:
 
JSON, XML
 
JSON, XML
  
==== Request ====
+
===== Request =====
{
+
    {
{"resize":
+
        "resize": {
    { "nodeCount": 10
+
            "nodeCount": 10
 +
        }
 
     }
 
     }
}
 
}
 
  
==== Response ====
+
===== Response =====
{
+
    {
{"cluster":
+
        "cluster": {
    { "id": "db478fc1-2d86-4597-8010-cbe787bbbc41",
+
            "id": "db478fc1-2d86-4597-8010-cbe787bbbc41",
      "created": "2012-12-27T10:10:10Z",
+
            "created": "2012-12-27T10:10:10Z",
      "updated": "2012-12-27T16:20:10Z",
+
            "updated": "2012-12-27T16:20:10Z",
      "name": "slice",
+
            "name": "slice",
      "clusterType": "hadoop",
+
            "clusterType": "hadoop",
      "flavorId": "2",
+
            "flavorId": "2",
      "nodeCount": 10,
+
            "nodeCount": 10,
      "status": "RESIZING",
+
            "status": "RESIZING",
      "links": [
+
            "links": [
          { "rel": "self",
+
                {
            "href": "https://bigdata.api.rackspacecloud.com/v1.0/1234/clusters/db478fc1-2d86-4597-8010-cbe787bbbc41"
+
                    "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"
+
                {
          }
+
                    "rel": "bookmark",
      ]
+
                    "href": "https://bigdata.api.rackspacecloud.com/1234/clusters/db478fc1-2d86-4597-8010-cbe787bbbc41"
 +
                }
 +
            ]
 +
        }
 
     }
 
     }
}
 
}
 
  
 
Response Code Message
 
Response Code Message
 
200 Success
 
200 Success
400
+
400 Unacceptable parameters
Unacceptable parameters
 
 
400 Malformed data
 
400 Malformed data
404
+
404 The resource cannot be found
The resource cannot be found
 
 
409 Invalid state
 
409 Invalid state
 
   
 
   
  
 
=== Nodes ===
 
=== Nodes ===
 
+
==== List nodes in a cluster ====
 
Verb
 
Verb
 
URI
 
URI
Line 317: Line 336:
 
JSON, XML
 
JSON, XML
  
==== Request ====
+
===== Request =====
 
N/A
 
N/A
  
==== Response ====
+
===== Response =====
{
+
    {
{"nodes":
+
        "nodes": [
  [  
+
            {
    { "id": "000",
+
                "id": "000",
      "created": "2012-12-27T10:10:10Z",  
+
                "created": "2012-12-27T10:10:10Z",
      "role": "NAMENODE",
+
                "role": "NAMENODE",
      "name": "NAMENODE-1",  
+
                "name": "NAMENODE-1",
      "status": "ACTIVE",
+
                "status": "ACTIVE",
      "addresses": { "public": [{ "addr": "168.x.x.3", "version": 4 }],
+
                "addresses": {
                    "private": [{ "addr": "10.x.x.3", "version": 4}]
+
                    "public": [
                  },
+
                        {
      "services": {
+
                            "addr": "168.x.x.3",
        "namenode": {},
+
                            "version": 4
        "jobtracker": {},
+
                        }
        "ssh": {"uri": "ssh://user@168.x.x.3"}
+
                    ],
      },
+
                    "private": [
      "links": [
+
                        {
        { "rel": "self",
+
                            "addr": "10.x.x.3",
          "href": "https://bigdata.api.rackspacecloud.com/v1.0/1234/clusters/db478fc1-2d86-4597-8010-cbe787bbbc41/nodes/000"
+
                            "version": 4
        },
+
                        }
        { "rel": "bookmark",
+
                    ]
          "href": "https://bigdata.api.rackspacecloud.com/1234/clusters/db478fc1-2d86-4597-8010-cbe787bbbc41/nodes/000"
+
                },
        }
+
                "services": {
      ]
+
                    "namenode": {},
    },  
+
                    "jobtracker": {},
    { "id": "aaa",
+
                    "ssh": {
      "role": "GATEWAY",
+
                        "uri": "ssh://user@168.x.x.3"
      "name": "GATEWAY-1",  
+
                    }
      "status": "ACTIVE",
+
                },
      "addresses": { "public": [{ "addr": "168.x.x.4", "version": 4 }],
+
                "links": [
                    "private": [{ "addr": "10.x.x.4", "version": 4}]
+
                    {
                  },  
+
                        "rel": "self",
      "services": {
+
                        "href": "https://bigdata.api.rackspacecloud.com/v1.0/1234/clusters/db478fc1-2d86-4597-8010-cbe787bbbc41/nodes/000"
        "pig": {},
+
                    },
        "hive": {},
+
                    {
        "ssh": {"uri": "ssh://user@168.x.x.4"},
+
                        "rel": "bookmark",
        "status": {"uri": "http://10.x.x.4"},
+
                        "href": "https://bigdata.api.rackspacecloud.com/1234/clusters/db478fc1-2d86-4597-8010-cbe787bbbc41/nodes/000"
        "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"
+
                "id": "aaa",
        },
+
                "role": "GATEWAY",
        { "rel": "bookmark",
+
                "name": "GATEWAY-1",
          "href": "https://bigdata.api.rackspacecloud.com/1234/clusters/db478fc1-2d86-4597-8010-cbe787bbbc41/nodes/aaa"
+
                "status": "ACTIVE",
        }
+
                "addresses": {
      ]
+
                    "public": [
    },
+
                        {
    { "id": "bbb",
+
                            "addr": "168.x.x.4",
      "role": "DATANODE",
+
                            "version": 4
      "name": "DATANODE-1",
+
                        }
      "status": "ACTIVE",
+
                    ],
      "addresses": { "public": [{ "addr": "168.x.x.5", "version": 4 }],
+
                    "private": [
                    "private": [{ "addr": "10.x.x.5", "version": 4}]
+
                        {
                  },  
+
                            "addr": "10.x.x.4",
      "services": {
+
                            "version": 4
        "datanode": {},
+
                        }
        "tasktracker": {},
+
                    ]
        "ssh": {"uri": "ssh://user@168.x.x.5"}
+
                },
      },
+
                "services": {
      "links": [
+
                    "pig": {},
        { "rel": "self",
+
                    "hive": {},
          "href": "https://bigdata.api.rackspacecloud.com/v1.0/1234/clusters/db478fc1-2d86-4597-8010-cbe787bbbc41/nodes/bbb"
+
                    "ssh": {
        },
+
                        "uri": "ssh://user@168.x.x.4"
        { "rel": "bookmark",
+
                    },
          "href": "https://bigdata.api.rackspacecloud.com/1234/clusters/db478fc1-2d86-4597-8010-cbe787bbbc41/nodes/bbb"
+
                    "status": {
        }
+
                        "uri": "http://10.x.x.4"
      ]
+
                    },
    },
+
                    "hdfs-scp": {
    { "id": "ccc",
+
                        "uri": "scp://user@168.x.x.4:9022"
      "role": "DATANODE",
+
                    }
      "name": "DATANODE-2",
+
                },
      "status": "ACTIVE",
+
                "links": [
      "addresses": { "public": [{ "addr": "168.x.x.6", "version": 4 }],
+
                    {
                    "private": [{ "addr": "10.x.x.6", "version": 4}]
+
                        "rel": "self",
                  },  
+
                        "href": "https://bigdata.api.rackspacecloud.com/v1.0/1234/clusters/db478fc1-2d86-4597-8010-cbe787bbbc41/nodes/aaa"
      "services": {
+
                    },
        "datanode": {},
+
                    {
        "tasktracker": {},
+
                        "rel": "bookmark",
        "ssh": {"uri": "ssh://user@168.x.x.6"}
+
                        "href": "https://bigdata.api.rackspacecloud.com/1234/clusters/db478fc1-2d86-4597-8010-cbe787bbbc41/nodes/aaa"
      },
+
                    }
      "links": [
+
                ]
        { "rel": "self",
+
            },
          "href": "https://bigdata.api.rackspacecloud.com/v1.0/1234/clusters/db478fc1-2d86-4597-8010-cbe787bbbc41/nodes/ccc"
+
            {
        },
+
                "id": "bbb",
        { "rel": "bookmark",
+
                "role": "DATANODE",
          "href": "https://bigdata.api.rackspacecloud.com/1234/clusters/db478fc1-2d86-4597-8010-cbe787bbbc41/nodes/ccc"
+
                "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
 
Response Code Message
Line 419: Line 504:
 
404 The resource cannot be found
 
404 The resource cannot be found
  
 +
==== Get details about a node ====
 
Verb
 
Verb
 
URI
 
URI
Line 428: Line 514:
 
JSON, XML
 
JSON, XML
  
 
+
===== Request =====
==== Request ====
 
 
N/A
 
N/A
  
==== Response ====
+
===== Response =====
{
+
    {
{"node":
+
        "node": {
  { "id": "000",
+
            "id": "000",
    "created": "2012-12-27T10:10:10Z",  
+
            "created": "2012-12-27T10:10:10Z",
    "role": "NAMENODE",
+
            "role": "NAMENODE",
    "name": "NAMENODE-1",  
+
            "name": "NAMENODE-1",
    "status": "ACTIVE",
+
            "status": "ACTIVE",
    "addresses": { "public": [{ "addr": "168.x.x.3", "version": 4 }],
+
            "addresses": {
                  "private": [{ "addr": "10.x.x.3", "version": 4}]
+
                "public": [
                },  
+
                    {
    "services": {
+
                        "addr": "168.x.x.3",
      "namenode": {},
+
                        "version": 4
      "jobtracker": {},
+
                    }
      "ssh": {"uri": "ssh://user@168.x.x.3"}
+
                ],
    },
+
                "private": [
    "links": [
+
                    {
      { "rel": "self",
+
                        "addr": "10.x.x.3",
        "href": "https://bigdata.api.rackspacecloud.com/v1.0/1234/clusters/db478fc1-2d86-4597-8010-cbe787bbbc41/nodes/000"
+
                        "version": 4
      },
+
                    }
      { "rel": "bookmark",
+
                ]
        "href": "https://bigdata.api.rackspacecloud.com/1234/clusters/db478fc1-2d86-4597-8010-cbe787bbbc41/nodes/000"
+
            },
      }
+
            "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
 
Response Code Message
Line 465: Line 564:
 
   
 
   
 
=== Profile ===
 
=== Profile ===
 
+
==== Get information about the current user profile ====
 
Verb
 
Verb
 
URI
 
URI
Line 475: Line 574:
 
JSON, XML
 
JSON, XML
  
==== Request ====
+
===== Request =====
 
N/A
 
N/A
  
==== Response ====
+
===== Response =====
{
+
    {
{"profile":  
+
        "profile": {
    { "username": "john.doe",
+
            "username": "john.doe",
      "user_id" : "12346",
+
            "user_id": "12346",
      "tenant_id" : "123456",  
+
            "tenant_id": "123456",
      "sshkeys": [{"name": "t@test"}],
+
            "sshkeys": [
      "cloudCredentials": {},
+
                {
      "links": [
+
                    "name": "t@test"
        { "rel": "self",
+
                }
          "href": "https://bigdata.api.rackspacecloud.com/v1.0/123456/profile"
+
            ],
        },
+
            "cloudCredentials": {},
        { "rel": "bookmark",
+
            "links": [
          "href": "https://bigdata.api.rackspacecloud.com/123456/profile"
+
                {
        }
+
                    "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
 
Response Code Message
 
200 Success
 
200 Success
 +
 +
==== Update an existing profile ====
 
Verb
 
Verb
 
URI
 
URI
Line 509: Line 615:
 
JSON, XML
 
JSON, XML
  
==== Request ====
+
===== Request =====
{
+
    {
{ "profile": {
+
        "profile": {
    "username": "john.doe",
+
            "username": "john.doe",
    "password": "j0Hnd03",  
+
            "password": "j0Hnd03",
    "sshkeys": [
+
            "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"
+
                    "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",
+
            "cloudCredentials": {
      "apikey": "df23gkh34h52gkdgfakgf"
+
                "username": "jdoe",
 +
                "apikey": "df23gkh34h52gkdgfakgf"
 +
            }
 +
        }
 
     }
 
     }
}
 
}
 
 
    
 
    
==== Response ====
+
===== Response =====
 
{
 
{
{"profile":  
+
    "profile": {
{ "username": "john.doe",
+
        "username": "john.doe",
  "userId" : "12346",
+
        "userId": "12346",
  "tenantId" : "123456",  
+
        "tenantId": "123456",
  "sshkeys": [{"name": "t@test", "publicKey" : "ssh-rsa ....."}],
+
        "sshkeys": [
  "cloudCredentials": {"username": "jdoe" },
+
            {
  "links": [
+
                "name": "t@test",
      { "rel": "self",
+
                "publicKey": "ssh-rsa ....."
        "href": "https://bigdata.api.rackspacecloud.com/v1.0/123456/profile"
+
            }
      },
+
        ],
      { "rel": "bookmark",
+
        "cloudCredentials": {
        "href": "https://bigdata.api.rackspacecloud.com/123456/profile"
+
            "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"
 +
            }
 +
        ]
 +
    }
 
}
 
}
  
Line 552: Line 667:
 
   
 
   
 
=== Flavors ===
 
=== Flavors ===
 
+
==== List all available flavors ====
 
Verb
 
Verb
 
URI
 
URI
Line 562: Line 677:
 
JSON, XML
 
JSON, XML
  
==== Request ====
+
===== Request =====
 
N/A
 
N/A
  
==== Response ====
+
===== Response =====
{
+
    {
{"flavors":
+
        "flavors": [
  [  
+
            {
    { "id": "1",
+
                "id": "1",
      "name": "hadoop.small",
+
                "name": "hadoop.small",
      "ram": "5120MB",
+
                "ram": "5120MB",
      "vcpus": 1,
+
                "vcpus": 1,
      "disk": "375GB",
+
                "disk": "375GB",
      "links": [
+
                "links": [
        { "rel": "self",
+
                    {
          "href": "https://bigdata.api.rackspacecloud.com/v1.0/1234/flavors/1"
+
                        "rel": "self",
        },
+
                        "href": "https://bigdata.api.rackspacecloud.com/v1.0/1234/flavors/1"
        { "rel": "bookmark",
+
                    },
          "href": "https://bigdata.api.rackspacecloud.com/1234/flavors/1"
+
                    {
        }
+
                        "rel": "bookmark",
      ]
+
                        "href": "https://bigdata.api.rackspacecloud.com/1234/flavors/1"
    }  
+
                    }
    { "id": "2",
+
                ]
      "name": "hadoop.medium",
+
            },
      "ram": "10240MB",
+
            {
      "vcpus": 2,
+
                "id": "2",
      "disk": "750GB",  
+
                "name": "hadoop.medium",
      "links": [
+
                "ram": "10240MB",
        { "rel": "self",
+
                "vcpus": 2,
          "href": "https://bigdata.api.rackspacecloud.com/v1.0/1234/flavors/2"
+
                "disk": "750GB",
        },
+
                "links": [
        { "rel": "bookmark",
+
                    {
          "href": "https://bigdata.api.rackspacecloud.com/1234/flavors/2"
+
                        "rel": "self",
        }
+
                        "href": "https://bigdata.api.rackspacecloud.com/v1.0/1234/flavors/2"
      ],
+
                    },
    },
+
                    {
    { "id": "3",
+
                        "rel": "bookmark",
      "name": "hadoop.large",
+
                        "href": "https://bigdata.api.rackspacecloud.com/1234/flavors/2"
      "ram": "20480MB",
+
                    }
      "vcpus": 4,
+
                ]
      "disk": "1500GB",
+
            },
      "links": [
+
            {
        { "rel": "self",
+
                "id": "3",
          "href": "https://bigdata.api.rackspacecloud.com/v1.0/1234/flavors/3"
+
                "name": "hadoop.large",
        },
+
                "ram": "20480MB",
        { "rel": "bookmark",
+
                "vcpus": 4,
          "href": "https://bigdata.api.rackspacecloud.com/1234/flavors/3"
+
                "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
 
Response Code Message
 
200 Success
 
200 Success
  
 +
==== Get details about a flavor ====
 
Verb
 
Verb
 
URI
 
URI
Line 627: Line 750:
 
JSON, XML
 
JSON, XML
  
==== Request ====
+
===== Request =====
 
N/A
 
N/A
  
==== Response ====
+
===== Response =====
{
+
    {
{"flavor":
+
        "flavor": {
    { "id": "1",
+
            "id": "1",
      "name": "hadoop.small",
+
            "name": "hadoop.small",
      "ram": "5120MB",
+
            "ram": "5120MB",
      "vcpus": 1,
+
            "vcpus": 1,
      "disk": "375GB",
+
            "disk": "375GB",
      "links": [
+
            "links": [
        { "rel": "self",
+
                {
          "href": "https://bigdata.api.rackspacecloud.com/v1.0/1234/flavors/1"
+
                    "rel": "self",
        },
+
                    "href": "https://bigdata.api.rackspacecloud.com/v1.0/1234/flavors/1"
        { "rel": "bookmark",
+
                },
          "href": "https://bigdata.api.rackspacecloud.com/1234/flavors/1"
+
                {
        }
+
                    "rel": "bookmark",
      ],
+
                    "href": "https://bigdata.api.rackspacecloud.com/1234/flavors/1"
    }
+
                }
}
+
            ]
}
+
        }
 +
    }
  
 
Response Code Message
 
Response Code Message
Line 655: Line 779:
  
 
=== Types ===
 
=== Types ===
 +
==== List all available cluster types ====
 
Verb
 
Verb
 
URI
 
URI
Line 664: Line 789:
 
JSON, XML
 
JSON, XML
  
==== Request ====
+
===== Request =====
 
N/A
 
N/A
  
==== Response ====
+
===== Response =====
{
+
    {
{"types":
+
        "types": [
  [  
+
            {
    { "id": "HADOOP_HDP1_1
+
                "id": "HADOOP_HDP1_1",
      "name": "Hadoop (HDP 1.1)",
+
                "name": "Hadoop(HDP1.1)",
      "version": 1.1,
+
                "version": 1.1,
      "links": [
+
                "links": [
        { "rel": "self",
+
                    {
          "href": "https://bigdata.api.rackspacecloud.com/v1.0/1234/types/HADOOP_HDP1_1"
+
                        "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"
+
                    {
        }
+
                        "rel": "bookmark",
      ],
+
                        "href": "https: //bigdata.api.rackspacecloud.com/1234/types/HADOOP_HDP1_1"
    },
+
                    }
  ]  
+
                ]
}
+
            }
}
+
        ]
 +
    }
  
 
Response Code Message
 
Response Code Message
 
200 Success
 
200 Success
  
 +
==== Get details about a cluster type ====
 
Verb
 
Verb
 
URI
 
URI
Line 699: Line 826:
 
JSON, XML
 
JSON, XML
  
==== Request ====
+
===== Request =====
 
N/A
 
N/A
  
==== Response ====
+
===== Response =====
{
+
    {
{"type":
+
        "type": {
    { "name": "HADOOP_HDP1_1",
+
            "name": "HADOOP_HDP1_1",
      "version": 1.1,
+
            "version": 1.1,
      "services":
+
            "services": [
        [  
+
                {
          {"name": "mapreduce",
+
                    "name": "mapreduce",
          "version": 1.0.3  
+
                    "version": "1.0.3"
          },
+
                },
          {"name": "hdfs",
+
                {
          "version": 1.0.3
+
                    "name": "hdfs",
          },  
+
                    "version": "1.0.3"
          {"name": "pig",
+
                },
          "version": 0.9.2
+
                {
          },
+
                    "name": "pig",
          {"name": "hive",
+
                    "version": "0.9.2"
          "version": 0.9.0
+
                },
          }  
+
                {
        ],
+
                    "name": "hive",
      "links": [
+
                    "version": "0.9.0"
        { "rel": "self",
+
                }
          "href": "https://bigdata.api.rackspacecloud.com/v1.0/1234/types/HADOOP_HDP1_1"
+
            ],
        },
+
            "links": [
        { "rel": "bookmark",
+
                {
          "href": "https://bigdata.api.rackspacecloud.com/1234/types/HADOOP_HDP1_1"
+
                    "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
 
Response Code Message
 
200 Success
 
200 Success
 
404 The resource cannot be found
 
404 The resource cannot be found
 +
 +
==== List all the supported flavors for a cluster type ====
 
   
 
   
 
Verb
 
Verb
Line 747: Line 880:
 
JSON, XML
 
JSON, XML
  
==== Request ====
+
===== Request =====
 
N/A
 
N/A
  
==== Response ====
+
===== Response =====
{
+
    {
{"flavors": [  
+
        "flavors": [
  {  
+
            {
    "id": "1",  
+
                "id": "1",
    "name":  
+
                "name": "hadoop.small",
    "hadoop.small",  
+
                "ram": "5120MB",
    "ram": "5120MB",  
+
                "vcpus": 1,
    "vcpus": 1,  
+
                "disk": "375GB",
    "disk": "375GB",
+
                "links": [
    "links": [
+
                    {
      { "rel": "self",
+
                        "rel": "self",
        "href": "https://bigdata.api.rackspacecloud.com/v1.0/1234/flavors/1"
+
                        "href": "https://bigdata.api.rackspacecloud.com/v1.0/1234/flavors/1"
      },
+
                    },
      { "rel": "bookmark",
+
                    {
        "href": "https://bigdata.api.rackspacecloud.com/1234/flavors/1"
+
                        "rel": "bookmark",
      }
+
                        "href": "https://bigdata.api.rackspacecloud.com/1234/flavors/1"
    ],
+
                    }
  },
+
                ]
  {  
+
            },
    "id": "2",  
+
            {
    "name": "hadoop.medium",  
+
                "id": "2",
    "ram": "10240MB",  
+
                "name": "hadoop.medium",
    "vcpus": 2,  
+
                "ram": "10240MB",
    "disk": "750GB",
+
                "vcpus": 2,
    "links": [
+
                "disk": "750GB",
      { "rel": "self",
+
                "links": [
        "href": "https://bigdata.api.rackspacecloud.com/v1.0/1234/flavors/2"
+
                    {
      },
+
                        "rel": "self",
      { "rel": "bookmark",
+
                        "href": "https://bigdata.api.rackspacecloud.com/v1.0/1234/flavors/2"
        "href": "https://bigdata.api.rackspacecloud.com/1234/flavors/2"
+
                    },
      }
+
                    {
    ],
+
                        "rel": "bookmark",
  },  
+
                        "href": "https://bigdata.api.rackspacecloud.com/1234/flavors/2"
  {  
+
                    }
    "id": "3",  
+
                ]
    "name": "hadoop.large",  
+
            },
    "ram": "20480MB",  
+
            {
    "vcpus": 4,  
+
                "id": "3",
    "disk": "1500GB",
+
                "name": "hadoop.large",
    "links": [
+
                "ram": "20480MB",
      { "rel": "self",
+
                "vcpus": 4,
        "href": "https://bigdata.api.rackspacecloud.com/v1.0/1234/flavors/3"
+
                "disk": "1500GB",
      },
+
                "links": [
      { "rel": "bookmark",
+
                    {
        "href": "https://bigdata.api.rackspacecloud.com/1234/flavors/3"
+
                        "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
 
Response Code Message
Line 807: Line 944:
 
404 The resource cannot be found
 
404 The resource cannot be found
  
 +
==== List all the supported cluster types for a flavor ====
 
Verb
 
Verb
 
URI
 
URI
Line 816: Line 954:
 
JSON, XML
 
JSON, XML
  
==== Request ====
+
===== Request =====
 
N/A
 
N/A
  
==== Response ====
+
===== Response =====
{
+
    {
{"type":
+
        "type": {
    { "name": "HADOOP_HDP1_1",
+
            "name": "HADOOP_HDP1_1",
      "version": 1.1,
+
            "version": 1.1,
      "services":
+
            "services": [
        [  
+
                {
          {"name": "mapreduce",
+
                    "name": "mapreduce",
          "version": 1.0.3  
+
                    "version": "1.0.3"
          },
+
                },
          {"name": "hdfs",
+
                {
          "version": 1.0.3
+
                    "name": "hdfs",
          },  
+
                    "version": "1.0.3"
          {"name": "pig",
+
                },
          "version": 0.9.2
+
                {
          },
+
                    "name": "pig",
          {"name": "hive",
+
                    "version": "0.9.2"
          "version": 0.9.0
+
                },
          }  
+
                {
        ],
+
                    "name": "hive",
      "links": [
+
                    "version": "0.9.0"
        { "rel": "self",
+
                }
          "href": "https://bigdata.api.rackspacecloud.com/v1.0/1234/types/HADOOP_HDP1_1"
+
            ],
        },
+
            "links": [
        { "rel": "bookmark",
+
                {
          "href": "https://bigdata.api.rackspacecloud.com/1234/types/HADOOP_HDP1_1"
+
                    "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
 
Response Code Message
Line 856: Line 998:
 
   
 
   
 
=== Limits ===
 
=== Limits ===
 
+
==== List all the resource limits for the user ====
 
Verb
 
Verb
 
URI
 
URI
Line 866: Line 1,008:
 
JSON, XML
 
JSON, XML
  
==== Request ====
+
===== Request =====
 
N/A
 
N/A
  
==== Response ====
+
===== Response =====
{
+
 
{"limits":
+
    {
  {"absolute":
+
        "limits": {
    {"nodeCount": {"value": 100, "remaining" : 50},
+
            "absolute": {
    "ram": {"value": 50000, "remaining": 34567},
+
                "nodeCount": {
    "disk": {"value": 100000, "remaining": 28882},
+
                    "value": 100,
    "vcpus": {"value": 50, "remaining": 25}
+
                    "remaining": 50
    },
+
                },
  "links": [
+
                "ram": {
      { "rel": "self",
+
                    "value": 50000,
        "href": "https://bigdata.api.rackspacecloud.com/v1.0/1234/limits"
+
                    "remaining": 34567
      },
+
                },
      { "rel": "bookmark",
+
                "disk": {
        "href": "https://bigdata.api.rackspacecloud.com/1234/limits"
+
                    "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
 
Response Code Message
 
200 Success
 
200 Success

Revision as of 13:37, 16 April 2013

Proposal Only

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

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