2c59ecdc82
merge salv's fix to remove keystone middleware: lp855151 one more 202->200 from tyler merge tylers additional 202 -> 200 changes merge additions to OVS readme describing running with multiple hosts merge brad's changes to make create API calls return 200, not 202 merge unit test for showing unset attachment merging API docs branch Merge: lp:~yinliu2/quantum/bug856564 Merge: lp:~bgh/quantum/bug850261 Change-Id: I56fe24c59f918737e57b562343c33ec6dcceac60
356 lines
15 KiB
XML
356 lines
15 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<?xml-stylesheet type="text/xsl" href="../xslt/schema.xsl"?>
|
|
|
|
<!-- (C) 2011 OpenStack LLC., All Rights Reserved -->
|
|
|
|
<xs:schema elementFormDefault="qualified" attributeFormDefault="unqualified"
|
|
targetNamespace="http://docs.openstack.org/common/api/v1.0"
|
|
xmlns:vers="http://docs.openstack.org/common/api/v1.0"
|
|
xmlns:vc="http://www.w3.org/2007/XMLSchema-versioning"
|
|
xmlns:xsdxt="http://docs.rackspacecloud.com/xsd-ext/v1.0"
|
|
xmlns:html="http://www.w3.org/1999/xhtml"
|
|
xmlns:atom="http://www.w3.org/2005/Atom"
|
|
xmlns:xs="http://www.w3.org/2001/XMLSchema">
|
|
|
|
<xs:annotation>
|
|
<xs:appinfo
|
|
xml:lang="EN"
|
|
xmlns="http://www.w3.org/1999/xhtml">
|
|
<xsdxt:title>Version Types</xsdxt:title>
|
|
<xsdxt:link rel="index" href="api-common.xsd" />
|
|
</xs:appinfo>
|
|
<xs:documentation
|
|
xml:lang="EN"
|
|
xmlns="http://www.w3.org/1999/xhtml">
|
|
<p>
|
|
This schema file defines all types related to versioning.
|
|
</p>
|
|
</xs:documentation>
|
|
</xs:annotation>
|
|
|
|
<!-- Import ATOM specific schema definitions -->
|
|
<xs:import namespace="http://www.w3.org/2005/Atom" schemaLocation="atom/atom.xsd" />
|
|
|
|
<!-- Multiple choices -->
|
|
<xs:element name="choices" type="vers:VersionChoiceList">
|
|
<xs:annotation>
|
|
<xs:documentation
|
|
xml:lang="EN"
|
|
xmlns="http://www.w3.org/1999/xhtml">
|
|
<p>
|
|
This element is returned when the version of the
|
|
resource cannot be determined. The element
|
|
provides a list of choices for the resource.
|
|
</p>
|
|
</xs:documentation>
|
|
<xs:appinfo>
|
|
<xsdxt:samples>
|
|
<xsdxt:sample>
|
|
<xsdxt:code type="application/xml" href="../samples/choices.xml" />
|
|
</xsdxt:sample>
|
|
<xsdxt:sample>
|
|
<xsdxt:code type="application/json" href="../samples/choices.json" />
|
|
</xsdxt:sample>
|
|
</xsdxt:samples>
|
|
</xs:appinfo>
|
|
</xs:annotation>
|
|
</xs:element>
|
|
|
|
<!-- Versioning -->
|
|
<xs:element name="versions" type="vers:VersionChoiceList">
|
|
<xs:annotation>
|
|
<xs:documentation
|
|
xml:lang="EN"
|
|
xmlns="http://www.w3.org/1999/xhtml">
|
|
<p>
|
|
Provides a list of supported versions.
|
|
</p>
|
|
</xs:documentation>
|
|
<xs:appinfo>
|
|
<xsdxt:samples>
|
|
<xsdxt:sample>
|
|
<xsdxt:code type="application/xml" href="../samples/versions.xml" />
|
|
</xsdxt:sample>
|
|
<xsdxt:sample>
|
|
<xsdxt:code type="application/json" href="../samples/versions.json" />
|
|
</xsdxt:sample>
|
|
<xsdxt:sample>
|
|
<xsdxt:code type="application/atom+xml" href="../samples/versions-atom.xml" />
|
|
</xsdxt:sample>
|
|
</xsdxt:samples>
|
|
</xs:appinfo>
|
|
</xs:annotation>
|
|
</xs:element>
|
|
<xs:element name="version" type="vers:VersionChoice" vc:minVersion="1.0" vc:maxVersion="1.1">
|
|
<xs:annotation>
|
|
<xs:documentation
|
|
xml:lang="EN"
|
|
xmlns="http://www.w3.org/1999/xhtml">
|
|
<p>
|
|
This element provides detailed meta information
|
|
regarding the status of the current API version.
|
|
This is the XSD 1.0 compatible element definition.
|
|
</p>
|
|
</xs:documentation>
|
|
</xs:annotation>
|
|
</xs:element>
|
|
|
|
<xs:element name="version" type="vers:VersionChoiceRoot" vc:minVersion="1.1">
|
|
<xs:annotation>
|
|
<xs:documentation
|
|
xml:lang="EN"
|
|
xmlns="http://www.w3.org/1999/xhtml">
|
|
<p>
|
|
This element provides detailed meta information
|
|
regarding the status of the current API
|
|
version. The description should include a pointer
|
|
to both a human readable and a machine processable
|
|
description of the API service.
|
|
</p>
|
|
</xs:documentation>
|
|
<xs:appinfo>
|
|
<xsdxt:samples>
|
|
<xsdxt:sample>
|
|
<xsdxt:code type="application/xml" href="../samples/version.xml" />
|
|
</xsdxt:sample>
|
|
<xsdxt:sample>
|
|
<xsdxt:code type="application/json" href="../samples/version.json" />
|
|
</xsdxt:sample>
|
|
<xsdxt:sample>
|
|
<xsdxt:code type="application/atom+xml" href="../samples/version-atom.xml" />
|
|
</xsdxt:sample>
|
|
</xsdxt:samples>
|
|
</xs:appinfo>
|
|
</xs:annotation>
|
|
</xs:element>
|
|
|
|
<!-- Types -->
|
|
<xs:simpleType name="VersionStatus">
|
|
<xs:annotation>
|
|
<xs:documentation>
|
|
<html:p>
|
|
The VersionStatus type describes a service's operational status.
|
|
</html:p>
|
|
</xs:documentation>
|
|
</xs:annotation>
|
|
|
|
<xs:restriction base="xs:string">
|
|
<xs:enumeration value="ALPHA">
|
|
<xs:annotation>
|
|
<xs:documentation>
|
|
<html:p>
|
|
This is a new service the API. Thi API
|
|
contract may be set, but the implementaiton
|
|
may not be 100% complient with it. Developers
|
|
are encouraged to begin testing aganst an
|
|
ALPHA version to provide feedback.
|
|
</html:p>
|
|
</xs:documentation>
|
|
</xs:annotation>
|
|
</xs:enumeration>
|
|
<xs:enumeration value="BETA">
|
|
<xs:annotation>
|
|
<xs:documentation>
|
|
<html:p>
|
|
A status of BETA indicates that this
|
|
version is a candidate for the next major
|
|
release and may feature functionality not
|
|
available in the current
|
|
version. Developers are encouraged to test
|
|
and begin the migration processes to a
|
|
BETA version. Note that a BETA version is
|
|
undergoing testing, it has not been
|
|
officially released, and my not be stable.
|
|
</html:p>
|
|
</xs:documentation>
|
|
</xs:annotation>
|
|
</xs:enumeration>
|
|
<xs:enumeration value="CURRENT">
|
|
<xs:annotation>
|
|
<xs:documentation>
|
|
<html:p>
|
|
The API version is stable and has been
|
|
tested. Developers are encouraged to
|
|
develop against this API version. The
|
|
current released version of the API will
|
|
always be marked as CURRENT.
|
|
</html:p>
|
|
</xs:documentation>
|
|
</xs:annotation>
|
|
</xs:enumeration>
|
|
<xs:enumeration value="DEPRECATED">
|
|
<xs:annotation>
|
|
<xs:documentation>
|
|
<html:p>
|
|
A status of DEPRECATED indicates that a
|
|
newer version of the API is
|
|
available. Application developers are
|
|
discouraged from using this version and
|
|
should instead develop against the latest
|
|
current version of the API.
|
|
</html:p>
|
|
</xs:documentation>
|
|
</xs:annotation>
|
|
</xs:enumeration>
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
|
|
<xs:complexType name="VersionChoiceList">
|
|
<xs:annotation>
|
|
<xs:documentation>
|
|
<html:p>
|
|
A version choice list outlines a collection of
|
|
resources at various versions.
|
|
</html:p>
|
|
</xs:documentation>
|
|
</xs:annotation>
|
|
<xs:sequence>
|
|
<xs:element name="version" type="vers:VersionChoice" minOccurs="1" maxOccurs="unbounded" />
|
|
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
|
|
</xs:sequence>
|
|
<xs:anyAttribute namespace="##other" processContents="lax"/>
|
|
<xs:assert vc:minVersion="1.1" test="every $v in vers:version satisfies $v/atom:link[@rel='self']">
|
|
<xs:annotation>
|
|
<xs:documentation>
|
|
<html:p>
|
|
In version lists, every single version must
|
|
contain at least one self link.
|
|
</html:p>
|
|
</xs:documentation>
|
|
</xs:annotation>
|
|
</xs:assert>
|
|
</xs:complexType>
|
|
|
|
<xs:complexType name="VersionChoiceRoot" vc:minVersion="1.1">
|
|
<xs:complexContent>
|
|
<xs:extension base="vers:VersionChoice">
|
|
<xs:assert test="atom:link[@rel='describedby']">
|
|
<xs:annotation>
|
|
<xs:documentation>
|
|
<html:p>
|
|
When used as a root element, a version choice
|
|
must contain at least one describedby link.
|
|
</html:p>
|
|
</xs:documentation>
|
|
</xs:annotation>
|
|
</xs:assert>
|
|
</xs:extension>
|
|
</xs:complexContent>
|
|
</xs:complexType>
|
|
|
|
<xs:complexType name="VersionChoice">
|
|
<xs:annotation>
|
|
<xs:documentation>
|
|
<html:p>
|
|
A version choice contains relevant information
|
|
about an available service that a user can then
|
|
use to target a specific version of the service.
|
|
</html:p>
|
|
</xs:documentation>
|
|
</xs:annotation>
|
|
|
|
<xs:sequence>
|
|
<xs:element name="media-types" type="vers:MediaTypeList" minOccurs="0" maxOccurs="1" />
|
|
<xs:element vc:minVersion="1.1" ref="atom:link" minOccurs="0" maxOccurs="unbounded" />
|
|
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
|
|
</xs:sequence>
|
|
|
|
<xs:attribute name="id" type="xs:string" use="required">
|
|
<xs:annotation>
|
|
<xs:documentation>
|
|
<html:p>
|
|
The ID of a version choice represents the service version's unique
|
|
identifier. This ID is guaranteed to be unique only among the
|
|
service version choices outlined in the VersionChoiceList.
|
|
</html:p>
|
|
</xs:documentation>
|
|
</xs:annotation>
|
|
</xs:attribute>
|
|
|
|
<xs:attribute name="status" type="vers:VersionStatus" use="required">
|
|
<xs:annotation>
|
|
<xs:documentation>
|
|
<html:p>
|
|
A version choice's status describes the current operational state of
|
|
the given service version. The operational status is captured in a
|
|
simple type enumeration called VersionStatus.
|
|
</html:p>
|
|
</xs:documentation>
|
|
</xs:annotation>
|
|
</xs:attribute>
|
|
|
|
<xs:attribute name="updated" type="xs:dateTime" use="optional">
|
|
<xs:annotation>
|
|
<xs:documentation>
|
|
<html:p>
|
|
A version choice's updated attribute describes
|
|
the time when the version was updated. The
|
|
time should be updated anytime
|
|
<html:strong>anything</html:strong> in the
|
|
version has changed: documentation,
|
|
extensions, bug fixes.
|
|
</html:p>
|
|
</xs:documentation>
|
|
</xs:annotation>
|
|
</xs:attribute>
|
|
<xs:anyAttribute namespace="##other" processContents="lax"/>
|
|
</xs:complexType>
|
|
|
|
<xs:complexType name="MediaTypeList">
|
|
<xs:annotation>
|
|
<xs:documentation>
|
|
<html:p>
|
|
A MediaTypeList outlines a collection of valid media types for a given
|
|
service version.
|
|
</html:p>
|
|
</xs:documentation>
|
|
</xs:annotation>
|
|
|
|
<xs:sequence>
|
|
<xs:element name="media-type" type="vers:MediaType" minOccurs="1" maxOccurs="unbounded" />
|
|
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
|
|
</xs:sequence>
|
|
<xs:anyAttribute namespace="##other" processContents="lax"/>
|
|
</xs:complexType>
|
|
|
|
<xs:complexType name="MediaType">
|
|
<xs:annotation>
|
|
<xs:documentation>
|
|
<html:p>
|
|
A MediaType describes what content types the service version understands.
|
|
</html:p>
|
|
</xs:documentation>
|
|
</xs:annotation>
|
|
<xs:sequence>
|
|
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
|
|
</xs:sequence>
|
|
<xs:attribute name="base" type="xs:string" use="optional" default="">
|
|
<xs:annotation>
|
|
<xs:documentation>
|
|
<html:p>
|
|
The base of a given media type describes the
|
|
simple MIME type that then a more complicated
|
|
media type can be derived from. These types
|
|
are basic and provide no namespace or version
|
|
specific data are are only provided as a
|
|
convenience.
|
|
</html:p>
|
|
</xs:documentation>
|
|
</xs:annotation>
|
|
</xs:attribute>
|
|
|
|
<xs:attribute name="type" type="xs:string" use="required">
|
|
<xs:annotation>
|
|
<xs:documentation>
|
|
<html:p>
|
|
The type attribute of a MediaType describes
|
|
the MIME specific identifier of the media type
|
|
in question.
|
|
</html:p>
|
|
</xs:documentation>
|
|
</xs:annotation>
|
|
</xs:attribute>
|
|
<xs:anyAttribute namespace="##other" processContents="lax"/>
|
|
</xs:complexType>
|
|
</xs:schema>
|