Jump to: navigation, search

Difference between revisions of "API Special Interest Group/Current Design/Version Responses"

m (Manila: syntax fix)
 
(7 intermediate revisions by 3 users not shown)
Line 16: Line 16:
  
 
<pre><nowiki>GET /</nowiki></pre>
 
<pre><nowiki>GET /</nowiki></pre>
 
 
<pre><nowiki>
 
<pre><nowiki>
 
{
 
{
Line 24: Line 23:
 
             "links": [
 
             "links": [
 
                 {
 
                 {
                     "href": "http://23.253.211.234:8776/v1/",
+
                     "href": "http://docs.openstack.org/",
 +
                    "rel": "describedby",
 +
                    "type": "text/html"
 +
                },
 +
                {
 +
                    "href": "http://192.168.122.88:8776/v1/",
 
                     "rel": "self"
 
                     "rel": "self"
 
                 }
 
                 }
 
             ],
 
             ],
 +
            "media-types": [
 +
                {
 +
                    "base": "application/json",
 +
                    "type": "application/vnd.openstack.volume+json;version=1"
 +
                }
 +
            ],
 +
            "min_version": "",
 
             "status": "DEPRECATED",
 
             "status": "DEPRECATED",
             "updated": "2014-06-28T12:20:21Z"
+
             "updated": "2016-05-02T20:25:19Z",
 +
            "version": ""
 
         },
 
         },
 
         {
 
         {
Line 35: Line 47:
 
             "links": [
 
             "links": [
 
                 {
 
                 {
                     "href": "http://23.253.211.234:8776/v2/",
+
                     "href": "http://docs.openstack.org/",
 +
                    "rel": "describedby",
 +
                    "type": "text/html"
 +
                },
 +
                {
 +
                    "href": "http://192.168.122.88:8776/v2/",
 +
                    "rel": "self"
 +
                }
 +
            ],
 +
            "media-types": [
 +
                {
 +
                    "base": "application/json",
 +
                    "type": "application/vnd.openstack.volume+json;version=1"
 +
                }
 +
            ],
 +
            "min_version": "",
 +
            "status": "SUPPORTED",
 +
            "updated": "2014-06-28T12:20:21Z",
 +
            "version": ""
 +
        },
 +
        {
 +
            "id": "v3.0",
 +
            "links": [
 +
                {
 +
                    "href": "http://docs.openstack.org/",
 +
                    "rel": "describedby",
 +
                    "type": "text/html"
 +
                },
 +
                {
 +
                    "href": "http://192.168.122.88:8776/v3/",
 
                     "rel": "self"
 
                     "rel": "self"
 
                 }
 
                 }
 
             ],
 
             ],
 +
            "media-types": [
 +
                {
 +
                    "base": "application/json",
 +
                    "type": "application/vnd.openstack.volume+json;version=1"
 +
                }
 +
            ],
 +
            "min_version": "3.0",
 
             "status": "CURRENT",
 
             "status": "CURRENT",
             "updated": "2012-11-21T11:33:21Z"
+
             "updated": "2016-02-08T12:20:21Z",
 +
            "version": "3.15"
 
         }
 
         }
 
     ]
 
     ]
Line 72: Line 121:
 
}
 
}
 
</nowiki></pre>
 
</nowiki></pre>
 +
 +
== Glance ==
 +
 +
[http://developer.openstack.org/api-ref-image-v1.html Image service API v1 reference]
 +
 +
[http://developer.openstack.org/api-ref-image-v2.html Image service API v2 reference]
 +
 +
Only '''GET /''' and '''GET /versions''' are documented as providing a versions response.
 +
 +
=== Examples ===
 +
Same response for '''GET /''' and '''GET /versions'''
 +
 +
<pre><nowiki>
 +
{
 +
    "versions": [
 +
        {
 +
            "id": "v2.3",
 +
            "links": [
 +
                {
 +
                    "href": "http://brianr-dev10:9292/v2/",
 +
                    "rel": "self"
 +
                }
 +
            ],
 +
            "status": "CURRENT"
 +
        },
 +
        {
 +
            "id": "v2.2",
 +
            "links": [
 +
                {
 +
                    "href": "http://brianr-dev10:9292/v2/",
 +
                    "rel": "self"
 +
                }
 +
            ],
 +
            "status": "SUPPORTED"
 +
        },
 +
        {
 +
            "id": "v2.1",
 +
            "links": [
 +
                {
 +
                    "href": "http://brianr-dev10:9292/v2/",
 +
                    "rel": "self"
 +
                }
 +
            ],
 +
            "status": "SUPPORTED"
 +
        },
 +
        {
 +
            "id": "v2.0",
 +
            "links": [
 +
                {
 +
                    "href": "http://brianr-dev10:9292/v2/",
 +
                    "rel": "self"
 +
                }
 +
            ],
 +
            "status": "SUPPORTED"
 +
        },
 +
        {
 +
            "id": "v1.1",
 +
            "links": [
 +
                {
 +
                    "href": "http://brianr-dev10:9292/v1/",
 +
                    "rel": "self"
 +
                }
 +
            ],
 +
            "status": "SUPPORTED"
 +
        },
 +
        {
 +
            "id": "v1.0",
 +
            "links": [
 +
                {
 +
                    "href": "http://brianr-dev10:9292/v1/",
 +
                    "rel": "self"
 +
                }
 +
            ],
 +
            "status": "SUPPORTED"
 +
        }
 +
    ]
 +
}
 +
</nowiki></pre>
 +
 +
'''GET /v2''' returns 302 Found.
 +
 +
'''GET /v2/''' returns 404 Not Found.
 +
  
 
== Keystone ==
 
== Keystone ==
Line 184: Line 316:
 
</nowiki></pre>
 
</nowiki></pre>
  
 +
 +
== Manila ==
 +
 +
[http://developer.openstack.org/api-ref-share-v1.html Shared File Systems service API v1 (Supported) reference]
 +
 +
[http://developer.openstack.org/api-ref-share-v2.html Shared File Systems service API v2 (Current) reference]
 +
 +
=== Examples ===
 +
<pre><nowiki>GET /</nowiki></pre>
 +
 +
<pre><nowiki>
 +
 +
  "versions":[ 
 +
      { 
 +
        "status":"SUPPORTED",
 +
        "updated":"2015-08-27T11:33:21Z",
 +
        "links":[ 
 +
            { 
 +
              "href":"http://docs.openstack.org/",
 +
              "type":"text/html",
 +
              "rel":"describedby"
 +
            },
 +
            { 
 +
              "href":"http://192.168.10.11:8786/v1/",
 +
              "rel":"self"
 +
            }
 +
        ],
 +
        "min_version":"",
 +
        "version":"",
 +
        "media-types":[ 
 +
            { 
 +
              "base":"application/json",
 +
              "type":"application/vnd.openstack.share+json;version=1"
 +
            }
 +
        ],
 +
        "id":"v1.0"
 +
      },
 +
      { 
 +
        "status":"CURRENT",
 +
        "updated":"2015-08-27T11:33:21Z",
 +
        "links":[ 
 +
            { 
 +
              "href":"http://docs.openstack.org/",
 +
              "type":"text/html",
 +
              "rel":"describedby"
 +
            },
 +
            { 
 +
              "href":"http://192.168.10.11:8786/v2/",
 +
              "rel":"self"
 +
            }
 +
        ],
 +
        "min_version":"2.0",
 +
        "version":"2.8",
 +
        "media-types":[ 
 +
            { 
 +
              "base":"application/json",
 +
              "type":"application/vnd.openstack.share+json;version=1"
 +
            }
 +
        ],
 +
        "id":"v2.0"
 +
      }
 +
  ]
 +
}
 +
</nowiki></pre>
 +
 +
<pre><nowiki>GET /v1/</nowiki></pre>
 +
 +
<pre><nowiki>
 +
 +
  "versions":[ 
 +
      { 
 +
        "status":"SUPPORTED",
 +
        "updated":"2015-08-27T11:33:21Z",
 +
        "links":[ 
 +
            { 
 +
              "href":"http://docs.openstack.org/",
 +
              "type":"text/html",
 +
              "rel":"describedby"
 +
            },
 +
            { 
 +
              "href":"http://192.168.10.11:8786/v1/",
 +
              "rel":"self"
 +
            }
 +
        ],
 +
        "min_version":"",
 +
        "version":"",
 +
        "media-types":[ 
 +
            { 
 +
              "base":"application/json",
 +
              "type":"application/vnd.openstack.share+json;version=1"
 +
            }
 +
        ],
 +
        "id":"v1.0"
 +
      }
 +
  ]
 +
}
 +
</nowiki></pre>
 +
 +
<pre><nowiki>GET /v2/</nowiki></pre>
 +
 +
<pre><nowiki>
 +
 +
  "versions":[ 
 +
      { 
 +
        "status":"CURRENT",
 +
        "updated":"2015-08-27T11:33:21Z",
 +
        "links":[ 
 +
            { 
 +
              "href":"http://docs.openstack.org/",
 +
              "type":"text/html",
 +
              "rel":"describedby"
 +
            },
 +
            { 
 +
              "href":"http://192.168.10.11:8786/v2/",
 +
              "rel":"self"
 +
            }
 +
        ],
 +
        "min_version":"2.0",
 +
        "version":"2.8",
 +
        "media-types":[ 
 +
            { 
 +
              "base":"application/json",
 +
              "type":"application/vnd.openstack.share+json;version=1"
 +
            }
 +
        ],
 +
        "id":"v2.0"
 +
      }
 +
  ]
 +
}
 +
</nowiki></pre>
 +
.
 
== Nova ==
 
== Nova ==
  
Line 286: Line 549:
 
</nowiki></pre>
 
</nowiki></pre>
  
== Glance ==
 
  
[http://developer.openstack.org/api-ref-image-v1.html Image service API v1 reference]
+
== Sahara ==
  
[http://developer.openstack.org/api-ref-image-v2.html Image service API v2 reference]
+
[http://developer.openstack.org/api-ref-data-processing-v1.1.html Sahara API reference]
  
Only '''GET /''' and '''GET /versions''' are documented as providing a versions response.
+
=== Examples ===
  
=== Examples ===
+
<pre><nowiki>GET /</nowiki></pre>
Same response for '''GET /''' and '''GET /versions'''
 
  
 
<pre><nowiki>
 
<pre><nowiki>
Line 301: Line 562:
 
     "versions": [
 
     "versions": [
 
         {
 
         {
             "id": "v2.3",
+
             "id": "v1.0",  
            "links": [
 
                {
 
                    "href": "http://brianr-dev10:9292/v2/",
 
                    "rel": "self"
 
                }
 
            ],
 
            "status": "CURRENT"
 
        },
 
        {
 
            "id": "v2.2",
 
            "links": [
 
                {
 
                    "href": "http://brianr-dev10:9292/v2/",
 
                    "rel": "self"
 
                }
 
            ],
 
 
             "status": "SUPPORTED"
 
             "status": "SUPPORTED"
         },
+
         },  
 
         {
 
         {
            "id": "v2.1",
+
             "id": "v1.1",  
            "links": [
+
             "status": "CURRENT"
                {
 
                    "href": "http://brianr-dev10:9292/v2/",
 
                    "rel": "self"
 
                }
 
            ],
 
            "status": "SUPPORTED"
 
        },
 
        {
 
            "id": "v2.0",
 
            "links": [
 
                {
 
                    "href": "http://brianr-dev10:9292/v2/",
 
                    "rel": "self"
 
                }
 
            ],
 
            "status": "SUPPORTED"
 
        },
 
        {
 
             "id": "v1.1",
 
            "links": [
 
                {
 
                    "href": "http://brianr-dev10:9292/v1/",
 
                    "rel": "self"
 
                }
 
            ],
 
            "status": "SUPPORTED"
 
        },
 
        {
 
            "id": "v1.0",
 
            "links": [
 
                {
 
                    "href": "http://brianr-dev10:9292/v1/",
 
                    "rel": "self"
 
                }
 
            ],
 
             "status": "SUPPORTED"
 
 
         }
 
         }
 
     ]
 
     ]
Line 364: Line 573:
 
</nowiki></pre>
 
</nowiki></pre>
  
'''GET /v2''' returns 302 Found.
+
'''GET /v1/''' returns 404 Not Found.
 +
 
 +
'''GET /v1.0/''' returns 404 Not Found.
 +
 
 +
'''GET /v1.1/''' returns 404 Not Found.
  
'''GET /v2/''' returns 404 Not Found.
+
== Telemetry ==
  
== Manila ==
+
Telemetry is divided into Ceilometer, Aodh and Gnocchi these days, each with a [http://developer.openstack.org/api-ref-telemetry-v2.html separate API].
  
[http://developer.openstack.org/api-ref-share-v1.html Shared File Systems service API v1 (Supported) reference]
+
GET / requires auth, which is probably a bug.
  
[http://developer.openstack.org/api-ref-share-v2.html Shared File Systems service API v2 (Current) reference]
+
'''Note:''' cdent [https://tank.peermore.com/tanks/os-scratch/checktelemetry.yaml used gabbi to make these discoveries].
  
 
=== Examples ===
 
=== Examples ===
<pre><nowiki>GET /</nowiki></pre>
+
 
 +
==== Ceilometer ====
 +
 
 +
'''Requires Authentication'''
 +
 
 +
<pre>
 +
GET /
 +
</pre>
 +
 
 +
<pre><nowiki>
 +
{
 +
  "versions" : {
 +
      "values" : [
 +
        {
 +
            "updated" : "2013-02-13T00:00:00Z",
 +
            "status" : "stable",
 +
            "media-types" : [
 +
              {
 +
                  "base" : "application/json",
 +
                  "type" : "application/vnd.openstack.telemetry-v2+json"
 +
              },
 +
              {
 +
                  "type" : "application/vnd.openstack.telemetry-v2+xml",
 +
                  "base" : "application/xml"
 +
              }
 +
            ],
 +
            "id" : "v2",
 +
            "links" : [
 +
              {
 +
                  "href" : "http://localhost:8777/v2",
 +
                  "rel" : "self"
 +
              },
 +
              {
 +
                  "href" : "http://docs.openstack.org/",
 +
                  "type" : "text/html",
 +
                  "rel" : "describedby"
 +
              }
 +
            ]
 +
        }
 +
      ]
 +
  }
 +
}
 +
</nowiki></pre>
 +
 
 +
'''GET /v2 is a 404'''
 +
 
 +
==== Aodh ====
 +
 
 +
'''Requires authentication'''
 +
 
 +
<pre>
 +
GET /
 +
</pre>
  
 
<pre><nowiki>
 
<pre><nowiki>
{
+
{
   "versions":
+
   "versions" : {
      
+
       "values" : [
        "status":"SUPPORTED",
+
         {
         "updated":"2015-08-27T11:33:21Z",
+
            "updated" : "2013-02-13T00:00:00Z",
        "links":[
+
            "media-types" : [
            {
+
              {
              "href":"http://docs.openstack.org/",
+
                  "type" : "application/vnd.openstack.telemetry-v2+json",
              "type":"text/html",
+
                  "base" : "application/json"
               "rel":"describedby"
+
               },
            },
+
               {
            { 
+
                  "base" : "application/xml",
              "href":"http://192.168.10.11:8786/v1/",
+
                  "type" : "application/vnd.openstack.telemetry-v2+xml"
               "rel":"self"
+
              }
            }
+
            ],
        ],
+
            "links" : [
        "min_version":"",
+
              {
        "version":"",
+
                  "rel" : "self",
        "media-types":[ 
+
                  "href" : "http://localhost:8042/v2"
            {
+
              },
              "base":"application/json",
+
               {
              "type":"application/vnd.openstack.share+json;version=1"
+
                  "type" : "text/html",
            }
+
                  "rel" : "describedby",
        ],
+
                  "href" : "http://docs.openstack.org/"
        "id":"v1.0"
+
               }
      },
+
             ],
      {
+
            "id" : "v2",
        "status":"CURRENT",
+
            "status" : "stable"
        "updated":"2015-08-27T11:33:21Z",
+
         }
        "links":[ 
+
      ]
            { 
+
  }
              "href":"http://docs.openstack.org/",
 
               "type":"text/html",
 
              "rel":"describedby"
 
            },
 
            { 
 
              "href":"http://192.168.10.11:8786/v2/",
 
               "rel":"self"
 
             }
 
        ],
 
        "min_version":"2.0",
 
        "version":"2.8",
 
         "media-types":[ 
 
            { 
 
              "base":"application/json",
 
              "type":"application/vnd.openstack.share+json;version=1"
 
            }
 
        ],
 
        "id":"v2.0"
 
      }
 
  ]
 
 
}
 
}
 
</nowiki></pre>
 
</nowiki></pre>
  
<pre><nowiki>GET /v1/</nowiki></pre>
+
'''GET /v2 is a 404'''
 +
 
 +
==== Gnocchi ====
 +
 
 +
'''Requires authentication in default devstack'''
 +
 
 +
<pre><nowiki>
 +
GET /
 +
</nowiki></pre>
  
 
<pre><nowiki>
 
<pre><nowiki>
{
+
{
   "versions":[
+
   "versions" : [
       {
+
       {
        "status":"SUPPORTED",
+
         "links" : [
        "updated":"2015-08-27T11:33:21Z",
+
             {
         "links":[
+
               "rel" : "self",
             {
+
               "href" : "http://localhost:8041/v1/"
              "href":"http://docs.openstack.org/",
 
              "type":"text/html",
 
               "rel":"describedby"
 
            },
 
            { 
 
               "href":"http://192.168.10.11:8786/v1/",
 
              "rel":"self"
 
            }
 
        ],
 
        "min_version":"",
 
        "version":"",
 
        "media-types":[ 
 
            { 
 
              "base":"application/json",
 
              "type":"application/vnd.openstack.share+json;version=1"
 
 
             }
 
             }
 
         ],
 
         ],
         "id":"v1.0"
+
        "updated" : "2015-03-19",
 +
        "status" : "CURRENT",
 +
         "id" : "v1.0"
 
       }
 
       }
 
   ]
 
   ]
Line 465: Line 705:
 
</nowiki></pre>
 
</nowiki></pre>
  
<pre><nowiki>GET /v2/</nowiki></pre>
+
<pre>
 +
GET /v1/
 +
</pre>
  
 
<pre><nowiki>
 
<pre><nowiki>
{
+
{
   "versions":[
+
   "links" : [
       {
+
       {
         "status":"CURRENT",
+
         "href" : "http://localhost:8041/v1",
         "updated":"2015-08-27T11:33:21Z",
+
        "rel" : "self"
         "links":
+
      },
            {
+
      {
              "href":"http://docs.openstack.org/",
+
         "href" : "http://localhost:8041/v1/aggregation",
              "type":"text/html",
+
         "rel" : "aggregation"
              "rel":"describedby"
+
      },
            },
+
      {
            {
+
        "href" : "http://localhost:8041/v1/archive_policy",
              "href":"http://192.168.10.11:8786/v2/",
+
        "rel" : "archive_policy"
              "rel":"self"
+
      },
            }
+
      {
         ],
+
        "rel" : "archive_policy_rule",
         "min_version":"2.0",
+
        "href" : "http://localhost:8041/v1/archive_policy_rule"
         "version":"2.8",
+
      },
         "media-types":
+
      {
            {
+
        "href" : "http://localhost:8041/v1/capabilities",
              "base":"application/json",
+
        "rel" : "capabilities"
              "type":"application/vnd.openstack.share+json;version=1"
+
      },
            }
+
      {
         ],
+
         "href" : "http://localhost:8041/v1/metric",
         "id":"v2.0"
+
         "rel" : "metric"
 +
      },
 +
      {
 +
         "href" : "http://localhost:8041/v1/resource",
 +
         "rel" : "resource"
 +
      },
 +
      {
 +
        "href" : "http://localhost:8041/v1/search",
 +
        "rel" : "search"
 +
      },
 +
      {
 +
         "rel" : "status",
 +
         "href" : "http://localhost:8041/v1/status"
 
       }
 
       }
   ]
+
   ],
 +
  "version" : "1.0"
 
}
 
}
 
</nowiki></pre>
 
</nowiki></pre>
.
 

Latest revision as of 15:40, 14 June 2018

Analysis

What responses are being returned for version requests?

This analysis is specifically asking for versions reported by an API server through a GET request at "/", "/version", "/v1", or similar.

The Version Discovery page on the OpenStack wiki is being used as a reference point in this analysis.

Current Design

Cinder

Cinder API reference

Examples

GET /
{
    "versions": [
        {
            "id": "v1.0",
            "links": [
                {
                    "href": "http://docs.openstack.org/",
                    "rel": "describedby",
                    "type": "text/html"
                },
                {
                    "href": "http://192.168.122.88:8776/v1/",
                    "rel": "self"
                }
            ],
            "media-types": [
                {
                    "base": "application/json",
                    "type": "application/vnd.openstack.volume+json;version=1"
                }
            ],
            "min_version": "",
            "status": "DEPRECATED",
            "updated": "2016-05-02T20:25:19Z",
            "version": ""
        },
        {
            "id": "v2.0",
            "links": [
                {
                    "href": "http://docs.openstack.org/",
                    "rel": "describedby",
                    "type": "text/html"
                },
                {
                    "href": "http://192.168.122.88:8776/v2/",
                    "rel": "self"
                }
            ],
            "media-types": [
                {
                    "base": "application/json",
                    "type": "application/vnd.openstack.volume+json;version=1"
                }
            ],
            "min_version": "",
            "status": "SUPPORTED",
            "updated": "2014-06-28T12:20:21Z",
            "version": ""
        },
        {
            "id": "v3.0",
            "links": [
                {
                    "href": "http://docs.openstack.org/",
                    "rel": "describedby",
                    "type": "text/html"
                },
                {
                    "href": "http://192.168.122.88:8776/v3/",
                    "rel": "self"
                }
            ],
            "media-types": [
                {
                    "base": "application/json",
                    "type": "application/vnd.openstack.volume+json;version=1"
                }
            ],
            "min_version": "3.0",
            "status": "CURRENT",
            "updated": "2016-02-08T12:20:21Z",
            "version": "3.15"
        }
    ]
}
GET /v2
{
    "version": {
        "id": "v2.0",
        "links": [
            {
                "href": "http://23.253.211.234:8776/v2/v2.0",
                "rel": "self"
            }
        ],
        "media-types": [
            {
                "base": "application/xml",
                "type": "application/vnd.openstack.volume+xml;version=1"
            },
            {
                "base": "application/json",
                "type": "application/vnd.openstack.volume+json;version=1"
            }
        ],
        "status": "CURRENT"
    }
}

Glance

Image service API v1 reference

Image service API v2 reference

Only GET / and GET /versions are documented as providing a versions response.

Examples

Same response for GET / and GET /versions

{
    "versions": [
        {
            "id": "v2.3",
            "links": [
                {
                    "href": "http://brianr-dev10:9292/v2/",
                    "rel": "self"
                }
            ],
            "status": "CURRENT"
        },
        {
            "id": "v2.2",
            "links": [
                {
                    "href": "http://brianr-dev10:9292/v2/",
                    "rel": "self"
                }
            ],
            "status": "SUPPORTED"
        },
        {
            "id": "v2.1",
            "links": [
                {
                    "href": "http://brianr-dev10:9292/v2/",
                    "rel": "self"
                }
            ],
            "status": "SUPPORTED"
        },
        {
            "id": "v2.0",
            "links": [
                {
                    "href": "http://brianr-dev10:9292/v2/",
                    "rel": "self"
                }
            ],
            "status": "SUPPORTED"
        },
        {
            "id": "v1.1",
            "links": [
                {
                    "href": "http://brianr-dev10:9292/v1/",
                    "rel": "self"
                }
            ],
            "status": "SUPPORTED"
        },
        {
            "id": "v1.0",
            "links": [
                {
                    "href": "http://brianr-dev10:9292/v1/",
                    "rel": "self"
                }
            ],
            "status": "SUPPORTED"
        }
    ]
}

GET /v2 returns 302 Found.

GET /v2/ returns 404 Not Found.


Keystone

Keystone v2 API reference

Keystone v3 API reference

Examples

GET /
{
    "versions": {
        "values": [
            {
                "id": "v3.4", 
                "links": [
                    {
                        "href": "http://10.0.1.107:5000/v3/", 
                        "rel": "self"
                    }
                ], 
                "media-types": [
                    {
                        "base": "application/json", 
                        "type": "application/vnd.openstack.identity-v3+json"
                    }
                ], 
                "status": "stable", 
                "updated": "2015-03-30T00:00:00Z"
            }, 
            {
                "id": "v2.0", 
                "links": [
                    {
                        "href": "http://10.0.1.107:5000/v2.0/", 
                        "rel": "self"
                    }, 
                    {
                        "href": "http://docs.openstack.org/", 
                        "rel": "describedby", 
                        "type": "text/html"
                    }
                ], 
                "media-types": [
                    {
                        "base": "application/json", 
                        "type": "application/vnd.openstack.identity-v2.0+json"
                    }
                ], 
                "status": "stable", 
                "updated": "2014-04-17T00:00:00Z"
            }
        ]
    }
}
GET /v2.0/
{
    "version": {
        "id": "v2.0", 
        "links": [
            {
                "href": "http://10.0.1.107:5000/v2.0/", 
                "rel": "self"
            }, 
            {
                "href": "http://docs.openstack.org/", 
                "rel": "describedby", 
                "type": "text/html"
            }
        ], 
        "media-types": [
            {
                "base": "application/json", 
                "type": "application/vnd.openstack.identity-v2.0+json"
            }
        ], 
        "status": "stable", 
        "updated": "2014-04-17T00:00:00Z"
    }
}
GET /v3/
{
    "version": {
        "id": "v3.4", 
        "links": [
            {
                "href": "http://10.0.1.107:5000/v3/", 
                "rel": "self"
            }
        ], 
        "media-types": [
            {
                "base": "application/json", 
                "type": "application/vnd.openstack.identity-v3+json"
            }
        ], 
        "status": "stable", 
        "updated": "2015-03-30T00:00:00Z"
    }
}


Manila

Shared File Systems service API v1 (Supported) reference

Shared File Systems service API v2 (Current) reference

Examples

GET /
{  
   "versions":[  
      {  
         "status":"SUPPORTED",
         "updated":"2015-08-27T11:33:21Z",
         "links":[  
            {  
               "href":"http://docs.openstack.org/",
               "type":"text/html",
               "rel":"describedby"
            },
            {  
               "href":"http://192.168.10.11:8786/v1/",
               "rel":"self"
            }
         ],
         "min_version":"",
         "version":"",
         "media-types":[  
            {  
               "base":"application/json",
               "type":"application/vnd.openstack.share+json;version=1"
            }
         ],
         "id":"v1.0"
      },
      {  
         "status":"CURRENT",
         "updated":"2015-08-27T11:33:21Z",
         "links":[  
            {  
               "href":"http://docs.openstack.org/",
               "type":"text/html",
               "rel":"describedby"
            },
            {  
               "href":"http://192.168.10.11:8786/v2/",
               "rel":"self"
            }
         ],
         "min_version":"2.0",
         "version":"2.8",
         "media-types":[  
            {  
               "base":"application/json",
               "type":"application/vnd.openstack.share+json;version=1"
            }
         ],
         "id":"v2.0"
      }
   ]
}
GET /v1/
{  
   "versions":[  
      {  
         "status":"SUPPORTED",
         "updated":"2015-08-27T11:33:21Z",
         "links":[  
            {  
               "href":"http://docs.openstack.org/",
               "type":"text/html",
               "rel":"describedby"
            },
            {  
               "href":"http://192.168.10.11:8786/v1/",
               "rel":"self"
            }
         ],
         "min_version":"",
         "version":"",
         "media-types":[  
            {  
               "base":"application/json",
               "type":"application/vnd.openstack.share+json;version=1"
            }
         ],
         "id":"v1.0"
      }
   ]
}
GET /v2/
{  
   "versions":[  
      {  
         "status":"CURRENT",
         "updated":"2015-08-27T11:33:21Z",
         "links":[  
            {  
               "href":"http://docs.openstack.org/",
               "type":"text/html",
               "rel":"describedby"
            },
            {  
               "href":"http://192.168.10.11:8786/v2/",
               "rel":"self"
            }
         ],
         "min_version":"2.0",
         "version":"2.8",
         "media-types":[  
            {  
               "base":"application/json",
               "type":"application/vnd.openstack.share+json;version=1"
            }
         ],
         "id":"v2.0"
      }
   ]
}

.

Nova

Nova API reference

Examples

GET /
{
    "versions": [
        {
            "id": "v2.0",
            "links": [
                {
                    "href": "http://10.0.1.107:8774/v2/",
                    "rel": "self"
                }
            ],
            "status": "SUPPORTED",
            "version": "",
            "min_version": "",
            "updated": "2011-01-21T11:33:21Z"
        },
        {
            "id": "v2.1",
            "links": [
                {
                    "href": "http://10.0.1.107:8774/v2.1/",
                    "rel": "self"
                }
            ],
            "status": "CURRENT",
            "version": "2.12",
            "min_version": "2.1",
            "updated": "2013-07-23T11:33:21Z"
        }
    ]
}
GET /v2/
{
    "version": {
        "id": "v2.0", 
        "links": [
            {
                "href": "http://10.0.1.107:8774/v2/", 
                "rel": "self"
            }, 
            {
                "href": "http://docs.openstack.org/", 
                "rel": "describedby", 
                "type": "text/html"
            }
        ], 
        "media-types": [
            {
                "base": "application/json", 
                "type": "application/vnd.openstack.compute+json;version=2"
            }
        ], 
        "min_version": "", 
        "status": "SUPPORTED", 
        "updated": "2011-01-21T11:33:21Z", 
        "version": ""
    }
}
GET /v2.1/
{
    "version": {
        "id": "v2.1", 
        "links": [
            {
                "href": "http://10.0.1.107:8774/v2.1/", 
                "rel": "self"
            }, 
            {
                "href": "http://docs.openstack.org/", 
                "rel": "describedby", 
                "type": "text/html"
            }
        ], 
        "media-types": [
            {
                "base": "application/json", 
                "type": "application/vnd.openstack.compute+json;version=2.1"
            }
        ], 
        "min_version": "2.1", 
        "status": "CURRENT", 
        "updated": "2013-07-23T11:33:21Z", 
        "version": "2.12"
    }
}


Sahara

Sahara API reference

Examples

GET /
{
    "versions": [
        {
            "id": "v1.0", 
            "status": "SUPPORTED"
        }, 
        {
            "id": "v1.1", 
            "status": "CURRENT"
        }
    ]
}

GET /v1/ returns 404 Not Found.

GET /v1.0/ returns 404 Not Found.

GET /v1.1/ returns 404 Not Found.

Telemetry

Telemetry is divided into Ceilometer, Aodh and Gnocchi these days, each with a separate API.

GET / requires auth, which is probably a bug.

Note: cdent used gabbi to make these discoveries.

Examples

Ceilometer

Requires Authentication

GET /
{
   "versions" : {
      "values" : [
         {
            "updated" : "2013-02-13T00:00:00Z",
            "status" : "stable",
            "media-types" : [
               {
                  "base" : "application/json",
                  "type" : "application/vnd.openstack.telemetry-v2+json"
               },
               {
                  "type" : "application/vnd.openstack.telemetry-v2+xml",
                  "base" : "application/xml"
               }
            ],
            "id" : "v2",
            "links" : [
               {
                  "href" : "http://localhost:8777/v2",
                  "rel" : "self"
               },
               {
                  "href" : "http://docs.openstack.org/",
                  "type" : "text/html",
                  "rel" : "describedby"
               }
            ]
         }
      ]
   }
}

GET /v2 is a 404

Aodh

Requires authentication

GET /
{
   "versions" : {
      "values" : [
         {
            "updated" : "2013-02-13T00:00:00Z",
            "media-types" : [
               {
                  "type" : "application/vnd.openstack.telemetry-v2+json",
                  "base" : "application/json"
               },
               {
                  "base" : "application/xml",
                  "type" : "application/vnd.openstack.telemetry-v2+xml"
               }
            ],
            "links" : [
               {
                  "rel" : "self",
                  "href" : "http://localhost:8042/v2"
               },
               {
                  "type" : "text/html",
                  "rel" : "describedby",
                  "href" : "http://docs.openstack.org/"
               }
            ],
            "id" : "v2",
            "status" : "stable"
         }
      ]
   }
}

GET /v2 is a 404

Gnocchi

Requires authentication in default devstack

GET /
{
   "versions" : [
      {
         "links" : [
            {
               "rel" : "self",
               "href" : "http://localhost:8041/v1/"
            }
         ],
         "updated" : "2015-03-19",
         "status" : "CURRENT",
         "id" : "v1.0"
      }
   ]
}
GET /v1/
{
   "links" : [
      {
         "href" : "http://localhost:8041/v1",
         "rel" : "self"
      },
      {
         "href" : "http://localhost:8041/v1/aggregation",
         "rel" : "aggregation"
      },
      {
         "href" : "http://localhost:8041/v1/archive_policy",
         "rel" : "archive_policy"
      },
      {
         "rel" : "archive_policy_rule",
         "href" : "http://localhost:8041/v1/archive_policy_rule"
      },
      {
         "href" : "http://localhost:8041/v1/capabilities",
         "rel" : "capabilities"
      },
      {
         "href" : "http://localhost:8041/v1/metric",
         "rel" : "metric"
      },
      {
         "href" : "http://localhost:8041/v1/resource",
         "rel" : "resource"
      },
      {
         "href" : "http://localhost:8041/v1/search",
         "rel" : "search"
      },
      {
         "rel" : "status",
         "href" : "http://localhost:8041/v1/status"
      }
   ],
   "version" : "1.0"
}