
As an expansion of the guidelines around microversions, add guidelines around how services should expose Version Discovery documents. This includes recommendations for putting unversioned endpoints into the catalog. It also includes a completely new thought, so feel free to punch me in the head - that versioned discovery documents should include a collections rel link to allow clients to get from the versioned to the universioned document without having to do URL manipulation. If we can get that in, it should serve as a bridge for those clouds that are still putting versioned endpoints into the catalog for a while for backwards compat reasons. Two related follow-up patches are in-work. One that adds a copy of the consuming-discovery document with all of the extra effort in support of clouds and services that to not implement these guidelines removed, so a "perfect future state" is easy to read. The other is a document recommending a global cloud "profile" that greatly reduces the API burden on clients consuming this information. Change-Id: Id8160048dfffc1ada32ce876a65b02fb7a02306e
42 lines
1.2 KiB
JSON
42 lines
1.2 KiB
JSON
{
|
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
|
"id": "https://specs.openstack.org/openstack/api-wg/_downloads/version-information-schema.json#",
|
|
"type": "object",
|
|
"additionalProperties":false,
|
|
"required":[
|
|
"status",
|
|
"id",
|
|
"links"
|
|
],
|
|
"properties": {
|
|
"status": {
|
|
"description": "Support and lifecycle status of the versioned endpoint.",
|
|
"type": "string",
|
|
"enum": [
|
|
"CURRENT",
|
|
"SUPPORTED",
|
|
"EXPERIMENTAL",
|
|
"DEPRECATED"
|
|
]
|
|
},
|
|
"id": {
|
|
"description": "The major API version.",
|
|
"type": "string",
|
|
"pattern": "^v[0-9]{1,2}.?[0-9]{0,2}$"
|
|
},
|
|
"links": {
|
|
"$ref": "http://json-schema.org/draft-04/links#"
|
|
},
|
|
"max_version": {
|
|
"desciption": "The maximum microversion available",
|
|
"type": "string",
|
|
"pattern": "^[0-9]{1,2}.[0-9]{1,2}$"
|
|
},
|
|
"min_version": {
|
|
"desciption": "The minimum microversion available",
|
|
"type": "string",
|
|
"pattern": "^[0-9]{1,2}.[0-9]{1,2}$"
|
|
}
|
|
}
|
|
}
|