From 368f7dbcc5509f19467e3d68d819736cb73bbf52 Mon Sep 17 00:00:00 2001 From: bria4010 Date: Wed, 22 Jun 2016 17:15:39 -0400 Subject: [PATCH] WADL to RST migration (part 2 - metadefs) This brings the Images API Reference to the glance tree as part of the effort described here: https://wiki.openstack.org/wiki/Documentation/Migrate#API_Reference_Plan This patch includes the Metadefs API reference, with the content revised and corrected. Change-Id: I8c10893e92edb7c608b58d33539ab57ab4f57d3e Closes-bug: #1599314 --- api-ref/source/index.rst | 1 + api-ref/source/v2/metadefs-index.rst | 62 +++ .../source/v2/metadefs-namespaces-objects.inc | 280 ++++++++++ .../v2/metadefs-namespaces-properties.inc | 306 ++++++++++ .../source/v2/metadefs-namespaces-tags.inc | 300 ++++++++++ api-ref/source/v2/metadefs-namespaces.inc | 337 +++++++++++ api-ref/source/v2/metadefs-parameters.yaml | 527 ++++++++++++++++++ api-ref/source/v2/metadefs-resourcetypes.inc | 169 ++++++ api-ref/source/v2/metadefs-schemas.inc | 326 +++++++++++ ...tadef-namespace-create-request-simple.json | 7 + .../metadef-namespace-create-request.json | 39 ++ ...adef-namespace-create-response-simple.json | 12 + .../metadef-namespace-create-response.json | 41 ++ .../metadef-namespace-details-response.json | 40 ++ ...ef-namespace-details-with-rt-response.json | 40 ++ .../metadef-namespace-update-request.json | 7 + .../metadef-namespace-update-response.json | 12 + .../metadef-namespaces-list-response.json | 96 ++++ .../metadef-object-create-request.json | 24 + .../metadef-object-create-response.json | 28 + .../metadef-object-details-response.json | 28 + .../metadef-object-update-request.json | 12 + .../metadef-object-update-response.json | 16 + .../metadef-objects-list-response.json | 112 ++++ .../metadef-properties-list-response.json | 86 +++ .../metadef-property-create-request.json | 15 + .../metadef-property-create-response.json | 15 + .../metadef-property-details-response.json | 15 + .../metadef-property-update-request.json | 15 + .../metadef-property-update-response.json | 15 + ...f-resource-type-assoc-create-response.json | 7 + .../metadef-resource-type-create-request.json | 5 + .../metadef-resource-types-list-response.json | 29 + .../samples/metadef-tag-create-response.json | 5 + .../samples/metadef-tag-details-response.json | 5 + .../samples/metadef-tag-update-request.json | 3 + .../samples/metadef-tag-update-response.json | 5 + .../samples/metadef-tags-create-request.json | 13 + .../samples/metadef-tags-create-response.json | 13 + .../samples/metadef-tags-list-response.json | 13 + ...hemas-metadef-namespace-show-response.json | 234 ++++++++ ...emas-metadef-namespaces-list-response.json | 265 +++++++++ .../schemas-metadef-object-show-response.json | 164 ++++++ ...schemas-metadef-objects-list-response.json | 195 +++++++ ...emas-metadef-properties-list-response.json | 152 +++++ ...chemas-metadef-property-show-response.json | 122 ++++ ...source-type-association-show-response.json | 36 ++ ...ource-type-associations-list-response.json | 67 +++ .../schemas-metadef-tag-show-response.json | 25 + .../schemas-metadef-tags-list-response.json | 56 ++ 50 files changed, 4397 insertions(+) create mode 100644 api-ref/source/v2/metadefs-index.rst create mode 100644 api-ref/source/v2/metadefs-namespaces-objects.inc create mode 100644 api-ref/source/v2/metadefs-namespaces-properties.inc create mode 100644 api-ref/source/v2/metadefs-namespaces-tags.inc create mode 100644 api-ref/source/v2/metadefs-namespaces.inc create mode 100644 api-ref/source/v2/metadefs-parameters.yaml create mode 100644 api-ref/source/v2/metadefs-resourcetypes.inc create mode 100644 api-ref/source/v2/metadefs-schemas.inc create mode 100644 api-ref/source/v2/samples/metadef-namespace-create-request-simple.json create mode 100644 api-ref/source/v2/samples/metadef-namespace-create-request.json create mode 100644 api-ref/source/v2/samples/metadef-namespace-create-response-simple.json create mode 100644 api-ref/source/v2/samples/metadef-namespace-create-response.json create mode 100644 api-ref/source/v2/samples/metadef-namespace-details-response.json create mode 100644 api-ref/source/v2/samples/metadef-namespace-details-with-rt-response.json create mode 100644 api-ref/source/v2/samples/metadef-namespace-update-request.json create mode 100644 api-ref/source/v2/samples/metadef-namespace-update-response.json create mode 100644 api-ref/source/v2/samples/metadef-namespaces-list-response.json create mode 100644 api-ref/source/v2/samples/metadef-object-create-request.json create mode 100644 api-ref/source/v2/samples/metadef-object-create-response.json create mode 100644 api-ref/source/v2/samples/metadef-object-details-response.json create mode 100644 api-ref/source/v2/samples/metadef-object-update-request.json create mode 100644 api-ref/source/v2/samples/metadef-object-update-response.json create mode 100644 api-ref/source/v2/samples/metadef-objects-list-response.json create mode 100644 api-ref/source/v2/samples/metadef-properties-list-response.json create mode 100644 api-ref/source/v2/samples/metadef-property-create-request.json create mode 100644 api-ref/source/v2/samples/metadef-property-create-response.json create mode 100644 api-ref/source/v2/samples/metadef-property-details-response.json create mode 100644 api-ref/source/v2/samples/metadef-property-update-request.json create mode 100644 api-ref/source/v2/samples/metadef-property-update-response.json create mode 100644 api-ref/source/v2/samples/metadef-resource-type-assoc-create-response.json create mode 100644 api-ref/source/v2/samples/metadef-resource-type-create-request.json create mode 100644 api-ref/source/v2/samples/metadef-resource-types-list-response.json create mode 100644 api-ref/source/v2/samples/metadef-tag-create-response.json create mode 100644 api-ref/source/v2/samples/metadef-tag-details-response.json create mode 100644 api-ref/source/v2/samples/metadef-tag-update-request.json create mode 100644 api-ref/source/v2/samples/metadef-tag-update-response.json create mode 100644 api-ref/source/v2/samples/metadef-tags-create-request.json create mode 100644 api-ref/source/v2/samples/metadef-tags-create-response.json create mode 100644 api-ref/source/v2/samples/metadef-tags-list-response.json create mode 100644 api-ref/source/v2/samples/schemas-metadef-namespace-show-response.json create mode 100644 api-ref/source/v2/samples/schemas-metadef-namespaces-list-response.json create mode 100644 api-ref/source/v2/samples/schemas-metadef-object-show-response.json create mode 100644 api-ref/source/v2/samples/schemas-metadef-objects-list-response.json create mode 100644 api-ref/source/v2/samples/schemas-metadef-properties-list-response.json create mode 100644 api-ref/source/v2/samples/schemas-metadef-property-show-response.json create mode 100644 api-ref/source/v2/samples/schemas-metadef-resource-type-association-show-response.json create mode 100644 api-ref/source/v2/samples/schemas-metadef-resource-type-associations-list-response.json create mode 100644 api-ref/source/v2/samples/schemas-metadef-tag-show-response.json create mode 100644 api-ref/source/v2/samples/schemas-metadef-tags-list-response.json diff --git a/api-ref/source/index.rst b/api-ref/source/index.rst index 22f1e86bb1..7a90c13504 100644 --- a/api-ref/source/index.rst +++ b/api-ref/source/index.rst @@ -24,3 +24,4 @@ Image Service APIs versions/index v1/index v2/index + v2/metadefs-index diff --git a/api-ref/source/v2/metadefs-index.rst b/api-ref/source/v2/metadefs-index.rst new file mode 100644 index 0000000000..df869c3094 --- /dev/null +++ b/api-ref/source/v2/metadefs-index.rst @@ -0,0 +1,62 @@ +.. + Copyright 2010 OpenStack Foundation + All Rights Reserved. + + Licensed under the Apache License, Version 2.0 (the "License"); you may + not use this file except in compliance with the License. You may obtain + a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + License for the specific language governing permissions and limitations + under the License. + +:tocdepth: 3 + +============================================= +Metadata Definitions Service API v2 (CURRENT) +============================================= + +.. rest_expand_all:: + +Metadefs +******** + +General information +~~~~~~~~~~~~~~~~~~~ + +The Metadata Definitions Service ("metadefs", for short) provides a common API +for vendors, operators, administrators, services, and users to meaningfully +define available key:value pairs that can be used on different types of cloud +resources (for example, images, artifacts, volumes, flavors, aggregates, etc). +To get you started, Glance contains a default catalog of metadefs that may be +installed at your site; see the `README +`_ in the +code repository for details. + +Once a common catalog of metadata definitions has been created, the catalog is +available for querying through the API. Note that this service stores only the +*catalog*, because metadefs are meta-metadata. Metadefs provide information +*about* resource metadata, but do not themselves serve as actual metadata. + +Actual key:value pairs are stored on the resources to which they apply using +the metadata facilities provided by the appropriate API. (For example, the +Images API would be used to put specific key:value pairs on a virtual machine +image.) + +A metadefs definition includes a property’s key, its description, its +constraints, and the resource types to which it can be associated. See +`Metadata Definition Concepts +`_ in the +Glance Developer documentation for more information. + + +.. include:: metadefs-namespaces.inc +.. include:: metadefs-resourcetypes.inc +.. include:: metadefs-namespaces-objects.inc +.. include:: metadefs-namespaces-properties.inc +.. include:: metadefs-namespaces-tags.inc +.. include:: metadefs-schemas.inc diff --git a/api-ref/source/v2/metadefs-namespaces-objects.inc b/api-ref/source/v2/metadefs-namespaces-objects.inc new file mode 100644 index 0000000000..4c69755685 --- /dev/null +++ b/api-ref/source/v2/metadefs-namespaces-objects.inc @@ -0,0 +1,280 @@ +.. -*- rst -*- + +Metadata definition objects +*************************** + +Creates, lists, shows details for, updates, and deletes metadata definition +objects. + +*Since API v2.2* + +Create object +~~~~~~~~~~~~~ + +.. rest_method:: POST /v2/metadefs/namespaces/{namespace_name}/objects + +Creates an object definition in a namespace. + +Normal response codes: 201 + +Error response codes: 400, 401, 403, 404, 409 + + +Request +------- + +.. rest_parameters:: metadefs-parameters.yaml + + - namespace_name: namespace_name + - name: object-name + - description: object-description-in-request + - properties: object-properties-in-request + - required: object-required-in-request + +Request Example +--------------- + +.. literalinclude:: samples/metadef-object-create-request.json + :language: json + + +Response Parameters +------------------- + +.. rest_parameters:: metadefs-parameters.yaml + + - created_at: created_at + - description: object-description + - name: object-name + - properties: object-properties + - required: object-required + - schema: object-schema + - self: self + - updated_at: updated_at + +Response Example +---------------- + +.. literalinclude:: samples/metadef-object-create-response.json + :language: json + + +List objects +~~~~~~~~~~~~ + +.. rest_method:: GET /v2/metadefs/namespaces/{namespace_name}/objects + +Lists object definitions in a namespace. + +Returns a subset of the larger collection of namespaces and a link +that you can use to get the next set of namespaces. You should +always check for the presence of a ``next`` link and use it as the +URI in a subsequent HTTP GET request. You should follow this +pattern until a ``next`` link is no longer provided. The next link +preserves any query parameters that you send in your initial +request. You can use the ``first`` link to jump back to the first +page of the collection. If you prefer to paginate through +namespaces manually, use the ``limit`` and ``marker`` parameters. + +Use the ``resource_types`` and ``visibility`` query parameters to +filter the response. + +For example, set the ``resource_types`` query parameter to +``OS::Glance::Image,OS::Nova::Flavor`` to filter the response to +include only namespaces that are associated with the given resource +types. + +You can sort the results of this operation by using the +``sort_key`` and ``sort_dir`` parameters. The API uses the natural +sorting of whatever namespace attribute is provided as the +``sort_key``. + + +Normal response codes: 200 + +Error response codes: 401, 403, 404 + + +Request +------- + +.. rest_parameters:: metadefs-parameters.yaml + + - namespace_name: namespace_name + - visibility: visibility-in-query + - resource_types: resource_types-in-query + - sort_key: sort_key + - sort_dir: sort_dir + + +Response Parameters +------------------- + +.. rest_parameters:: metadefs-parameters.yaml + + - display_name: display_name + - description: description + - namespace: namespace + - visibility: visibility + - protected: protected + - namespaces: namespaces + - resource_type_associations: resource_type_associations + + +Response Example +---------------- + +.. literalinclude:: samples/metadef-objects-list-response.json + :language: json + + + +Show object +~~~~~~~~~~~ + +.. rest_method:: GET /v2/metadefs/namespaces/{namespace_name}/objects/{object_name} + +Shows the definition for an object. + +The response body shows a single object entity. + +Normal response codes: 200 + +.. yep, 400 if the request includes a body + +Error response codes: 400, 401, 403, 404 + + +Request +------- + +.. rest_parameters:: metadefs-parameters.yaml + + - namespace_name: namespace_name + - object_name: object_name + +There is no request body. + + +Response Parameters +------------------- + +.. rest_parameters:: metadefs-parameters.yaml + + - created_at: created_at + - description: object-description + - name: object-name + - properties: object-properties + - required: object-required + - schema: object-schema + - self: self + - updated_at: updated_at + + +Response Example +---------------- + +.. literalinclude:: samples/metadef-object-details-response.json + :language: json + + + +Update object +~~~~~~~~~~~~~ + +.. rest_method:: PUT /v2/metadefs/namespaces/{namespace_name}/objects/{object_name} + +Updates an object definition in a namespace. + +The object resource is completely replaced by what you specify in the request +body. Thus, if you leave out any of the optional parameters, and they exist in +the current object, they will be eliminated by this call. + +It is possible to change the name of the object with this call; if you do, note +that the URL for the object (specified by the ``self`` field) will change. + +Normal response codes: 200 + +Error response codes: 400, 401, 403, 404, 409 + + +Request +------- + +.. rest_parameters:: metadefs-parameters.yaml + + - namespace_name: namespace_name + - object_name: object_name + - name: object-name + - description: object-description-in-request + - properties: object-properties-in-request + - required: object-required-in-request + + +Request Example +--------------- + +.. literalinclude:: samples/metadef-object-update-request.json + :language: json + + +Response Parameters +------------------- + +.. rest_parameters:: metadefs-parameters.yaml + + - created_at: created_at + - description: object-description + - name: object-name + - properties: object-properties + - required: object-required + - schema: object-schema + - self: self + - updated_at: updated_at + + +Response Example +---------------- + +.. literalinclude:: samples/metadef-object-update-response.json + :language: json + + + +Delete object +~~~~~~~~~~~~~ + +.. rest_method:: DELETE /v2/metadefs/namespaces/{namespace_name}/objects/{object_name} + +Deletes an object definition from a namespace. + +.. note:: + If the namespace containing the object is protected, that is, if the + ``protected`` attribute of the namespace is ``true``, then you must first + set the ``protected`` attribute to ``false`` on the namespace before you + will be permitted to delete the object. + + * If you try to delete an object from a protected namespace, the call + returns the ``403`` response code. + * To change the ``protected`` attribute of a namespace, use the + :ref:`Update namespace ` call. + +When you successfully delete an object from a namespace, the +response is empty and the response code is ``204``. + +Normal response codes: 204 + +Error response codes: 400, 401, 403, 404 + + +Request +------- + +.. rest_parameters:: metadefs-parameters.yaml + + - namespace_name: namespace_name + - object_name: object_name + +There is no request body. + +There is no response body. diff --git a/api-ref/source/v2/metadefs-namespaces-properties.inc b/api-ref/source/v2/metadefs-namespaces-properties.inc new file mode 100644 index 0000000000..0a518bce6e --- /dev/null +++ b/api-ref/source/v2/metadefs-namespaces-properties.inc @@ -0,0 +1,306 @@ +.. -*- rst -*- + +Metadata definition properties +****************************** + +Creates, lists, shows details for, updates, and deletes metadata definition +properties. + +*Since API v2.2* + +Create property +~~~~~~~~~~~~~~~ + +.. rest_method:: POST /v2/metadefs/namespaces/{namespace_id}/properties + +Creates a property definition in a namespace. + +The schema is a subset of the JSON property definition schema. + +Normal response codes: 201 + +Error response codes: 404 + + +Request +------- + +.. rest_parameters:: metadefs-parameters.yaml + + - namespace_name: namespace_name + - name: name + - title: title + - type: type + - additionalItems: additionalItems + - description: property-description-in-request + - default: default + - items: items + - operators: operators + - enum: enum + - maximum: maximum + - minItems: minItems + - readonly: readonly + - minimum: minimum + - maxItems: maxItems + - maxLength: maxLength + - uniqueItems: uniqueItems + - pattern: pattern + - minLength: minLength + +Request Example +--------------- + +.. literalinclude:: samples/metadef-property-create-request.json + :language: json + + +Response Parameters +------------------- + +.. rest_parameters:: metadefs-parameters.yaml + + - additionalItems: additionalItems + - description: property-description + - title: title + - default: default + - items: items + - operators: operators + - enum: enum + - maximum: maximum + - minItems: minItems + - readonly: readonly + - minimum: minimum + - maxItems: maxItems + - maxLength: maxLength + - uniqueItems: uniqueItems + - pattern: pattern + - type: type + - minLength: minLength + - name: name + +Response Example +---------------- + +.. literalinclude:: samples/metadef-property-create-response.json + :language: json + + +List properties +~~~~~~~~~~~~~~~ + +.. rest_method:: + GET /v2/metadefs/namespaces/{namespace_name}/properties + +Lists property definitions in a namespace. + +Normal response codes: 200 + +Error response codes: 400, 401, 403, 404 + + +Request +------- + +.. rest_parameters:: metadefs-parameters.yaml + + - namespace_id: namespace_name + +There is no request body. + + +Response Parameters +------------------- + +.. rest_parameters:: metadefs-parameters.yaml + + - properties: properties-dict + + +Response Example +---------------- + +.. literalinclude:: samples/metadef-properties-list-response.json + :language: json + + +Show property definition +~~~~~~~~~~~~~~~~~~~~~~~~ + +.. rest_method:: + GET /v2/metadefs/namespaces/{namespace_name}/properties/{property_name} + +Shows the definition for a property. + +If you use the ``resource_type`` query parameter, the API removes the prefix of +the resource type from the property name before it submits the query. This +enables you to look for a property name that starts with a prefix from an +associated resource type. + +The response body shows a single property entity. + + +Normal response codes: 200 + +Error response codes: 401, 403, 404 + + +Request +------- + +.. rest_parameters:: metadefs-parameters.yaml + + - property_name: property_name + - namespace_name: namespace_name + - resource_type: resource_type-in-query + + +Response Parameters +------------------- + +.. rest_parameters:: metadefs-parameters.yaml + + - additionalItems: additionalItems + - description: property-description + - title: title + - default: default + - items: items + - operators: operators + - enum: enum + - maximum: maximum + - minItems: minItems + - readonly: readonly + - minimum: minimum + - maxItems: maxItems + - maxLength: maxLength + - uniqueItems: uniqueItems + - pattern: pattern + - type: type + - minLength: minLength + - name: name + + + +Response Example +---------------- + +.. literalinclude:: samples/metadef-property-details-response.json + :language: json + + + + +Update property definition +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. rest_method:: + PUT /v2/metadefs/namespaces/{namespace_name}/properties/{property_name} + +Updates a property definition. + +Normal response codes: 200 + +Error response codes: 400, 401, 403, 404, 409 + + +Request +------- + +.. rest_parameters:: metadefs-parameters.yaml + + - namespace_name: namespace_name + - property_name: property_name + - name: name-property + - title: title + - type: type + - additionalItems: additionalItems + - description: description + - default: default + - items: items + - operators: operators + - enum: enum + - maximum: maximum + - minItems: minItems + - readonly: readonly + - minimum: minimum + - maxItems: maxItems + - maxLength: maxLength + - uniqueItems: uniqueItems + - pattern: pattern + - minLength: minLength + +Request Example +--------------- + +.. literalinclude:: samples/metadef-property-create-request.json + :language: json + + +Response Parameters +------------------- + +.. rest_parameters:: metadefs-parameters.yaml + + - additionalItems: additionalItems + - description: description + - title: title + - default: default + - items: items + - operators: operators + - enum: enum + - maximum: maximum + - minItems: minItems + - readonly: readonly + - minimum: minimum + - maxItems: maxItems + - maxLength: maxLength + - uniqueItems: uniqueItems + - pattern: pattern + - type: type + - minLength: minLength + - name: name-property + + + +Response Example +---------------- + +.. literalinclude:: samples/metadef-property-update-response.json + :language: json + + + +Remove property definition +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. rest_method:: + DELETE /v2/metadefs/namespaces/{namespace_name}/properties/{property_name} + +Removes a property definition from a namespace. + +.. note:: + If the namespace containing the property is protected, that is, if the + ``protected`` attribute of the namespace is ``true``, then you must first + set the ``protected`` attribute to ``false`` on the namespace before you + will be permitted to delete the property. + + * If you try to delete a property from a protected namespace, the call + returns the ``403`` response code. + * To change the ``protected`` attribute of a namespace, use the + :ref:`Update namespace ` call. + +When you successfully delete a property from a namespace, the +response is empty and the response code is ``204``. + +Normal response codes: 204 + +Error response codes: 401, 403, 404 + + +Request +------- + +.. rest_parameters:: metadefs-parameters.yaml + + - property_name: property_name + - namespace_name: namespace_name + diff --git a/api-ref/source/v2/metadefs-namespaces-tags.inc b/api-ref/source/v2/metadefs-namespaces-tags.inc new file mode 100644 index 0000000000..6d52fad549 --- /dev/null +++ b/api-ref/source/v2/metadefs-namespaces-tags.inc @@ -0,0 +1,300 @@ +.. -*- rst -*- + +Metadata definition tags +************************ + +Creates, lists, shows details for, updates, and deletes metadata +definition tags. + +*Since API v2.2* + + +Create tag definition +~~~~~~~~~~~~~~~~~~~~~ + +.. rest_method:: + POST /v2/metadefs/namespaces/{namespace_name}/tags/{tag_name} + +Adds a tag to the list of namespace tag definitions. + +Normal response codes: 201 + +Error response codes: 400, 401, 403, 404, 409 + + +Request +------- + +.. rest_parameters:: metadefs-parameters.yaml + + - namespace_name: namespace_name + - tag_name: tag_name + +There is no request body. + + +Response Parameters +------------------- + +.. rest_parameters:: metadefs-parameters.yaml + + - created_at: created_at + - name: name-tag + - updated_at: updated_at + + +Response Example +---------------- + +.. literalinclude:: samples/metadef-tag-create-response.json + :language: json + + +Get tag definition +~~~~~~~~~~~~~~~~~~ + +.. rest_method:: + GET /v2/metadefs/namespaces/{namespace_name}/tags/{tag_name} + +Gets a definition for a tag. + +The response body shows a single tag entity. + +Normal response codes: 200 + +Error response codes: 400, 401, 403, 404 + + +Request +------- + +.. rest_parameters:: metadefs-parameters.yaml + + - tag_name: tag_name + - namespace_name: namespace_name + +There is no request body. + +Response Parameters +------------------- + +.. rest_parameters:: metadefs-parameters.yaml + + - created_at: created_at + - name: name-tag + - updated_at: updated_at + + +Response Example +---------------- + +.. literalinclude:: samples/metadef-tag-details-response.json + :language: json + + +Update tag definition +~~~~~~~~~~~~~~~~~~~~~ + +.. rest_method:: + PUT /v2/metadefs/namespaces/{namespace_name}/tags/{tag_name} + +Renames a tag definition. + +Normal response codes: 200 + +Error response codes: 400, 401, 403, 404, 409 + + +Request +------- + +.. rest_parameters:: metadefs-parameters.yaml + + - tag_name: tag_name + - namespace_name: namespace_name + - name: name-tag + +Request Example +--------------- + +.. literalinclude:: samples/metadef-tag-update-request.json + :language: json + + +Response Parameters +------------------- + +.. rest_parameters:: metadefs-parameters.yaml + + - created_at: created_at + - name: name-tag + - updated_at: updated_at + + +Response Example +---------------- + +.. literalinclude:: samples/metadef-tag-update-response.json + :language: json + + +Delete tag definition +~~~~~~~~~~~~~~~~~~~~~ + +.. rest_method:: + DELETE /v2/metadefs/namespaces/{namespace_name}/tags/{tag_name} + +Deletes a tag definition within a namespace. + +.. note:: + If the namespace containing the tag is protected, that is, if the + ``protected`` attribute of the namespace is ``true``, then you must first + set the ``protected`` attribute to ``false`` on the namespace before you + will be permitted to delete the tag. + + * If you try to delete a tag from a protected namespace, the call returns + the ``403`` response code. + * To change the ``protected`` attribute of a namespace, use the + :ref:`Update namespace ` call. + +When you successfully delete a tag from a namespace, the response is empty and +the response code is ``204``. + +Normal response codes: 204 + +Error response codes: 400, 401, 403, 404 + + +Request +------- + +.. rest_parameters:: metadefs-parameters.yaml + + - namespace_name: namespace_name + - tag_name: tag_name + + +Create tags +~~~~~~~~~~~ + +.. rest_method:: POST /v2/metadefs/namespaces/{namespace_name}/tags + +Creates one or more tag definitions in a namespace. + +Normal response codes: 201 + +Error response codes: 400, 401, 403, 404, 409 + + +Request +------- + +.. rest_parameters:: metadefs-parameters.yaml + + - namespace_name: namespace_name + - tags: tags + +Request Example +--------------- + +.. literalinclude:: samples/metadef-tags-create-request.json + :language: json + +Response Parameters +------------------- + +.. rest_parameters:: metadefs-parameters.yaml + + - name: name + - tags: tags + +Response Example +---------------- + +.. literalinclude:: samples/metadef-tag-create-response.json + :language: json + + + +List tags +~~~~~~~~~ + +.. rest_method:: + GET /v2/metadefs/namespaces/{namespace_name}/tags + +Lists the tag definitions within a namespace. + +To manually paginate through the list of tags, use the ``limit`` +and ``marker`` parameters. + +To sort the results of this operation use the ``sort_key`` and +``sort_dir`` parameters. The API uses the natural sort order of the +tag attribute of the ``sort_key`` parameter. + + +Normal response codes: 200 + +Error response codes: 401, 403, 404 + + +Request +------- + +.. rest_parameters:: metadefs-parameters.yaml + + - namespace_name: namespace_name + - limit: limit-tags + - marker: marker-tags + - sort_key: sort_key-tags + - sort_dir: sort_dir + +There is no request body. + +Response Parameters +------------------- + +.. rest_parameters:: metadefs-parameters.yaml + + - tags: tags + + +Response Example +---------------- + +.. literalinclude:: samples/metadef-tags-list-response.json + :language: json + + +Delete all tag definitions +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. rest_method:: + DELETE /v2/metadefs/namespaces/{namespace_name}/tags + +Deletes all tag definitions within a namespace. + +.. note:: + If the namespace containing the tags is protected, that is, if the + ``protected`` attribute of the namespace is ``true``, then you must first + set the ``protected`` attribute to ``false`` on the namespace before you + will be permitted to delete the tags. If you try to delete the tags + from a protected namespace, the call returns the ``403`` response code. + +When you successfully delete the tags from a namespace, the +response is empty and the response code is ``204``. + +Normal response codes: 204 + +Error response codes: 403, 404 + + +Request +------- + +.. rest_parameters:: metadefs-parameters.yaml + + - namespace_name: namespace_name + +There is no request body. + +There is no response body. diff --git a/api-ref/source/v2/metadefs-namespaces.inc b/api-ref/source/v2/metadefs-namespaces.inc new file mode 100644 index 0000000000..3be8995d40 --- /dev/null +++ b/api-ref/source/v2/metadefs-namespaces.inc @@ -0,0 +1,337 @@ +.. -*- rst -*- + +Metadata definition namespaces +****************************** + +Creates, lists, shows details for, updates, and deletes metadata +definition namespaces. Defines namespaces that can contain property +definitions, object definitions, and resource type associations. + +*Since API v2.2* + + +Create namespace +~~~~~~~~~~~~~~~~ + +.. rest_method:: POST /v2/metadefs/namespaces + +Creates a namespace. + +A namespace must be unique across all users. Attempting to create an already +existing namespace will result in a 409 (Conflict) response. + +The ``Location`` response header contains the newly-created URI for +the namespace. + +Normal response codes: 201 + +Error response codes: 400, 401, 403, 409 + + +Request +------- + +.. rest_parameters:: metadefs-parameters.yaml + + - namespace: namespace + - display_name: display_name + - description: description + - visibility: visibility-in-request + - protected: protected-in-request + +The request body may also contain properties, objects, and resource type +associations, or these can be added later by the :ref:`v2-update-namespace` +call. + +Request Example +--------------- + +.. literalinclude:: samples/metadef-namespace-create-request-simple.json + :language: json + + +Response Parameters +------------------- + +.. rest_parameters:: metadefs-parameters.yaml + + - Location: Location + - created_at: created_at + - description: description + - display_name: display_name + - namespace: namespace + - owner: owner + - protected: protected + - schema: schema-namespace + - self: self + - updated_at: updated_at + - visibility: visibility + +If the request body contained properties, objects, or resource type +associations, these will be included in the response. + + +Response Example +---------------- + +.. code-block:: console + + HTTP/1.1 201 Created + Content-Length: 427 + Content-Type: application/json; charset=UTF-8 + Location: http://glance.openstack.org/v2/metadefs/namespaces/FredCo::SomeCategory::Example + X-Openstack-Request-Id: req-6d4a8ad2-c018-4bfc-8fe5-1a36c23c43eb + Date: Thu, 19 May 2016 16:05:48 GMT + +.. literalinclude:: samples/metadef-namespace-create-response-simple.json + :language: json + + +List namespaces +~~~~~~~~~~~~~~~ + +.. rest_method:: GET /v2/metadefs/namespaces + +Lists available namespaces. + +Returns a list of namespaces to which the authenticated user has access. If +the list is too large to fit in a single response, either because of operator +configuration or because you've included a ``limit`` query parameter in the +request to restrict the response size, the response will contain a link that +you can use to get the next page of namespaces. Check for the presence of a +``next`` link and use it as the URI in a subsequent HTTP GET request. Follow +this pattern until a ``next`` link is no longer provided. + +The ``next`` link preserves any query parameters that you send in your initial +request. You can use the ``first`` link to return to the first page in the +collection. If you prefer to paginate through namespaces manually, use the +``limit`` and ``marker`` parameters. + +The list operation accepts the ``resource_types`` and ``visibility`` query +parameters, which you can use to filter the response. + +To sort the results of this operation, use the ``sort_key`` and ``sort_dir`` +parameters. The API uses the natural sorting order in the namespace attribute +that you provide as the ``sort_key`` parameter. + +Normal response codes: 200 + +Error response codes: 401, 403, 404 + + +Request +------- + +.. rest_parameters:: metadefs-parameters.yaml + + - limit: limit + - marker: marker + - visibility: visibility-in-query + - resource_types: resource_types-in-query + - sort_key: sort_key + - sort_dir: sort_dir + +Response Parameters +------------------- + +.. rest_parameters:: metadefs-parameters.yaml + + - first: first + - namespaces: namespaces + - next: next + - schema: schema-namespaces + +Response Example +---------------- + +.. literalinclude:: samples/metadef-namespaces-list-response.json + :language: json + + +Get namespace details +~~~~~~~~~~~~~~~~~~~~~ + +.. rest_method:: GET /v2/metadefs/namespaces/{namespace_name} + +Gets details for a namespace. + +The response body shows a single namespace entity with all details +including properties, objects, and resource type associations. + +If the namespace contains a resource type association that specifies a prefix, +you may optionally include the name of the resource type as a query parameter. +In that case, the prefix will be applied to all property names in the response. +(See below for an example.) + +Normal response codes: 200 + +.. returns 400 if a request body is sent + +Error response codes: 400, 401, 403, 404 + + +Request +------- + +.. rest_parameters:: metadefs-parameters.yaml + + - namespace_name: namespace_name + - resource_type: resource_type-in-query-namespace-detail + +The request does not take a body. + + +Response Parameters +------------------- + +.. rest_parameters:: metadefs-parameters.yaml + + - created_at: created_at + - description: description + - display_name: display_name + - namespace: namespace + - objects: objects + - owner: owner + - properties: properties-dict + - protected: protected + - resource_type_associations: resource_type_associations + - schema: schema-namespace + - self: self + - visibility: visibility + + +Response Example +---------------- + +.. literalinclude:: samples/metadef-namespace-details-response.json + :language: json + +Response Example (with resource_type query parameter) +----------------------------------------------------- + +This is the result of the following request: + +``GET /v2/metadefs/namespaces/OS::Compute::Libvirt?resource_type=OS::Glance::Image`` + +Note that the name of each property has had the appropriate prefix applied to +it. + +.. literalinclude:: samples/metadef-namespace-details-with-rt-response.json + :language: json + + +.. _v2-update-namespace: + +Update namespace +~~~~~~~~~~~~~~~~ + +.. rest_method:: PUT /v2/metadefs/namespaces/{namespace_name} + +Updates a namespace. + +.. note:: + Be careful using this call, especially when all you want to do is change the + ``protected`` value so that you can delete some objects, properties, or + resource type associations in the namespace. + + While only the ``namespace`` is required in the request body, if this call + is made with *only* the ``namespace`` in request body, the other attributes + listed below will be set to their default values -- which in the case of + ``description`` and ``display_name``, is null. + + So if you want to change *only* the ``protected`` value with this call, be + sure to also include the current values of the following parameters in the + request body: + + - ``description`` + - ``display_name`` + - ``namespace`` + - ``visibility`` + + The objects, properties, and resource type associations in a namespace + are unaffected by this call. + +Normal response codes: 200 + +Error response codes: 400, 401, 403, 404, 409 + + +Request +------- + +.. rest_parameters:: metadefs-parameters.yaml + + - namespace_name: namespace_name + - description: description + - display_name: display_name + - namespace: namespace + - protected: protected-in-request + - visibility: visibility-in-request + +Request Example +--------------- + +.. literalinclude:: samples/metadef-namespace-update-request.json + :language: json + +Response Parameters +------------------- + +.. rest_parameters:: metadefs-parameters.yaml + + - created_at: created_at + - description: description + - display_name: display_name + - namespace: namespace + - owner: owner + - protected: protected + - schema: schema-namespace + - self: self + - updated_at: updated_at + - visibility: visibility + + +Response Example +---------------- + +.. literalinclude:: samples/metadef-namespace-update-response.json + :language: json + + +Delete namespace +~~~~~~~~~~~~~~~~ + +.. rest_method:: DELETE /v2/metadefs/namespaces/{namespace_name} + +Deletes a namespace and its properties, objects, and any resource type +associations. + +.. note:: + + If the namespace is protected, that is, if the ``protected`` attribute of + the namespace is ``true``, then you must first set the ``protected`` + attribute to ``false`` on the namespace before you will be permitted to + delete it. + + * If you try to delete a protected namespace, the call returns the ``403`` + response code. + * To change the ``protected`` attribute of a namespace, use the + :ref:`Update namespace ` call. + +A successful operation returns the HTTP ``204`` (No Content) response code. + +Normal response codes: 204 + +Error response codes: 400, 401, 403, 404 + + +Request +------- + +.. rest_parameters:: metadefs-parameters.yaml + + - namespace_name: namespace_name + +The request does not take a body. + +The request does not return a body. diff --git a/api-ref/source/v2/metadefs-parameters.yaml b/api-ref/source/v2/metadefs-parameters.yaml new file mode 100644 index 0000000000..96a326462a --- /dev/null +++ b/api-ref/source/v2/metadefs-parameters.yaml @@ -0,0 +1,527 @@ +# variables in header +Content-Type-json: + description: | + The media type descriptor for the request body. Use + ``application/json``. + in: header + required: true + type: string +Location: + description: | + The newly-created URI for the namespace. + in: header + required: true + type: string + +# variables in path +name: + description: | + Name of the resource type. + in: path + required: true + type: string +namespace_name: + description: | + The name of the namespace whose details you want to see. (The name is the + value of a namespace's ``namespace`` field.) + in: path + required: true + type: string +object_name: + description: | + The name of the object. + in: path + required: true + type: string +property_name: + description: | + The name of the property. + in: path + required: true + type: string +resource_type_name: + description: | + The name of the resource type. + in: path + required: true + type: string +tag_name: + description: | + The name of the tag. + in: path + required: true + type: string + +# variables in query +limit: + description: | + Requests a page size of items. Returns a number of items up to a limit + value. Use the ``limit`` parameter to make an initial limited request and + use the ID of the last-seen item from the response as the ``marker`` + parameter value in a subsequent limited request. + in: query + required: false + type: integer +limit-tags: + description: | + Requests a page size of tags. Returns a number of tags up to a limit + value. Use the ``limit`` parameter to make an initial limited request and + use the name of the last-seen tag from the response as the ``marker`` + parameter value in a subsequent limited request. + in: query + required: false + type: integer +marker: + description: | + Allows specification of a *namespace identifier*. When present, only + namespaces occurring after that namespace will be listed, that is, + those namespaces having a ``sort_key`` later than that of the marker + in the ``sort_dir`` direction. + in: query + required: false + type: string +marker-tags: + description: | + Allows specification of a tag name. When present, only tags occurring + *after* the named tag will be listed, that is, those namespaces having a + ``sort_key`` later than that of the marker in the ``sort_dir`` direction. + in: query + required: false + type: string +resource_type-in-query: + description: | + Filters the response by property names that start with a prefix from an + associated resource type. The API removes the prefix of the resource type + from the property name in the response. + in: query + required: false + type: string +resource_type-in-query-namespace-detail: + description: | + Apply the prefix for the specified resource type to the names of the + properties listed in the response. If the resource type specified does not + have an association with this namespace, or if the resource type is + associated but does not have a prefix defined in this namespace, this + parameter is ignored. + in: query + required: false + type: string +resource_types-in-query: + description: | + Filters the response to include only those namespaces that contain the + specified resource type or types as resource type associations. Use the + comma (``,``) character to separate multiple values. For example, + ``OS::Glance::Image,OS::Nova::Flavor`` shows only namespaces associated + with these resource types. + in: query + required: false + type: integer +sort_dir: + description: | + Sorts the response. Use ``asc`` for ascending or ``desc`` for descending + order. The default is ``desc``. + in: query + required: false + type: string +sort_key: + description: | + Sorts the response by an attribute. Accepted values are ``namespace``, + ``created_at``, and ``updated_at``. Default is ``created_at``. + in: query + required: false + type: string +sort_key-tags: + description: | + Sorts the response by an attribute. Accepted values are ``name``, + ``created_at``, and ``updated_at``. Default is ``created_at``. + in: query + required: false + type: string +visibility-in-query: + description: | + Filters the response by a namespace visibility value. A valid value is + ``public`` or ``private``. If you omit this parameter, the response shows + both ``public`` and ``private`` namespaces. + in: query + required: false + type: string + +# variables in body +additionalItems: + description: | + Describes extra items, if you use tuple typing. If the value of ``items`` + is an array (tuple typing) and the instance is longer than the list of + schemas in ``items``, the additional items are described by the schema in + this property. If this value is ``false``, the instance cannot be longer + than the list of schemas in ``items``. If this value is ``true``, that is + equivalent to the empty schema (anything goes). + in: body + required: false + type: string +created_at: + description: | + The date and time when the resource was created. + + The date and time stamp format is `ISO 8601 + `_. + in: body + required: true + type: string +default: + description: | + Default property description. + in: body + required: false + type: string +description: + description: | + The description of the namespace. + in: body + required: false + type: string +display_name: + description: | + User-friendly name to use in a UI to display the namespace name. + in: body + required: false + type: string +enum: + description: | + Enumerated list of property values. + in: body + required: true + type: array +enum-in-request: + description: | + Enumerated list of property values. + in: body + required: false + type: array +first: + description: | + The URI for the first page of response. + in: body + required: true + type: string +hypervisor_type: + description: | + Hypervisor type of property values. + in: body + required: true + type: object +items: + description: | + Schema for the items in an array. + in: body + required: false + type: string +maximum: + description: | + Maximum allowed numerical value. + in: body + required: false + type: string +maxItems: + description: | + Maximum length of an array. + in: body + required: false + type: string +maxLength: + description: | + Maximum allowed string length. + in: body + required: false + type: string +minimum: + description: | + Minimum allowed numerical value. + in: body + required: false + type: string +minItems: + description: | + Minimum length of an array. + in: body + required: false + type: string +minLength: + description: | + Minimum allowed string length. + in: body + required: false + type: string +name-property: + description: | + The name of the property. + in: body + required: true + type: string +name-resource-type: + description: | + Name of the resource type. + in: body + required: true + type: string +name-tag: + description: | + The name of the tag. + in: body + required: true + type: string +namespace: + description: | + An identifier (a name) for the namespace. The value must be unique across + all users. + in: body + required: true + type: string +namespaces: + description: | + A list of ``namespace`` objects. + in: body + required: true + type: array +next: + description: | + The URI for the next page of response. Will not be present on the last + page of the response. + in: body + required: true + type: string +object-description: + description: | + Detailed description of the object. + in: body + required: true + type: string +object-description-in-request: + description: | + Detailed description of the object. + in: body + required: false + type: string +object-name: + description: | + The name of the object, suitable for use as an identifier. + in: body + required: true + type: string +object-properties: + description: | + A set of key:value pairs, where each value is a *property* entity. + in: body + required: true + type: object +object-properties-in-request: + description: | + A set of key:value pairs, where each value is a *property* entity. + in: body + required: false + type: object +object-required: + description: | + A list of the names of properties that are required on this object. + in: body + required: true + type: array +object-required-in-request: + description: | + A list of the names of properties that are required on this object. + in: body + required: false + type: array +object-schema: + description: | + The URI of the JSON schema describing an *object*. + in: body + required: true + type: string +objects: + description: | + One or more object definitions of the namespace. + in: body + required: true + type: string +objects-namespace: + description: | + Namespace object definitions, if any. + in: body + required: false + type: object +operators: + description: | + Operators property description. + in: body + required: false + type: string +owner: + description: | + An identifier for the owner of this resource, usually the tenant ID. + in: body + required: true + type: string +pattern: + description: | + A regular expression ( `ECMA 262 + `_ ) + that a string value must match. + in: body + required: false + type: string +prefix: + description: | + Prefix for any properties in the namespace that you want to apply to the + resource type. If you specify a prefix, you must append a prefix separator, + such as the colon (``:``) character. + in: body + required: false + type: string +properties-dict: + description: | + A dictionary of key:value pairs, where each value is a *property* object as + defined by the :ref:`Metadefs Property Schema `. + in: body + required: true + type: object +properties-nonempty: + description: | + One or more property definitions for the + namespace. + in: body + required: true + type: object +properties-nullable: + description: | + Namespace property definitions, if any. + in: body + required: false + type: object +properties_target: + description: | + Some resource types allow more than one key and value pair for each + instance. For example, the Image service allows both user and image + metadata on volumes. The ``properties_target`` parameter enables a + namespace target to remove the ambiguity. + in: body + required: false + type: string +property-description: + description: | + Detailed description of the property. + in: body + required: true + type: string +property-description-in-request: + description: | + Detailed description of the property. + in: body + required: false + type: string +protected: + description: | + Namespace protection for deletion, either ``true`` or ``false``. + in: body + required: true + type: boolean +protected-in-request: + description: | + Namespace protection for deletion. A valid value is ``true`` or + ``false``. Default is ``false``. + in: body + required: false + type: boolean +readonly: + description: | + Indicates whether this is a read-only property. + in: body + required: false + type: boolean +resource_type_associations: + description: | + A list, each element of which is described by the :ref:`Metadefs Resource + Type Association Schema `. + in: body + required: true + type: array +resource_types-list: + description: | + A list of abbreviated *resource type* JSON objects, where each object + contains the ``name`` of the resource type and its ``created_at`` + and ``updated_at`` timestamps in `ISO 8601 Format + `_. + in: body + required: true + type: array +schema-namespace: + description: | + The URI of the JSON schema describing a *namespace*. + in: body + required: true + type: string +schema-namespaces: + description: | + The URI of the JSON schema describing a *namespaces* entity, that is, an + entity consisting of a list of abbreviated namespace objects. + in: body + required: true + type: string +self: + description: | + The URI for this resource. + in: body + required: true + type: string +tag-name: + description: | + The name of the tag. + in: body + required: true + type: string +tags: + description: | + A list of *tag* objects, where each object is defined by the + :ref:`Metadefs Tag Schema `. + in: body + required: true + type: array +title: + description: | + The title of the property. + in: body + required: true + type: string +type: + description: | + The property type. + in: body + required: true + type: string +uniqueItems: + description: | + Indicates whether all values in the array must be distinct. + in: body + required: false + type: string +updated_at: + description: | + The date and time when the resource was last updated. + + The date and time stamp format is `ISO 8601 + `_. + in: body + required: true + type: string +visibility: + description: | + The namespace visibility, either ``public`` or ``private``. + in: body + required: true + type: enum +visibility-in-request: + description: | + The namespace visibility. A valid value is ``public`` or ``private``. + Default is ``private``. + in: body + required: false + type: enum diff --git a/api-ref/source/v2/metadefs-resourcetypes.inc b/api-ref/source/v2/metadefs-resourcetypes.inc new file mode 100644 index 0000000000..ac37b2c9c5 --- /dev/null +++ b/api-ref/source/v2/metadefs-resourcetypes.inc @@ -0,0 +1,169 @@ +.. -*- rst -*- + +Metadata definition resource types +********************************** + +Lists resource types. Also, creates, lists, and removes resource type +associations in a namespace. + +*Since API v2.2* + + +List resource types +~~~~~~~~~~~~~~~~~~~ + +.. rest_method:: GET /v2/metadefs/resource_types + +Lists all available resource types. + +Using the other API calls in this section, you can create and maintain +*resource type associations* between metadata definition namespaces and the +resource types that are returned by this call. + +Normal response codes: 200 + +Error response codes: 400, 401, 404 + + +Request +------- + +There are no request parameters. + + +Response Parameters +------------------- + +.. rest_parameters:: metadefs-parameters.yaml + + - resource_types: resource_types-list + + +Response Example +---------------- + +.. literalinclude:: samples/metadef-resource-types-list-response.json + :language: json + + +Create resource type association +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. rest_method:: + POST /v2/metadefs/namespaces/{namespace_name}/resource_types + +Creates a resource type association between a namespace and the resource +type specified in the body of the request. + +.. note:: + If the resource type name specified does not name an existing resource type, + a new resource type will be created as a side effect of this operation. + +Normal response codes: 201 + +Error response codes: 400, 401, 403, 404, 409 + + +Request +------- + +.. rest_parameters:: metadefs-parameters.yaml + + - namespace_name: namespace_name + - name: name + - prefix: prefix + - properties_target: properties_target + + +Request Example +--------------- + +.. literalinclude:: samples/metadef-resource-type-create-request.json + :language: json + + + +Response Parameters +------------------- + +.. rest_parameters:: metadefs-parameters.yaml + + - created_at: created_at + - prefix: prefix + - properties_target: properties_target + - name: name + - updated_at: updated_at + + +List resource type associations +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. rest_method:: GET /v2/metadefs/namespaces/{namespace_name}/resource_types + +Lists resource type associations in a namespace. + +Normal response codes: 200 + +Error response codes: 400, 401, 403, 404 + + +Request +------- + +.. rest_parameters:: metadefs-parameters.yaml + + - namespace_name: namespace_name + +There is no request body. + + +Response Parameters +------------------- + +.. rest_parameters:: metadefs-parameters.yaml + + - resource_type_associations: resource_type_associations + + + +Response Example +---------------- + +.. literalinclude:: samples/metadef-resource-types-list-response.json + :language: json + + +Remove resource type association +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. rest_method:: + DELETE /v2/metadefs/namespaces/{namespace_name}/resource_types/{name} + +Removes a resource type association in a namespace. + +.. note:: + If the namespace containing the association is protected, that is, if the + ``protected`` attribute of the namespace is ``true``, then you must first + set the ``protected`` attribute to ``false`` on the namespace before you + will be permitted to remove the resource type association. + + * If you try to delete a resource type association from a protected + namespace, the call returns the ``403`` response code. + * To change the ``protected`` attribute of a namespace, use the + :ref:`Update namespace ` call. + +When you successfully delete a resource type association from a namespace, the +response is empty and the response code is ``204``. + +Normal response codes: 204 + +Error response codes: 400, 401, 403, 404 + + +Request +------- + +.. rest_parameters:: metadefs-parameters.yaml + + - namespace_name: namespace_name + - name: resource_type_name diff --git a/api-ref/source/v2/metadefs-schemas.inc b/api-ref/source/v2/metadefs-schemas.inc new file mode 100644 index 0000000000..b1b20724ef --- /dev/null +++ b/api-ref/source/v2/metadefs-schemas.inc @@ -0,0 +1,326 @@ +.. -*- rst -*- + +Metadata definition schemas +*************************** + +Gets a JSON-schema document that represents a metadata definition +entity. + +*(Since API v2.2)* + + +Show metadata definition namespace schema +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. rest_method:: GET /v2/schemas/metadefs/namespace + +Shows a JSON schema document that represents a metadata definition *namespace* entity. + +The following schema document is an example. The authoritative response is the +actual response to the API call. + + +Normal response codes: 200 + +Error response codes: 400, 401 + + +Request +------- + +There are no request parameters. The call does not take a request body. + + +Response Example +---------------- + +.. literalinclude:: samples/schemas-metadef-namespace-show-response.json + :language: json + + + +Show metadata definition namespaces schema +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. rest_method:: GET /v2/schemas/metadefs/namespaces + +Shows a JSON schema document that represents a metadata definition *namespaces* +entity. + +A namespaces entity is a container for *namespace* entities. + +The following schema document is an example. The authoritative response is the +actual response to the API call. + + +Normal response codes: 200 + +Error response codes: 400, 401 + + +Request +------- + +There are no request parameters. The call does not take a request body. + + +Response Example +---------------- + +.. literalinclude:: samples/schemas-metadef-namespaces-list-response.json + :language: json + + +.. _md-schema-rt-assoc: + +Show metadata definition namespace resource type association schema +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. rest_method:: GET /v2/schemas/metadefs/resource_type + +Shows a JSON schema document that represents a metadata definition namespace +*resource type association* entity. + +The following schema document is an example. The authoritative response is the +actual response to the API call. + + +Normal response codes: 200 + +Error response codes: 400, 401 + + +Request +------- + +There are no request parameters. The call does not take a request body. + + +Response Example +---------------- + +.. literalinclude:: samples/schemas-metadef-resource-type-association-show-response.json + :language: json + + +Show metadata definition namespace resource type associations schema +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. rest_method:: GET /v2/schemas/metadefs/resource_types + +Shows a JSON schema document that represents a metadata definition namespace +*resource type associations* entity. + +A resource type associations entity is a container for *resource type +association* entities. + +The following schema document is an example. The authoritative response is the +actual response to the API call. + + +Normal response codes: 200 + +Error response codes: 400, 401 + + +Request +------- + +There are no request parameters. The call does not take a request body. + + +Response Example +---------------- + +.. literalinclude:: samples/schemas-metadef-resource-type-associations-list-response.json + :language: json + + +Show metadata definition object schema +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. rest_method:: GET /v2/schemas/metadefs/object + +Shows a JSON schema document that represents a metadata definition *object* +entity. + +The following schema document is an example. The authoritative response is the +actual response to the API call. + + +Normal response codes: 200 + +Error response codes: 400, 401 + + +Request +------- + +There are no request parameters. The call does not take a request body. + + +Response Example +---------------- + +.. literalinclude:: samples/schemas-metadef-object-show-response.json + :language: json + + +Show metadata definition objects schema +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. rest_method:: GET /v2/schemas/metadefs/objects + +Shows a JSON schema document that represents a metadata definition *objects* +entity. + +An objects entity is a container for *object* entities. + +The following schema document is an example. The authoritative response is the +actual response to the API call. + + +Normal response codes: 200 + +Error response codes: 400, 401 + + +Request +------- + +There are no request parameters. The call does not take a request body. + + +Response Example +---------------- + +.. literalinclude:: samples/schemas-metadef-objects-list-response.json + :language: json + + +.. _md-schema-property: + +Show metadata definition property schema +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. rest_method:: GET /v2/schemas/metadefs/property + +Shows a JSON schema document that represents a metadata definition *property* +entity. + +The following schema document is an example. The authoritative response is the +actual response to the API call. + + +Normal response codes: 200 + +Error response codes: 400, 401 + + +Request +------- + +There are no request parameters. The call does not take a request body. + + +Response Example +---------------- + +.. literalinclude:: samples/schemas-metadef-property-show-response.json + :language: json + + + +Show metadata definition properties schema +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. rest_method:: GET /v2/schemas/metadefs/properties + +Shows a JSON schema document that represents a metadata definition *properties* entity. + +A properties entity is a container for *property* entities. + +The following schema document is an example. The authoritative +response is the actual response to the API call. + + +Normal response codes: 200 +Error response codes: 400, 401 + + +Request +------- + +There are no request parameters. The call does not take a request body. + + +Response Example +---------------- + +.. literalinclude:: samples/schemas-metadef-properties-list-response.json + :language: json + + + +.. _md-schema-tag: + +Show metadata definition tag schema +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. rest_method:: GET /v2/schemas/metadefs/tag + +Shows a JSON schema document that represents a metadata definition *tag* entity. + +The following schema document is an example. The authoritative response is the +actual response to the API call. + + +Normal response codes: 200 + +Error response codes: 400, 401 + + +Request +------- + +There are no request parameters. The call does not take a request body. + + +Response Example +---------------- + +.. literalinclude:: samples/schemas-metadef-tag-show-response.json + :language: json + + + +Show metadata definition tags schema +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. rest_method:: GET /v2/schemas/metadefs/tags + +Shows a JSON schema document that represents a metadata definition *tags* +entity. + +A tags entity is a container for *tag* entities. + +The following schema document is an example. The authoritative response is the +actual response to the API call. + + +Normal response codes: 200 + +Error response codes: 400, 401 + + +Request +------- + +There are no request parameters. The call does not take a request body. + + +Response Example +---------------- + +.. literalinclude:: samples/schemas-metadef-tags-list-response.json + :language: json diff --git a/api-ref/source/v2/samples/metadef-namespace-create-request-simple.json b/api-ref/source/v2/samples/metadef-namespace-create-request-simple.json new file mode 100644 index 0000000000..6a60f7b741 --- /dev/null +++ b/api-ref/source/v2/samples/metadef-namespace-create-request-simple.json @@ -0,0 +1,7 @@ +{ + "namespace": "FredCo::SomeCategory::Example", + "display_name": "An Example Namespace", + "description": "A metadata definitions namespace for example use.", + "visibility": "public", + "protected": true +} diff --git a/api-ref/source/v2/samples/metadef-namespace-create-request.json b/api-ref/source/v2/samples/metadef-namespace-create-request.json new file mode 100644 index 0000000000..3c2729292d --- /dev/null +++ b/api-ref/source/v2/samples/metadef-namespace-create-request.json @@ -0,0 +1,39 @@ +{ + "description": "Choose capabilities that should be provided by the Compute Host. This provides the ability to fine tune the hardware specification required when a new vm is requested.", + "display_name": "Hypervisor Selection", + "namespace": "OS::Compute::Hypervisor", + "properties": { + "hypervisor_type": { + "description": "The hypervisor type.", + "enum": [ + "xen", + "qemu", + "kvm", + "lxc", + "uml", + "vmware", + "hyperv" + ], + "title": "Hypervisor Type", + "type": "string" + }, + "vm_mode": { + "description": "The virtual machine mode.", + "enum": [ + "hvm", + "xen", + "uml", + "exe" + ], + "title": "VM Mode", + "type": "string" + } + }, + "protected": true, + "resource_type_associations": [ + { + "name": "OS::Glance::Image" + } + ], + "visibility": "public" +} diff --git a/api-ref/source/v2/samples/metadef-namespace-create-response-simple.json b/api-ref/source/v2/samples/metadef-namespace-create-response-simple.json new file mode 100644 index 0000000000..0e0cd43184 --- /dev/null +++ b/api-ref/source/v2/samples/metadef-namespace-create-response-simple.json @@ -0,0 +1,12 @@ +{ + "created_at": "2016-05-19T16:05:48Z", + "description": "A metadata definitions namespace for example use.", + "display_name": "An Example Namespace", + "namespace": "FredCo::SomeCategory::Example", + "owner": "c60b1d57c5034e0d86902aedf8c49be0", + "protected": true, + "schema": "/v2/schemas/metadefs/namespace", + "self": "/v2/metadefs/namespaces/FredCo::SomeCategory::Example", + "updated_at": "2016-05-19T16:05:48Z", + "visibility": "public" +} diff --git a/api-ref/source/v2/samples/metadef-namespace-create-response.json b/api-ref/source/v2/samples/metadef-namespace-create-response.json new file mode 100644 index 0000000000..24384535a0 --- /dev/null +++ b/api-ref/source/v2/samples/metadef-namespace-create-response.json @@ -0,0 +1,41 @@ +{ + "description": "Choose capabilities that should be provided by the Compute Host. This provides the ability to fine tune the hardware specification required when a new vm is requested.", + "display_name": "Hypervisor Selection", + "namespace": "OS::Compute::Hypervisor", + "properties": { + "hypervisor_type": { + "description": "The hypervisor type.", + "enum": [ + "xen", + "qemu", + "kvm", + "lxc", + "uml", + "vmware", + "hyperv" + ], + "title": "Hypervisor Type", + "type": "string" + }, + "vm_mode": { + "description": "The virtual machine mode.", + "enum": [ + "hvm", + "xen", + "uml", + "exe" + ], + "title": "VM Mode", + "type": "string" + } + }, + "protected": true, + "resource_type_associations": [ + { + "name": "OS::Glance::Image" + } + ], + "schema": "/v2/schemas/metadefs/namespace", + "self": "/v2/metadefs/namespaces/OS::Compute::Hypervisor", + "visibility": "public" +} diff --git a/api-ref/source/v2/samples/metadef-namespace-details-response.json b/api-ref/source/v2/samples/metadef-namespace-details-response.json new file mode 100644 index 0000000000..51c4fb81bd --- /dev/null +++ b/api-ref/source/v2/samples/metadef-namespace-details-response.json @@ -0,0 +1,40 @@ +{ + "created_at": "2016-06-28T14:57:10Z", + "description": "The libvirt compute driver options.", + "display_name": "libvirt Driver Options", + "namespace": "OS::Compute::Libvirt", + "owner": "admin", + "properties": { + "boot_menu": { + "description": "If true, enables the BIOS bootmenu.", + "enum": [ + "true", + "false" + ], + "title": "Boot Menu", + "type": "string" + }, + "serial_port_count": { + "description": "Specifies the count of serial ports.", + "minimum": 0, + "title": "Serial Port Count", + "type": "integer" + } + }, + "protected": true, + "resource_type_associations": [ + { + "created_at": "2016-06-28T14:57:10Z", + "name": "OS::Glance::Image", + "prefix": "hw_" + }, + { + "created_at": "2016-06-28T14:57:10Z", + "name": "OS::Nova::Flavor", + "prefix": "hw:" + } + ], + "schema": "/v2/schemas/metadefs/namespace", + "self": "/v2/metadefs/namespaces/OS::Compute::Libvirt", + "visibility": "public" +} diff --git a/api-ref/source/v2/samples/metadef-namespace-details-with-rt-response.json b/api-ref/source/v2/samples/metadef-namespace-details-with-rt-response.json new file mode 100644 index 0000000000..6fd3a96e9c --- /dev/null +++ b/api-ref/source/v2/samples/metadef-namespace-details-with-rt-response.json @@ -0,0 +1,40 @@ +{ + "created_at": "2016-06-28T14:57:10Z", + "description": "The libvirt compute driver options.", + "display_name": "libvirt Driver Options", + "namespace": "OS::Compute::Libvirt", + "owner": "admin", + "properties": { + "hw_boot_menu": { + "description": "If true, enables the BIOS bootmenu.", + "enum": [ + "true", + "false" + ], + "title": "Boot Menu", + "type": "string" + }, + "hw_serial_port_count": { + "description": "Specifies the count of serial ports.", + "minimum": 0, + "title": "Serial Port Count", + "type": "integer" + } + }, + "protected": true, + "resource_type_associations": [ + { + "created_at": "2016-06-28T14:57:10Z", + "name": "OS::Glance::Image", + "prefix": "hw_" + }, + { + "created_at": "2016-06-28T14:57:10Z", + "name": "OS::Nova::Flavor", + "prefix": "hw:" + } + ], + "schema": "/v2/schemas/metadefs/namespace", + "self": "/v2/metadefs/namespaces/OS::Compute::Libvirt", + "visibility": "public" +} diff --git a/api-ref/source/v2/samples/metadef-namespace-update-request.json b/api-ref/source/v2/samples/metadef-namespace-update-request.json new file mode 100644 index 0000000000..d06a41c4d1 --- /dev/null +++ b/api-ref/source/v2/samples/metadef-namespace-update-request.json @@ -0,0 +1,7 @@ +{ + "description": "Choose capabilities that should be provided by the Compute Host. This provides the ability to fine tune the hardware specification required when a new vm is requested.", + "display_name": "Hypervisor Selection", + "namespace": "OS::Compute::Hypervisor", + "protected": false, + "visibility": "public" +} diff --git a/api-ref/source/v2/samples/metadef-namespace-update-response.json b/api-ref/source/v2/samples/metadef-namespace-update-response.json new file mode 100644 index 0000000000..d504c0c76c --- /dev/null +++ b/api-ref/source/v2/samples/metadef-namespace-update-response.json @@ -0,0 +1,12 @@ +{ + "created_at": "2014-09-19T13:31:37Z", + "description": "Choose capabilities that should be provided by the Compute Host. This provides the ability to fine tune the harware specification required when a new vm is requested.", + "display_name": "Hypervisor Selection", + "namespace": "OS::Compute::Hypervisor", + "owner": "7ec22942411e427692e8a3436be1031a", + "protected": false, + "schema": "/v2/schemas/metadefs/namespace", + "self": "/v2/metadefs/namespaces/OS::Compute::Hypervisor", + "updated_at": "2014-09-19T13:31:37Z", + "visibility": "public" +} diff --git a/api-ref/source/v2/samples/metadef-namespaces-list-response.json b/api-ref/source/v2/samples/metadef-namespaces-list-response.json new file mode 100644 index 0000000000..44462d4dba --- /dev/null +++ b/api-ref/source/v2/samples/metadef-namespaces-list-response.json @@ -0,0 +1,96 @@ +{ + "first": "/v2/metadefs/namespaces?sort_key=created_at&sort_dir=asc", + "namespaces": [ + { + "created_at": "2014-08-28T17:13:06Z", + "description": "The libvirt compute driver options. These are properties specific to compute drivers. For a list of all hypervisors, see here: https://wiki.openstack.org/wiki/HypervisorSupportMatrix.", + "display_name": "libvirt Driver Options", + "namespace": "OS::Compute::Libvirt", + "owner": "admin", + "protected": true, + "resource_type_associations": [ + { + "created_at": "2014-08-28T17:13:06Z", + "name": "OS::Glance::Image", + "updated_at": "2014-08-28T17:13:06Z" + } + ], + "schema": "/v2/schemas/metadefs/namespace", + "self": "/v2/metadefs/namespaces/OS::Compute::Libvirt", + "updated_at": "2014-08-28T17:13:06Z", + "visibility": "public" + }, + { + "created_at": "2014-08-28T17:13:06Z", + "description": "Compute drivers may enable quotas on CPUs available to a VM, disk tuning, bandwidth I/O, and instance VIF traffic control. See: http://docs.openstack.org/admin-guide-cloud/compute-flavors.html", + "display_name": "Flavor Quota", + "namespace": "OS::Compute::Quota", + "owner": "admin", + "protected": true, + "resource_type_associations": [ + { + "created_at": "2014-08-28T17:13:06Z", + "name": "OS::Nova::Flavor", + "updated_at": "2014-08-28T17:13:06Z" + } + ], + "schema": "/v2/schemas/metadefs/namespace", + "self": "/v2/metadefs/namespaces/OS::Compute::Quota", + "updated_at": "2014-08-28T17:13:06Z", + "visibility": "public" + }, + { + "created_at": "2014-08-28T17:13:06Z", + "description": "Trusted compute pools with Intel\u00ae Trusted Execution Technology (Intel\u00ae TXT) support IT compliance by protecting virtualized data centers - private, public, and hybrid clouds against attacks toward hypervisor and BIOS, firmware, and other pre-launch software components.", + "display_name": "Trusted Compute Pools (Intel\u00ae TXT)", + "namespace": "OS::Compute::Trust", + "owner": "admin", + "protected": true, + "resource_type_associations": [ + { + "created_at": "2014-08-28T17:13:06Z", + "name": "OS::Nova::Flavor", + "updated_at": "2014-08-28T17:13:06Z" + } + ], + "schema": "/v2/schemas/metadefs/namespace", + "self": "/v2/metadefs/namespaces/OS::Compute::Trust", + "updated_at": "2014-08-28T17:13:06Z", + "visibility": "public" + }, + { + "created_at": "2014-08-28T17:13:06Z", + "description": "This provides the preferred socket/core/thread counts for the virtual CPU instance exposed to guests. This enables the ability to avoid hitting limitations on vCPU topologies that OS vendors place on their products. See also: http://git.openstack.org/cgit/openstack/nova-specs/tree/specs/juno/virt-driver-vcpu-topology.rst", + "display_name": "Virtual CPU Topology", + "namespace": "OS::Compute::VirtCPUTopology", + "owner": "admin", + "protected": true, + "resource_type_associations": [ + { + "created_at": "2014-08-28T17:13:06Z", + "name": "OS::Glance::Image", + "prefix": "hw_", + "updated_at": "2014-08-28T17:13:06Z" + }, + { + "created_at": "2014-08-28T17:13:06Z", + "name": "OS::Cinder::Volume", + "prefix": "hw_", + "properties_target": "image", + "updated_at": "2014-08-28T17:13:06Z" + }, + { + "created_at": "2014-08-28T17:13:06Z", + "name": "OS::Nova::Flavor", + "prefix": "hw:", + "updated_at": "2014-08-28T17:13:06Z" + } + ], + "schema": "/v2/schemas/metadefs/namespace", + "self": "/v2/metadefs/namespaces/OS::Compute::VirtCPUTopology", + "updated_at": "2014-08-28T17:13:06Z", + "visibility": "public" + } + ], + "schema": "/v2/schemas/metadefs/namespaces" +} diff --git a/api-ref/source/v2/samples/metadef-object-create-request.json b/api-ref/source/v2/samples/metadef-object-create-request.json new file mode 100644 index 0000000000..2aefab80c7 --- /dev/null +++ b/api-ref/source/v2/samples/metadef-object-create-request.json @@ -0,0 +1,24 @@ +{ + "description": "You can configure the CPU limits with control parameters.", + "name": "CPU Limits", + "properties": { + "quota:cpu_period": { + "description": "Specifies the enforcement interval (unit: microseconds) for QEMU and LXC hypervisors. Within a period, each VCPU of the domain is not allowed to consume more than the quota worth of runtime. The value should be in range [1000, 1000000]. A period with value 0 means no value.", + "maximum": 1000000, + "minimum": 1000, + "title": "Quota: CPU Period", + "type": "integer" + }, + "quota:cpu_quota": { + "description": "Specifies the maximum allowed bandwidth (unit: microseconds). A domain with a negative-value quota indicates that the domain has infinite bandwidth, which means that it is not bandwidth controlled. The value should be in range [1000, 18446744073709551] or less than 0. A quota with value 0 means no value. You can use this feature to ensure that all vCPUs run at the same speed.", + "title": "Quota: CPU Quota", + "type": "integer" + }, + "quota:cpu_shares": { + "description": "Specifies the proportional weighted share for the domain. If this element is omitted, the service defaults to the OS provided defaults. There is no unit for the value; it is a relative measure based on the setting of other VMs. For example, a VM configured with value 2048 gets twice as much CPU time as a VM configured with value 1024.", + "title": "Quota: CPU Shares", + "type": "integer" + } + }, + "required": [] +} diff --git a/api-ref/source/v2/samples/metadef-object-create-response.json b/api-ref/source/v2/samples/metadef-object-create-response.json new file mode 100644 index 0000000000..d0184bd9a1 --- /dev/null +++ b/api-ref/source/v2/samples/metadef-object-create-response.json @@ -0,0 +1,28 @@ +{ + "created_at": "2014-09-19T18:20:56Z", + "description": "You can configure the CPU limits with control parameters.", + "name": "CPU Limits", + "properties": { + "quota:cpu_period": { + "description": "Specifies the enforcement interval (unit: microseconds) for QEMU and LXC hypervisors. Within a period, each VCPU of the domain is not allowed to consume more than the quota worth of runtime. The value should be in range [1000, 1000000]. A period with value 0 means no value.", + "maximum": 1000000, + "minimum": 1000, + "title": "Quota: CPU Period", + "type": "integer" + }, + "quota:cpu_quota": { + "description": "Specifies the maximum allowed bandwidth (unit: microseconds). A domain with a negative-value quota indicates that the domain has infinite bandwidth, which means that it is not bandwidth controlled. The value should be in range [1000, 18446744073709551] or less than 0. A quota with value 0 means no value. You can use this feature to ensure that all vCPUs run at the same speed.", + "title": "Quota: CPU Quota", + "type": "integer" + }, + "quota:cpu_shares": { + "description": "Specifies the proportional weighted share for the domain. If this element is omitted, the service defaults to the OS provided defaults. There is no unit for the value; it is a relative measure based on the setting of other VMs. For example, a VM configured with value 2048 gets twice as much CPU time as a VM configured with value 1024.", + "title": "Quota: CPU Shares", + "type": "integer" + } + }, + "required": [], + "schema": "/v2/schemas/metadefs/object", + "self": "/v2/metadefs/namespaces/OS::Compute::Quota/objects/CPU Limits", + "updated_at": "2014-09-19T18:20:56Z" +} diff --git a/api-ref/source/v2/samples/metadef-object-details-response.json b/api-ref/source/v2/samples/metadef-object-details-response.json new file mode 100644 index 0000000000..d0184bd9a1 --- /dev/null +++ b/api-ref/source/v2/samples/metadef-object-details-response.json @@ -0,0 +1,28 @@ +{ + "created_at": "2014-09-19T18:20:56Z", + "description": "You can configure the CPU limits with control parameters.", + "name": "CPU Limits", + "properties": { + "quota:cpu_period": { + "description": "Specifies the enforcement interval (unit: microseconds) for QEMU and LXC hypervisors. Within a period, each VCPU of the domain is not allowed to consume more than the quota worth of runtime. The value should be in range [1000, 1000000]. A period with value 0 means no value.", + "maximum": 1000000, + "minimum": 1000, + "title": "Quota: CPU Period", + "type": "integer" + }, + "quota:cpu_quota": { + "description": "Specifies the maximum allowed bandwidth (unit: microseconds). A domain with a negative-value quota indicates that the domain has infinite bandwidth, which means that it is not bandwidth controlled. The value should be in range [1000, 18446744073709551] or less than 0. A quota with value 0 means no value. You can use this feature to ensure that all vCPUs run at the same speed.", + "title": "Quota: CPU Quota", + "type": "integer" + }, + "quota:cpu_shares": { + "description": "Specifies the proportional weighted share for the domain. If this element is omitted, the service defaults to the OS provided defaults. There is no unit for the value; it is a relative measure based on the setting of other VMs. For example, a VM configured with value 2048 gets twice as much CPU time as a VM configured with value 1024.", + "title": "Quota: CPU Shares", + "type": "integer" + } + }, + "required": [], + "schema": "/v2/schemas/metadefs/object", + "self": "/v2/metadefs/namespaces/OS::Compute::Quota/objects/CPU Limits", + "updated_at": "2014-09-19T18:20:56Z" +} diff --git a/api-ref/source/v2/samples/metadef-object-update-request.json b/api-ref/source/v2/samples/metadef-object-update-request.json new file mode 100644 index 0000000000..35b41e3453 --- /dev/null +++ b/api-ref/source/v2/samples/metadef-object-update-request.json @@ -0,0 +1,12 @@ +{ + "description": "You can configure the CPU limits with control parameters.", + "name": "CPU Limits", + "properties": { + "quota:cpu_shares": { + "description": "Specifies the proportional weighted share for the domain. If this element is omitted, the service defaults to the OS provided defaults. There is no unit for the value; it is a relative measure based on the setting of other VMs. For example, a VM configured with value 2048 gets twice as much CPU time as a VM configured with value 1024.", + "title": "Quota: CPU Shares", + "type": "integer" + } + }, + "required": [] +} diff --git a/api-ref/source/v2/samples/metadef-object-update-response.json b/api-ref/source/v2/samples/metadef-object-update-response.json new file mode 100644 index 0000000000..79db6272c5 --- /dev/null +++ b/api-ref/source/v2/samples/metadef-object-update-response.json @@ -0,0 +1,16 @@ +{ + "created_at": "2014-09-19T19:20:56Z", + "description": "You can configure the CPU limits with control parameters.", + "name": "CPU Limits", + "properties": { + "quota:cpu_shares": { + "description": "Specifies the proportional weighted share for the domain. If this element is omitted, the service defaults to the OS provided defaults. There is no unit for the value; it is a relative measure based on the setting of other VMs. For example, a VM configured with value 2048 gets twice as much CPU time as a VM configured with value 1024.", + "title": "Quota: CPU Shares", + "type": "integer" + } + }, + "required": [], + "schema": "/v2/schemas/metadefs/object", + "self": "/v2/metadefs/namespaces/OS::Compute::Quota/objects/CPU Limits", + "updated_at": "2014-09-19T19:20:56Z" +} diff --git a/api-ref/source/v2/samples/metadef-objects-list-response.json b/api-ref/source/v2/samples/metadef-objects-list-response.json new file mode 100644 index 0000000000..067460225c --- /dev/null +++ b/api-ref/source/v2/samples/metadef-objects-list-response.json @@ -0,0 +1,112 @@ +{ + "objects": [ + { + "created_at": "2014-09-18T18:16:35Z", + "description": "You can configure the CPU limits with control parameters.", + "name": "CPU Limits", + "properties": { + "quota:cpu_period": { + "description": "Specifies the enforcement interval (unit: microseconds) for QEMU and LXC hypervisors. Within a period, each VCPU of the domain is not allowed to consume more than the quota worth of runtime. The value should be in range [1000, 1000000]. A period with value 0 means no value.", + "maximum": 1000000, + "minimum": 1000, + "title": "Quota: CPU Period", + "type": "integer" + }, + "quota:cpu_quota": { + "description": "Specifies the maximum allowed bandwidth (unit: microseconds). A domain with a negative-value quota indicates that the domain has infinite bandwidth, which means that it is not bandwidth controlled. The value should be in range [1000, 18446744073709551] or less than 0. A quota with value 0 means no value. You can use this feature to ensure that all vCPUs run at the same speed.", + "title": "Quota: CPU Quota", + "type": "integer" + }, + "quota:cpu_shares": { + "description": "Specifies the proportional weighted share for the domain. If this element is omitted, the service defaults to the OS provided defaults. There is no unit for the value; it is a relative measure based on the setting of other VMs. For example, a VM configured with value 2048 gets twice as much CPU time as a VM configured with value 1024.", + "title": "Quota: CPU Shares", + "type": "integer" + } + }, + "required": [], + "schema": "/v2/schemas/metadefs/object", + "self": "/v2/metadefs/namespaces/OS::Compute::Quota/objects/CPU Limits" + }, + { + "created_at": "2014-09-18T18:16:35Z", + "description": "Using disk I/O quotas, you can set maximum disk write to 10 MB per second for a VM user.", + "name": "Disk QoS", + "properties": { + "quota:disk_read_bytes_sec": { + "description": "Sets disk I/O quota for disk read bytes / sec.", + "title": "Quota: Disk read bytes / sec", + "type": "integer" + }, + "quota:disk_read_iops_sec": { + "description": "Sets disk I/O quota for disk read IOPS / sec.", + "title": "Quota: Disk read IOPS / sec", + "type": "integer" + }, + "quota:disk_total_bytes_sec": { + "description": "Sets disk I/O quota for total disk bytes / sec.", + "title": "Quota: Disk Total Bytes / sec", + "type": "integer" + }, + "quota:disk_total_iops_sec": { + "description": "Sets disk I/O quota for disk total IOPS / sec.", + "title": "Quota: Disk Total IOPS / sec", + "type": "integer" + }, + "quota:disk_write_bytes_sec": { + "description": "Sets disk I/O quota for disk write bytes / sec.", + "title": "Quota: Disk Write Bytes / sec", + "type": "integer" + }, + "quota:disk_write_iops_sec": { + "description": "Sets disk I/O quota for disk write IOPS / sec.", + "title": "Quota: Disk Write IOPS / sec", + "type": "integer" + } + }, + "required": [], + "schema": "/v2/schemas/metadefs/object", + "self": "/v2/metadefs/namespaces/OS::Compute::Quota/objects/Disk QoS" + }, + { + "created_at": "2014-09-18T18:16:35Z", + "description": "Bandwidth QoS tuning for instance virtual interfaces (VIFs) may be specified with these properties. Incoming and outgoing traffic can be shaped independently. If not specified, no quality of service (QoS) is applied on that traffic direction. So, if you want to shape only the network's incoming traffic, use inbound only (and vice versa). The OpenStack Networking service abstracts the physical implementation of the network, allowing plugins to configure and manage physical resources. Virtual Interfaces (VIF) in the logical model are analogous to physical network interface cards (NICs). VIFs are typically owned a managed by an external service; for instance when OpenStack Networking is used for building OpenStack networks, VIFs would be created, owned, and managed in Nova. VIFs are connected to OpenStack Networking networks via ports. A port is analogous to a port on a network switch, and it has an administrative state. When a VIF is attached to a port the OpenStack Networking API creates an attachment object, which specifies the fact that a VIF with a given identifier is plugged into the port.", + "name": "Virtual Interface QoS", + "properties": { + "quota:vif_inbound_average": { + "description": "Network Virtual Interface (VIF) inbound average in kilobytes per second. Specifies average bit rate on the interface being shaped.", + "title": "Quota: VIF Inbound Average", + "type": "integer" + }, + "quota:vif_inbound_burst": { + "description": "Network Virtual Interface (VIF) inbound burst in total kilobytes. Specifies the amount of bytes that can be burst at peak speed.", + "title": "Quota: VIF Inbound Burst", + "type": "integer" + }, + "quota:vif_inbound_peak": { + "description": "Network Virtual Interface (VIF) inbound peak in kilobytes per second. Specifies maximum rate at which an interface can receive data.", + "title": "Quota: VIF Inbound Peak", + "type": "integer" + }, + "quota:vif_outbound_average": { + "description": "Network Virtual Interface (VIF) outbound average in kilobytes per second. Specifies average bit rate on the interface being shaped.", + "title": "Quota: VIF Outbound Average", + "type": "integer" + }, + "quota:vif_outbound_burst": { + "description": "Network Virtual Interface (VIF) outbound burst in total kilobytes. Specifies the amount of bytes that can be burst at peak speed.", + "title": "Quota: VIF Outbound Burst", + "type": "integer" + }, + "quota:vif_outbound_peak": { + "description": "Network Virtual Interface (VIF) outbound peak in kilobytes per second. Specifies maximum rate at which an interface can send data.", + "title": "Quota: VIF Outbound Burst", + "type": "integer" + } + }, + "required": [], + "schema": "/v2/schemas/metadefs/object", + "self": "/v2/metadefs/namespaces/OS::Compute::Quota/objects/Virtual Interface QoS" + } + ], + "schema": "v2/schemas/metadefs/objects" +} diff --git a/api-ref/source/v2/samples/metadef-properties-list-response.json b/api-ref/source/v2/samples/metadef-properties-list-response.json new file mode 100644 index 0000000000..aeb4a5da95 --- /dev/null +++ b/api-ref/source/v2/samples/metadef-properties-list-response.json @@ -0,0 +1,86 @@ +{ + "properties": { + "hw_disk_bus": { + "description": "Specifies the type of disk controller to attach disk devices to.", + "enum": [ + "scsi", + "virtio", + "uml", + "xen", + "ide", + "usb" + ], + "title": "Disk Bus", + "type": "string" + }, + "hw_machine_type": { + "description": "Enables booting an ARM system using the specified machine type. By default, if an ARM image is used and its type is not specified, Compute uses vexpress-a15 (for ARMv7) or virt (for AArch64) machine types. Valid types can be viewed by using the virsh capabilities command (machine types are displayed in the machine tag).", + "title": "Machine Type", + "type": "string" + }, + "hw_qemu_guest_agent": { + "description": "It is a daemon program running inside the domain which is supposed to help management applications with executing functions which need assistance of the guest OS. For example, freezing and thawing filesystems, entering suspend. However, guest agent (GA) is not bullet proof, and hostile guest OS can send spurious replies.", + "enum": [ + "yes", + "no" + ], + "title": "QEMU Guest Agent", + "type": "string" + }, + "hw_rng_model": { + "default": "virtio", + "description": "Adds a random-number generator device to the image's instances. The cloud administrator can enable and control device behavior by configuring the instance's flavor. By default: The generator device is disabled. /dev/random is used as the default entropy source. To specify a physical HW RNG device, use the following option in the nova.conf file: rng_dev_path=/dev/hwrng", + "title": "Random Number Generator Device", + "type": "string" + }, + "hw_scsi_model": { + "default": "virtio-scsi", + "description": "Enables the use of VirtIO SCSI (virtio-scsi) to provide block device access for compute instances; by default, instances use VirtIO Block (virtio-blk). VirtIO SCSI is a para-virtualized SCSI controller device that provides improved scalability and performance, and supports advanced SCSI hardware.", + "title": "SCSI Model", + "type": "string" + }, + "hw_video_model": { + "description": "The video image driver used.", + "enum": [ + "vga", + "cirrus", + "vmvga", + "xen", + "qxl" + ], + "title": "Video Model", + "type": "string" + }, + "hw_video_ram": { + "description": "Maximum RAM for the video image. Used only if a hw_video:ram_max_mb value has been set in the flavor's extra_specs and that value is higher than the value set in hw_video_ram.", + "title": "Max Video Ram", + "type": "integer" + }, + "hw_vif_model": { + "description": "Specifies the model of virtual network interface device to use. The valid options depend on the configured hypervisor. KVM and QEMU: e1000, ne2k_pci, pcnet, rtl8139, and virtio. VMware: e1000, e1000e, VirtualE1000, VirtualE1000e, VirtualPCNet32, VirtualSriovEthernetCard, and VirtualVmxnet. Xen: e1000, netfront, ne2k_pci, pcnet, and rtl8139.", + "enum": [ + "e1000", + "ne2k_pci", + "pcnet", + "rtl8139", + "virtio", + "e1000", + "e1000e", + "VirtualE1000", + "VirtualE1000e", + "VirtualPCNet32", + "VirtualSriovEthernetCard", + "VirtualVmxnet", + "netfront", + "ne2k_pci" + ], + "title": "Virtual Network Interface", + "type": "string" + }, + "os_command_line": { + "description": "The kernel command line to be used by the libvirt driver, instead of the default. For linux containers (LXC), the value is used as arguments for initialization. This key is valid only for Amazon kernel, ramdisk, or machine images (aki, ari, or ami).", + "title": "Kernel Command Line", + "type": "string" + } + } +} diff --git a/api-ref/source/v2/samples/metadef-property-create-request.json b/api-ref/source/v2/samples/metadef-property-create-request.json new file mode 100644 index 0000000000..0b4b314abf --- /dev/null +++ b/api-ref/source/v2/samples/metadef-property-create-request.json @@ -0,0 +1,15 @@ +{ + "description": "The hypervisor type. It may be used by the host properties filter for scheduling. The ImagePropertiesFilter filters compute nodes that satisfy any architecture, hypervisor type, or virtual machine mode properties specified on the instance's image properties. Image properties are contained in the image dictionary in the request_spec.", + "enum": [ + "xen", + "qemu", + "kvm", + "lxc", + "uml", + "vmware", + "hyperv" + ], + "name": "hypervisor_type", + "title": "Hypervisor Type", + "type": "string" +} diff --git a/api-ref/source/v2/samples/metadef-property-create-response.json b/api-ref/source/v2/samples/metadef-property-create-response.json new file mode 100644 index 0000000000..0b4b314abf --- /dev/null +++ b/api-ref/source/v2/samples/metadef-property-create-response.json @@ -0,0 +1,15 @@ +{ + "description": "The hypervisor type. It may be used by the host properties filter for scheduling. The ImagePropertiesFilter filters compute nodes that satisfy any architecture, hypervisor type, or virtual machine mode properties specified on the instance's image properties. Image properties are contained in the image dictionary in the request_spec.", + "enum": [ + "xen", + "qemu", + "kvm", + "lxc", + "uml", + "vmware", + "hyperv" + ], + "name": "hypervisor_type", + "title": "Hypervisor Type", + "type": "string" +} diff --git a/api-ref/source/v2/samples/metadef-property-details-response.json b/api-ref/source/v2/samples/metadef-property-details-response.json new file mode 100644 index 0000000000..0b4b314abf --- /dev/null +++ b/api-ref/source/v2/samples/metadef-property-details-response.json @@ -0,0 +1,15 @@ +{ + "description": "The hypervisor type. It may be used by the host properties filter for scheduling. The ImagePropertiesFilter filters compute nodes that satisfy any architecture, hypervisor type, or virtual machine mode properties specified on the instance's image properties. Image properties are contained in the image dictionary in the request_spec.", + "enum": [ + "xen", + "qemu", + "kvm", + "lxc", + "uml", + "vmware", + "hyperv" + ], + "name": "hypervisor_type", + "title": "Hypervisor Type", + "type": "string" +} diff --git a/api-ref/source/v2/samples/metadef-property-update-request.json b/api-ref/source/v2/samples/metadef-property-update-request.json new file mode 100644 index 0000000000..0b4b314abf --- /dev/null +++ b/api-ref/source/v2/samples/metadef-property-update-request.json @@ -0,0 +1,15 @@ +{ + "description": "The hypervisor type. It may be used by the host properties filter for scheduling. The ImagePropertiesFilter filters compute nodes that satisfy any architecture, hypervisor type, or virtual machine mode properties specified on the instance's image properties. Image properties are contained in the image dictionary in the request_spec.", + "enum": [ + "xen", + "qemu", + "kvm", + "lxc", + "uml", + "vmware", + "hyperv" + ], + "name": "hypervisor_type", + "title": "Hypervisor Type", + "type": "string" +} diff --git a/api-ref/source/v2/samples/metadef-property-update-response.json b/api-ref/source/v2/samples/metadef-property-update-response.json new file mode 100644 index 0000000000..0b4b314abf --- /dev/null +++ b/api-ref/source/v2/samples/metadef-property-update-response.json @@ -0,0 +1,15 @@ +{ + "description": "The hypervisor type. It may be used by the host properties filter for scheduling. The ImagePropertiesFilter filters compute nodes that satisfy any architecture, hypervisor type, or virtual machine mode properties specified on the instance's image properties. Image properties are contained in the image dictionary in the request_spec.", + "enum": [ + "xen", + "qemu", + "kvm", + "lxc", + "uml", + "vmware", + "hyperv" + ], + "name": "hypervisor_type", + "title": "Hypervisor Type", + "type": "string" +} diff --git a/api-ref/source/v2/samples/metadef-resource-type-assoc-create-response.json b/api-ref/source/v2/samples/metadef-resource-type-assoc-create-response.json new file mode 100644 index 0000000000..9176e9a2c9 --- /dev/null +++ b/api-ref/source/v2/samples/metadef-resource-type-assoc-create-response.json @@ -0,0 +1,7 @@ +{ + "created_at": "2014-09-19T16:09:13Z", + "name": "OS::Cinder::Volume", + "prefix": "hw_", + "properties_target": "image", + "updated_at": "2014-09-19T16:09:13Z" +} diff --git a/api-ref/source/v2/samples/metadef-resource-type-create-request.json b/api-ref/source/v2/samples/metadef-resource-type-create-request.json new file mode 100644 index 0000000000..ec5225ecf7 --- /dev/null +++ b/api-ref/source/v2/samples/metadef-resource-type-create-request.json @@ -0,0 +1,5 @@ +{ + "name": "OS::Cinder::Volume", + "prefix": "hw_", + "properties_target": "image" +} diff --git a/api-ref/source/v2/samples/metadef-resource-types-list-response.json b/api-ref/source/v2/samples/metadef-resource-types-list-response.json new file mode 100644 index 0000000000..d2dc34a984 --- /dev/null +++ b/api-ref/source/v2/samples/metadef-resource-types-list-response.json @@ -0,0 +1,29 @@ +{ + "resource_types": [ + { + "created_at": "2014-08-28T18:13:04Z", + "name": "OS::Glance::Image", + "updated_at": "2014-08-28T18:13:04Z" + }, + { + "created_at": "2014-08-28T18:13:04Z", + "name": "OS::Cinder::Volume", + "updated_at": "2014-08-28T18:13:04Z" + }, + { + "created_at": "2014-08-28T18:13:04Z", + "name": "OS::Nova::Flavor", + "updated_at": "2014-08-28T18:13:04Z" + }, + { + "created_at": "2014-08-28T18:13:04Z", + "name": "OS::Nova::Aggregate", + "updated_at": "2014-08-28T18:13:04Z" + }, + { + "created_at": "2014-08-28T18:13:04Z", + "name": "OS::Nova::Instance", + "updated_at": "2014-08-28T18:13:04Z" + } + ] +} diff --git a/api-ref/source/v2/samples/metadef-tag-create-response.json b/api-ref/source/v2/samples/metadef-tag-create-response.json new file mode 100644 index 0000000000..298e344bf5 --- /dev/null +++ b/api-ref/source/v2/samples/metadef-tag-create-response.json @@ -0,0 +1,5 @@ +{ + "created_at": "2015-05-09T01:12:31Z", + "name": "added-sample-tag", + "updated_at": "2015-05-09T01:12:31Z" +} diff --git a/api-ref/source/v2/samples/metadef-tag-details-response.json b/api-ref/source/v2/samples/metadef-tag-details-response.json new file mode 100644 index 0000000000..0fc7197e93 --- /dev/null +++ b/api-ref/source/v2/samples/metadef-tag-details-response.json @@ -0,0 +1,5 @@ +{ + "created_at": "2015-05-06T23:16:12Z", + "name": "sample-tag2", + "updated_at": "2015-05-06T23:16:12Z" +} diff --git a/api-ref/source/v2/samples/metadef-tag-update-request.json b/api-ref/source/v2/samples/metadef-tag-update-request.json new file mode 100644 index 0000000000..f2edbd4a36 --- /dev/null +++ b/api-ref/source/v2/samples/metadef-tag-update-request.json @@ -0,0 +1,3 @@ +{ + "name": "new-tag-name" +} diff --git a/api-ref/source/v2/samples/metadef-tag-update-response.json b/api-ref/source/v2/samples/metadef-tag-update-response.json new file mode 100644 index 0000000000..5fe767e7e8 --- /dev/null +++ b/api-ref/source/v2/samples/metadef-tag-update-response.json @@ -0,0 +1,5 @@ +{ + "created_at": "2016-05-21T18:49:38Z", + "name": "new-tag-name", + "updated_at": "2016-05-21T19:04:22Z" +} diff --git a/api-ref/source/v2/samples/metadef-tags-create-request.json b/api-ref/source/v2/samples/metadef-tags-create-request.json new file mode 100644 index 0000000000..facd34af5c --- /dev/null +++ b/api-ref/source/v2/samples/metadef-tags-create-request.json @@ -0,0 +1,13 @@ +{ + "tags": [ + { + "name": "sample-tag1" + }, + { + "name": "sample-tag2" + }, + { + "name": "sample-tag3" + } + ] +} diff --git a/api-ref/source/v2/samples/metadef-tags-create-response.json b/api-ref/source/v2/samples/metadef-tags-create-response.json new file mode 100644 index 0000000000..facd34af5c --- /dev/null +++ b/api-ref/source/v2/samples/metadef-tags-create-response.json @@ -0,0 +1,13 @@ +{ + "tags": [ + { + "name": "sample-tag1" + }, + { + "name": "sample-tag2" + }, + { + "name": "sample-tag3" + } + ] +} diff --git a/api-ref/source/v2/samples/metadef-tags-list-response.json b/api-ref/source/v2/samples/metadef-tags-list-response.json new file mode 100644 index 0000000000..facd34af5c --- /dev/null +++ b/api-ref/source/v2/samples/metadef-tags-list-response.json @@ -0,0 +1,13 @@ +{ + "tags": [ + { + "name": "sample-tag1" + }, + { + "name": "sample-tag2" + }, + { + "name": "sample-tag3" + } + ] +} diff --git a/api-ref/source/v2/samples/schemas-metadef-namespace-show-response.json b/api-ref/source/v2/samples/schemas-metadef-namespace-show-response.json new file mode 100644 index 0000000000..b61ebc23ab --- /dev/null +++ b/api-ref/source/v2/samples/schemas-metadef-namespace-show-response.json @@ -0,0 +1,234 @@ +{ + "additionalProperties": false, + "definitions": { + "positiveInteger": { + "minimum": 0, + "type": "integer" + }, + "positiveIntegerDefault0": { + "allOf": [ + { + "$ref": "#/definitions/positiveInteger" + }, + { + "default": 0 + } + ] + }, + "property": { + "additionalProperties": { + "properties": { + "additionalItems": { + "type": "boolean" + }, + "default": {}, + "description": { + "type": "string" + }, + "enum": { + "type": "array" + }, + "items": { + "properties": { + "enum": { + "type": "array" + }, + "type": { + "enum": [ + "array", + "boolean", + "integer", + "number", + "object", + "string", + null + ], + "type": "string" + } + }, + "type": "object" + }, + "maxItems": { + "$ref": "#/definitions/positiveInteger" + }, + "maxLength": { + "$ref": "#/definitions/positiveInteger" + }, + "maximum": { + "type": "number" + }, + "minItems": { + "$ref": "#/definitions/positiveIntegerDefault0" + }, + "minLength": { + "$ref": "#/definitions/positiveIntegerDefault0" + }, + "minimum": { + "type": "number" + }, + "name": { + "maxLength": 255, + "type": "string" + }, + "operators": { + "items": { + "type": "string" + }, + "type": "array" + }, + "pattern": { + "format": "regex", + "type": "string" + }, + "readonly": { + "type": "boolean" + }, + "required": { + "$ref": "#/definitions/stringArray" + }, + "title": { + "type": "string" + }, + "type": { + "enum": [ + "array", + "boolean", + "integer", + "number", + "object", + "string", + null + ], + "type": "string" + }, + "uniqueItems": { + "default": false, + "type": "boolean" + } + }, + "required": [ + "title", + "type" + ], + "type": "object" + }, + "type": "object" + }, + "stringArray": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "name": "namespace", + "properties": { + "created_at": { + "description": "Date and time of namespace creation", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "Provides a user friendly description of the namespace.", + "maxLength": 500, + "type": "string" + }, + "display_name": { + "description": "The user friendly name for the namespace. Used by UI if available.", + "maxLength": 80, + "type": "string" + }, + "namespace": { + "description": "The unique namespace text.", + "maxLength": 80, + "type": "string" + }, + "objects": { + "items": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "properties": { + "$ref": "#/definitions/property" + }, + "required": { + "$ref": "#/definitions/stringArray" + } + }, + "type": "object" + }, + "type": "array" + }, + "owner": { + "description": "Owner of the namespace.", + "maxLength": 255, + "type": "string" + }, + "properties": { + "$ref": "#/definitions/property" + }, + "protected": { + "description": "If true, namespace will not be deletable.", + "type": "boolean" + }, + "resource_type_associations": { + "items": { + "properties": { + "name": { + "type": "string" + }, + "prefix": { + "type": "string" + }, + "properties_target": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "schema": { + "readOnly": true, + "type": "string" + }, + "self": { + "readOnly": true, + "type": "string" + }, + "tags": { + "items": { + "properties": { + "name": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "updated_at": { + "description": "Date and time of the last namespace modification", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "visibility": { + "description": "Scope of namespace accessibility.", + "enum": [ + "public", + "private" + ], + "type": "string" + } + }, + "required": [ + "namespace" + ] +} diff --git a/api-ref/source/v2/samples/schemas-metadef-namespaces-list-response.json b/api-ref/source/v2/samples/schemas-metadef-namespaces-list-response.json new file mode 100644 index 0000000000..39e3490971 --- /dev/null +++ b/api-ref/source/v2/samples/schemas-metadef-namespaces-list-response.json @@ -0,0 +1,265 @@ +{ + "definitions": { + "positiveInteger": { + "minimum": 0, + "type": "integer" + }, + "positiveIntegerDefault0": { + "allOf": [ + { + "$ref": "#/definitions/positiveInteger" + }, + { + "default": 0 + } + ] + }, + "property": { + "additionalProperties": { + "properties": { + "additionalItems": { + "type": "boolean" + }, + "default": {}, + "description": { + "type": "string" + }, + "enum": { + "type": "array" + }, + "items": { + "properties": { + "enum": { + "type": "array" + }, + "type": { + "enum": [ + "array", + "boolean", + "integer", + "number", + "object", + "string", + null + ], + "type": "string" + } + }, + "type": "object" + }, + "maxItems": { + "$ref": "#/definitions/positiveInteger" + }, + "maxLength": { + "$ref": "#/definitions/positiveInteger" + }, + "maximum": { + "type": "number" + }, + "minItems": { + "$ref": "#/definitions/positiveIntegerDefault0" + }, + "minLength": { + "$ref": "#/definitions/positiveIntegerDefault0" + }, + "minimum": { + "type": "number" + }, + "name": { + "maxLength": 255, + "type": "string" + }, + "operators": { + "items": { + "type": "string" + }, + "type": "array" + }, + "pattern": { + "format": "regex", + "type": "string" + }, + "readonly": { + "type": "boolean" + }, + "required": { + "$ref": "#/definitions/stringArray" + }, + "title": { + "type": "string" + }, + "type": { + "enum": [ + "array", + "boolean", + "integer", + "number", + "object", + "string", + null + ], + "type": "string" + }, + "uniqueItems": { + "default": false, + "type": "boolean" + } + }, + "required": [ + "title", + "type" + ], + "type": "object" + }, + "type": "object" + }, + "stringArray": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "links": [ + { + "href": "{first}", + "rel": "first" + }, + { + "href": "{next}", + "rel": "next" + }, + { + "href": "{schema}", + "rel": "describedby" + } + ], + "name": "namespaces", + "properties": { + "first": { + "type": "string" + }, + "namespaces": { + "items": { + "additionalProperties": false, + "name": "namespace", + "properties": { + "created_at": { + "description": "Date and time of namespace creation", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "Provides a user friendly description of the namespace.", + "maxLength": 500, + "type": "string" + }, + "display_name": { + "description": "The user friendly name for the namespace. Used by UI if available.", + "maxLength": 80, + "type": "string" + }, + "namespace": { + "description": "The unique namespace text.", + "maxLength": 80, + "type": "string" + }, + "objects": { + "items": { + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "properties": { + "$ref": "#/definitions/property" + }, + "required": { + "$ref": "#/definitions/stringArray" + } + }, + "type": "object" + }, + "type": "array" + }, + "owner": { + "description": "Owner of the namespace.", + "maxLength": 255, + "type": "string" + }, + "properties": { + "$ref": "#/definitions/property" + }, + "protected": { + "description": "If true, namespace will not be deletable.", + "type": "boolean" + }, + "resource_type_associations": { + "items": { + "properties": { + "name": { + "type": "string" + }, + "prefix": { + "type": "string" + }, + "properties_target": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "schema": { + "readOnly": true, + "type": "string" + }, + "self": { + "readOnly": true, + "type": "string" + }, + "tags": { + "items": { + "properties": { + "name": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "updated_at": { + "description": "Date and time of the last namespace modification", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "visibility": { + "description": "Scope of namespace accessibility.", + "enum": [ + "public", + "private" + ], + "type": "string" + } + }, + "required": [ + "namespace" + ] + }, + "type": "array" + }, + "next": { + "type": "string" + }, + "schema": { + "type": "string" + } + } +} diff --git a/api-ref/source/v2/samples/schemas-metadef-object-show-response.json b/api-ref/source/v2/samples/schemas-metadef-object-show-response.json new file mode 100644 index 0000000000..ae7ffff317 --- /dev/null +++ b/api-ref/source/v2/samples/schemas-metadef-object-show-response.json @@ -0,0 +1,164 @@ +{ + "additionalProperties": false, + "definitions": { + "positiveInteger": { + "minimum": 0, + "type": "integer" + }, + "positiveIntegerDefault0": { + "allOf": [ + { + "$ref": "#/definitions/positiveInteger" + }, + { + "default": 0 + } + ] + }, + "property": { + "additionalProperties": { + "properties": { + "additionalItems": { + "type": "boolean" + }, + "default": {}, + "description": { + "type": "string" + }, + "enum": { + "type": "array" + }, + "items": { + "properties": { + "enum": { + "type": "array" + }, + "type": { + "enum": [ + "array", + "boolean", + "integer", + "number", + "object", + "string", + null + ], + "type": "string" + } + }, + "type": "object" + }, + "maxItems": { + "$ref": "#/definitions/positiveInteger" + }, + "maxLength": { + "$ref": "#/definitions/positiveInteger" + }, + "maximum": { + "type": "number" + }, + "minItems": { + "$ref": "#/definitions/positiveIntegerDefault0" + }, + "minLength": { + "$ref": "#/definitions/positiveIntegerDefault0" + }, + "minimum": { + "type": "number" + }, + "name": { + "maxLength": 255, + "type": "string" + }, + "operators": { + "items": { + "type": "string" + }, + "type": "array" + }, + "pattern": { + "format": "regex", + "type": "string" + }, + "readonly": { + "type": "boolean" + }, + "required": { + "$ref": "#/definitions/stringArray" + }, + "title": { + "type": "string" + }, + "type": { + "enum": [ + "array", + "boolean", + "integer", + "number", + "object", + "string", + null + ], + "type": "string" + }, + "uniqueItems": { + "default": false, + "type": "boolean" + } + }, + "required": [ + "title", + "type" + ], + "type": "object" + }, + "type": "object" + }, + "stringArray": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "name": "object", + "properties": { + "created_at": { + "description": "Date and time of object creation", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "description": { + "type": "string" + }, + "name": { + "maxLength": 255, + "type": "string" + }, + "properties": { + "$ref": "#/definitions/property" + }, + "required": { + "$ref": "#/definitions/stringArray" + }, + "schema": { + "readOnly": true, + "type": "string" + }, + "self": { + "readOnly": true, + "type": "string" + }, + "updated_at": { + "description": "Date and time of the last object modification", + "format": "date-time", + "readOnly": true, + "type": "string" + } + }, + "required": [ + "name" + ] +} diff --git a/api-ref/source/v2/samples/schemas-metadef-objects-list-response.json b/api-ref/source/v2/samples/schemas-metadef-objects-list-response.json new file mode 100644 index 0000000000..872a8afe6f --- /dev/null +++ b/api-ref/source/v2/samples/schemas-metadef-objects-list-response.json @@ -0,0 +1,195 @@ +{ + "definitions": { + "positiveInteger": { + "minimum": 0, + "type": "integer" + }, + "positiveIntegerDefault0": { + "allOf": [ + { + "$ref": "#/definitions/positiveInteger" + }, + { + "default": 0 + } + ] + }, + "property": { + "additionalProperties": { + "properties": { + "additionalItems": { + "type": "boolean" + }, + "default": {}, + "description": { + "type": "string" + }, + "enum": { + "type": "array" + }, + "items": { + "properties": { + "enum": { + "type": "array" + }, + "type": { + "enum": [ + "array", + "boolean", + "integer", + "number", + "object", + "string", + null + ], + "type": "string" + } + }, + "type": "object" + }, + "maxItems": { + "$ref": "#/definitions/positiveInteger" + }, + "maxLength": { + "$ref": "#/definitions/positiveInteger" + }, + "maximum": { + "type": "number" + }, + "minItems": { + "$ref": "#/definitions/positiveIntegerDefault0" + }, + "minLength": { + "$ref": "#/definitions/positiveIntegerDefault0" + }, + "minimum": { + "type": "number" + }, + "name": { + "maxLength": 255, + "type": "string" + }, + "operators": { + "items": { + "type": "string" + }, + "type": "array" + }, + "pattern": { + "format": "regex", + "type": "string" + }, + "readonly": { + "type": "boolean" + }, + "required": { + "$ref": "#/definitions/stringArray" + }, + "title": { + "type": "string" + }, + "type": { + "enum": [ + "array", + "boolean", + "integer", + "number", + "object", + "string", + null + ], + "type": "string" + }, + "uniqueItems": { + "default": false, + "type": "boolean" + } + }, + "required": [ + "title", + "type" + ], + "type": "object" + }, + "type": "object" + }, + "stringArray": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "links": [ + { + "href": "{first}", + "rel": "first" + }, + { + "href": "{next}", + "rel": "next" + }, + { + "href": "{schema}", + "rel": "describedby" + } + ], + "name": "objects", + "properties": { + "first": { + "type": "string" + }, + "next": { + "type": "string" + }, + "objects": { + "items": { + "additionalProperties": false, + "name": "object", + "properties": { + "created_at": { + "description": "Date and time of object creation", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "description": { + "type": "string" + }, + "name": { + "maxLength": 255, + "type": "string" + }, + "properties": { + "$ref": "#/definitions/property" + }, + "required": { + "$ref": "#/definitions/stringArray" + }, + "schema": { + "readOnly": true, + "type": "string" + }, + "self": { + "readOnly": true, + "type": "string" + }, + "updated_at": { + "description": "Date and time of the last object modification", + "format": "date-time", + "readOnly": true, + "type": "string" + } + }, + "required": [ + "name" + ] + }, + "type": "array" + }, + "schema": { + "type": "string" + } + } +} diff --git a/api-ref/source/v2/samples/schemas-metadef-properties-list-response.json b/api-ref/source/v2/samples/schemas-metadef-properties-list-response.json new file mode 100644 index 0000000000..59dfbfd504 --- /dev/null +++ b/api-ref/source/v2/samples/schemas-metadef-properties-list-response.json @@ -0,0 +1,152 @@ +{ + "definitions": { + "positiveInteger": { + "minimum": 0, + "type": "integer" + }, + "positiveIntegerDefault0": { + "allOf": [ + { + "$ref": "#/definitions/positiveInteger" + }, + { + "default": 0 + } + ] + }, + "stringArray": { + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array", + "uniqueItems": true + } + }, + "links": [ + { + "href": "{first}", + "rel": "first" + }, + { + "href": "{next}", + "rel": "next" + }, + { + "href": "{schema}", + "rel": "describedby" + } + ], + "name": "properties", + "properties": { + "first": { + "type": "string" + }, + "next": { + "type": "string" + }, + "properties": { + "additionalProperties": { + "additionalProperties": false, + "name": "property", + "properties": { + "additionalItems": { + "type": "boolean" + }, + "default": {}, + "description": { + "type": "string" + }, + "enum": { + "type": "array" + }, + "items": { + "properties": { + "enum": { + "type": "array" + }, + "type": { + "enum": [ + "array", + "boolean", + "integer", + "number", + "object", + "string", + null + ], + "type": "string" + } + }, + "type": "object" + }, + "maxItems": { + "$ref": "#/definitions/positiveInteger" + }, + "maxLength": { + "$ref": "#/definitions/positiveInteger" + }, + "maximum": { + "type": "number" + }, + "minItems": { + "$ref": "#/definitions/positiveIntegerDefault0" + }, + "minLength": { + "$ref": "#/definitions/positiveIntegerDefault0" + }, + "minimum": { + "type": "number" + }, + "name": { + "maxLength": 255, + "type": "string" + }, + "operators": { + "items": { + "type": "string" + }, + "type": "array" + }, + "pattern": { + "format": "regex", + "type": "string" + }, + "readonly": { + "type": "boolean" + }, + "required": { + "$ref": "#/definitions/stringArray" + }, + "title": { + "type": "string" + }, + "type": { + "enum": [ + "array", + "boolean", + "integer", + "number", + "object", + "string", + null + ], + "type": "string" + }, + "uniqueItems": { + "default": false, + "type": "boolean" + } + }, + "required": [ + "type", + "title" + ] + }, + "type": "object" + }, + "schema": { + "type": "string" + } + } +} diff --git a/api-ref/source/v2/samples/schemas-metadef-property-show-response.json b/api-ref/source/v2/samples/schemas-metadef-property-show-response.json new file mode 100644 index 0000000000..f9e9bb31b0 --- /dev/null +++ b/api-ref/source/v2/samples/schemas-metadef-property-show-response.json @@ -0,0 +1,122 @@ +{ + "additionalProperties": false, + "definitions": { + "positiveInteger": { + "minimum": 0, + "type": "integer" + }, + "positiveIntegerDefault0": { + "allOf": [ + { + "$ref": "#/definitions/positiveInteger" + }, + { + "default": 0 + } + ] + }, + "stringArray": { + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array", + "uniqueItems": true + } + }, + "name": "property", + "properties": { + "additionalItems": { + "type": "boolean" + }, + "default": {}, + "description": { + "type": "string" + }, + "enum": { + "type": "array" + }, + "items": { + "properties": { + "enum": { + "type": "array" + }, + "type": { + "enum": [ + "array", + "boolean", + "integer", + "number", + "object", + "string", + null + ], + "type": "string" + } + }, + "type": "object" + }, + "maxItems": { + "$ref": "#/definitions/positiveInteger" + }, + "maxLength": { + "$ref": "#/definitions/positiveInteger" + }, + "maximum": { + "type": "number" + }, + "minItems": { + "$ref": "#/definitions/positiveIntegerDefault0" + }, + "minLength": { + "$ref": "#/definitions/positiveIntegerDefault0" + }, + "minimum": { + "type": "number" + }, + "name": { + "maxLength": 255, + "type": "string" + }, + "operators": { + "items": { + "type": "string" + }, + "type": "array" + }, + "pattern": { + "format": "regex", + "type": "string" + }, + "readonly": { + "type": "boolean" + }, + "required": { + "$ref": "#/definitions/stringArray" + }, + "title": { + "type": "string" + }, + "type": { + "enum": [ + "array", + "boolean", + "integer", + "number", + "object", + "string", + null + ], + "type": "string" + }, + "uniqueItems": { + "default": false, + "type": "boolean" + } + }, + "required": [ + "type", + "title", + "name" + ] +} diff --git a/api-ref/source/v2/samples/schemas-metadef-resource-type-association-show-response.json b/api-ref/source/v2/samples/schemas-metadef-resource-type-association-show-response.json new file mode 100644 index 0000000000..cf93991797 --- /dev/null +++ b/api-ref/source/v2/samples/schemas-metadef-resource-type-association-show-response.json @@ -0,0 +1,36 @@ +{ + "additionalProperties": false, + "name": "resource_type_association", + "properties": { + "created_at": { + "description": "Date and time of resource type association", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "name": { + "description": "Resource type names should be aligned with Heat resource types whenever possible: http://docs.openstack.org/developer/heat/template_guide/openstack.html", + "maxLength": 80, + "type": "string" + }, + "prefix": { + "description": "Specifies the prefix to use for the given resource type. Any properties in the namespace should be prefixed with this prefix when being applied to the specified resource type. Must include prefix separator (e.g. a colon :).", + "maxLength": 80, + "type": "string" + }, + "properties_target": { + "description": "Some resource types allow more than one key / value pair per instance. For example, Cinder allows user and image metadata on volumes. Only the image properties metadata is evaluated by Nova (scheduling or drivers). This property allows a namespace target to remove the ambiguity.", + "maxLength": 80, + "type": "string" + }, + "updated_at": { + "description": "Date and time of the last resource type association modification", + "format": "date-time", + "readOnly": true, + "type": "string" + } + }, + "required": [ + "name" + ] +} diff --git a/api-ref/source/v2/samples/schemas-metadef-resource-type-associations-list-response.json b/api-ref/source/v2/samples/schemas-metadef-resource-type-associations-list-response.json new file mode 100644 index 0000000000..4d967449b7 --- /dev/null +++ b/api-ref/source/v2/samples/schemas-metadef-resource-type-associations-list-response.json @@ -0,0 +1,67 @@ +{ + "links": [ + { + "href": "{first}", + "rel": "first" + }, + { + "href": "{next}", + "rel": "next" + }, + { + "href": "{schema}", + "rel": "describedby" + } + ], + "name": "resource_type_associations", + "properties": { + "first": { + "type": "string" + }, + "next": { + "type": "string" + }, + "resource_type_associations": { + "items": { + "additionalProperties": false, + "name": "resource_type_association", + "properties": { + "created_at": { + "description": "Date and time of resource type association", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "name": { + "description": "Resource type names should be aligned with Heat resource types whenever possible: http://docs.openstack.org/developer/heat/template_guide/openstack.html", + "maxLength": 80, + "type": "string" + }, + "prefix": { + "description": "Specifies the prefix to use for the given resource type. Any properties in the namespace should be prefixed with this prefix when being applied to the specified resource type. Must include prefix separator (e.g. a colon :).", + "maxLength": 80, + "type": "string" + }, + "properties_target": { + "description": "Some resource types allow more than one key / value pair per instance. For example, Cinder allows user and image metadata on volumes. Only the image properties metadata is evaluated by Nova (scheduling or drivers). This property allows a namespace target to remove the ambiguity.", + "maxLength": 80, + "type": "string" + }, + "updated_at": { + "description": "Date and time of the last resource type association modification", + "format": "date-time", + "readOnly": true, + "type": "string" + } + }, + "required": [ + "name" + ] + }, + "type": "array" + }, + "schema": { + "type": "string" + } + } +} diff --git a/api-ref/source/v2/samples/schemas-metadef-tag-show-response.json b/api-ref/source/v2/samples/schemas-metadef-tag-show-response.json new file mode 100644 index 0000000000..a99a511d11 --- /dev/null +++ b/api-ref/source/v2/samples/schemas-metadef-tag-show-response.json @@ -0,0 +1,25 @@ +{ + "additionalProperties": false, + "name": "tag", + "properties": { + "created_at": { + "description": "Date and time of tag creation", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "name": { + "maxLength": 255, + "type": "string" + }, + "updated_at": { + "description": "Date and time of the last tag modification", + "format": "date-time", + "readOnly": true, + "type": "string" + } + }, + "required": [ + "name" + ] +} diff --git a/api-ref/source/v2/samples/schemas-metadef-tags-list-response.json b/api-ref/source/v2/samples/schemas-metadef-tags-list-response.json new file mode 100644 index 0000000000..07006b96bb --- /dev/null +++ b/api-ref/source/v2/samples/schemas-metadef-tags-list-response.json @@ -0,0 +1,56 @@ +{ + "links": [ + { + "href": "{first}", + "rel": "first" + }, + { + "href": "{next}", + "rel": "next" + }, + { + "href": "{schema}", + "rel": "describedby" + } + ], + "name": "tags", + "properties": { + "first": { + "type": "string" + }, + "next": { + "type": "string" + }, + "schema": { + "type": "string" + }, + "tags": { + "items": { + "additionalProperties": false, + "name": "tag", + "properties": { + "created_at": { + "description": "Date and time of tag creation", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "name": { + "maxLength": 255, + "type": "string" + }, + "updated_at": { + "description": "Date and time of the last tag modification", + "format": "date-time", + "readOnly": true, + "type": "string" + } + }, + "required": [ + "name" + ] + }, + "type": "array" + } + } +}