Merge from launchpad quantum/diablo branch:

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
This commit is contained in:
Brad Hall 2011-09-23 20:04:22 -07:00
parent 36dea16f67
commit 2c59ecdc82
121 changed files with 14531 additions and 516 deletions

96
doc/Makefile Normal file
View File

@ -0,0 +1,96 @@
# Makefile for Sphinx documentation
#
# You can set these variables from the command line.
SPHINXOPTS =
SPHINXBUILD = sphinx-build
SPHINXSOURCE = source
PAPER =
BUILDDIR = build
# Internal variables.
PAPEROPT_a4 = -D latex_paper_size=a4
PAPEROPT_letter = -D latex_paper_size=letter
ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) $(SPHINXSOURCE)
.PHONY: help clean html dirhtml pickle json htmlhelp qthelp latex changes linkcheck doctest
.DEFAULT_GOAL = html
help:
@echo "Please use \`make <target>' where <target> is one of"
@echo " html to make standalone HTML files"
@echo " dirhtml to make HTML files named index.html in directories"
@echo " pickle to make pickle files"
@echo " json to make JSON files"
@echo " htmlhelp to make HTML files and a HTML help project"
@echo " qthelp to make HTML files and a qthelp project"
@echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
@echo " changes to make an overview of all changed/added/deprecated items"
@echo " linkcheck to check all external links for integrity"
@echo " doctest to run all doctests embedded in the documentation (if enabled)"
clean:
-rm -rf $(BUILDDIR)/*
if [ -f .autogenerated ] ; then \
cat .autogenerated | xargs rm ; \
rm .autogenerated ; \
fi
html:
$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
@echo
@echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
dirhtml:
$(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
@echo
@echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
pickle:
$(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
@echo
@echo "Build finished; now you can process the pickle files."
json:
$(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
@echo
@echo "Build finished; now you can process the JSON files."
htmlhelp:
$(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp
@echo
@echo "Build finished; now you can run HTML Help Workshop with the" \
".hhp project file in $(BUILDDIR)/htmlhelp."
qthelp:
$(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp
@echo
@echo "Build finished; now you can run "qcollectiongenerator" with the" \
".qhcp project file in $(BUILDDIR)/qthelp, like this:"
@echo "# qcollectiongenerator $(BUILDDIR)/qthelp/nova.qhcp"
@echo "To view the help file:"
@echo "# assistant -collectionFile $(BUILDDIR)/qthelp/nova.qhc"
latex:
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
@echo
@echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
@echo "Run \`make all-pdf' or \`make all-ps' in that directory to" \
"run these through (pdf)latex."
changes:
$(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
@echo
@echo "The overview file is in $(BUILDDIR)/changes."
linkcheck:
$(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
@echo
@echo "Link check complete; look for any errors in the above output " \
"or in $(BUILDDIR)/linkcheck/output.txt."
doctest:
$(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
@echo "Testing of doctests in the sources finished, look at the " \
"results in $(BUILDDIR)/doctest/output.txt."

13
doc/__init__.py Normal file
View File

@ -0,0 +1,13 @@
# Copyright (C) 2011 OpenStack LLC.
#
# 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.

135
doc/pom.xml Normal file
View File

@ -0,0 +1,135 @@
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.openstack.docs</groupId>
<artifactId>openstack-guide</artifactId>
<version>1.0.0-SNAPSHOT</version>
<packaging>jar</packaging>
<name>OpenStack Guides</name>
<!-- ################################################ -->
<!-- USE "mvn clean generate-sources" to run this POM -->
<!-- ################################################ -->
<profiles>
<profile>
<id>Rackspace Research Repositories</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<repositories>
<repository>
<id>rackspace-research</id>
<name>Rackspace Research Repository</name>
<url>http://maven.research.rackspacecloud.com/content/groups/public/</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>rackspace-research</id>
<name>Rackspace Research Repository</name>
<url>http://maven.research.rackspacecloud.com/content/groups/public/</url>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
<build>
<resources>
<resource>
<directory>target/docbkx/pdf</directory>
<excludes>
<exclude>**/*.fo</exclude>
</excludes>
</resource>
</resources>
<plugins>
<plugin>
<groupId>com.rackspace.cloud.api</groupId>
<artifactId>clouddocs-maven-plugin</artifactId>
<version>1.0.5-SNAPSHOT</version>
<executions>
<execution>
<id>goal1</id>
<goals>
<goal>generate-pdf</goal>
</goals>
<phase>generate-sources</phase>
<configuration>
<highlightSource>false</highlightSource>
</configuration>
</execution>
<execution>
<id>goal2</id>
<goals>
<goal>generate-webhelp</goal>
</goals>
<phase>generate-sources</phase>
<configuration>
<!-- These parameters only apply to webhelp -->
<enableDisqus>0</enableDisqus>
<disqusShortname>openstackdocs</disqusShortname>
<enableGoogleAnalytics>1</enableGoogleAnalytics>
<googleAnalyticsId>UA-17511903-6</googleAnalyticsId>
<generateToc>
appendix toc,title
article/appendix nop
article toc,title
book title,figure,table,example,equation
chapter toc,title
part toc,title
preface toc,title
qandadiv toc
qandaset toc
reference toc,title
set toc,title
</generateToc>
<!-- The following elements sets the autonumbering of sections in output for chapter numbers but no numbered sections-->
<sectionAutolabel>0</sectionAutolabel>
<sectionLabelIncludesComponentLabel>0</sectionLabelIncludesComponentLabel>
<postProcess>
<!-- Copies the figures to the correct location for webhelp -->
<copy todir="${basedir}/target/docbkx/webhelp/quantum-api-1.0/figures">
<fileset dir="${basedir}/source/docbkx/quantum-api-1.0/figures">
<include name="**/*.png" />
</fileset>
</copy>
<!-- New stuff -->
<copy
todir="${basedir}/target/docbkx/webhelp/trunk/developer/quantum-api-1.0">
<fileset
dir="${basedir}/target/docbkx/webhelp/quantum-api-1.0/quantum-api-guide/">
<include name="**/*" />
</fileset>
</copy>
<!--Moves PDFs to the needed placement -->
<move failonerror="false"
file="${basedir}/target/docbkx/pdf/quantum-api-1.0/quantum-api-guide.pdf"
tofile="${basedir}/target/docbkx/webhelp/trunk/developer/quantum-api-1.0/quantum-api-guide-trunk.pdf"/>
<!--Deletes leftover uneeded directories -->
<delete
dir="${basedir}/target/docbkx/webhelp/quantum-api-1.0"/>
</postProcess>
</configuration>
</execution>
</executions>
<configuration>
<!-- These parameters apply to pdf and webhelp -->
<xincludeSupported>true</xincludeSupported>
<sourceDirectory>source/docbkx</sourceDirectory>
<includes>
quantum-api-1.0/quantum-api-guide.xml
</includes>
<profileSecurity>reviewer</profileSecurity>
<branding>openstack</branding>
</configuration>
</plugin>
</plugins>
</build>
</project>

13
doc/source/__init__.py Normal file
View File

@ -0,0 +1,13 @@
# Copyright (C) 2011 OpenStack LLC.
#
# 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.

245
doc/source/conf.py Normal file
View File

@ -0,0 +1,245 @@
# -*- coding: utf-8 -*-
# Copyright (c) 2010 OpenStack, LLC.
#
# 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.
#
# Keystone documentation build configuration file, created by
# sphinx-quickstart on Tue May 18 13:50:15 2010.
#
# This file is execfile()'d with the current directory set to it's containing
# dir.
#
# Note that not all possible configuration values are present in this
# autogenerated file.
#
# All configuration values have a default; values that are commented out
# serve to show the default.
import os
import sys
# If extensions (or modules to document with autodoc) are in another directory,
# add these directories to sys.path here. If the directory is relative to the
# documentation root, use os.path.abspath to make it absolute, like shown here.
sys.path.append([os.path.abspath('../quantum'),
os.path.abspath('..'),
os.path.abspath('../bin')
])
# -- General configuration ---------------------------------------------------
# Add any Sphinx extension module names here, as strings. They can be
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
extensions = ['sphinx.ext.autodoc',
'sphinx.ext.coverage',
'sphinx.ext.ifconfig',
'sphinx.ext.intersphinx',
'sphinx.ext.pngmath',
'sphinx.ext.graphviz',
'sphinx.ext.todo']
todo_include_todos = True
# Add any paths that contain templates here, relative to this directory.
templates_path = []
if os.getenv('HUDSON_PUBLISH_DOCS'):
templates_path = ['_ga', '_templates']
else:
templates_path = ['_templates']
# The suffix of source filenames.
source_suffix = '.rst'
# The encoding of source files.
#source_encoding = 'utf-8'
# The master toctree document.
master_doc = 'index'
# General information about the project.
project = u'Quantum'
copyright = u'2011-present, OpenStack, LLC.'
# The version info for the project you're documenting, acts as replacement for
# |version| and |release|, also used in various other places throughout the
# built documents.
#
# Version info
# TODO(salvatore-orlando): replace here once Bug #826563 is fixed
release = '2011.3'
# The short X.Y version.
version = '2011.3'
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
#language = None
# There are two options for replacing |today|: either, you set today to some
# non-false value, then it is used:
#today = ''
# Else, today_fmt is used as the format for a strftime call.
#today_fmt = '%B %d, %Y'
# List of documents that shouldn't be included in the build.
#unused_docs = []
# List of directories, relative to source directory, that shouldn't be searched
# for source files.
exclude_trees = []
# The reST default role (for this markup: `text`) to use for all documents.
#default_role = None
# If true, '()' will be appended to :func: etc. cross-reference text.
#add_function_parentheses = True
# If true, the current module name will be prepended to all description
# unit titles (such as .. function::).
#add_module_names = True
# If true, sectionauthor and moduleauthor directives will be shown in the
# output. They are ignored by default.
show_authors = True
# The name of the Pygments (syntax highlighting) style to use.
pygments_style = 'sphinx'
# A list of ignored prefixes for module index sorting.
modindex_common_prefix = ['quantum.']
# -- Options for man page output --------------------------------------------
# Grouping the document tree for man pages.
# List of tuples 'sourcefile', 'target', u'title', u'Authors name', 'manual'
#man_pages = [
# ('man/cli', 'quantum', u'Quantum Command Line Interface',
# [u'OpenStack'], 1)
# ]
# -- Options for HTML output -------------------------------------------------
# The theme to use for HTML and HTML Help pages. Major themes that come with
# Sphinx are currently 'default' and 'sphinxdoc'.
html_theme_path = ["."]
html_theme = '_theme'
# Theme options are theme-specific and customize the look and feel of a theme
# further. For a list of options available for each theme, see the
# documentation.
#html_theme_options = {}
# Add any paths that contain custom themes here, relative to this directory.
#html_theme_path = ['_theme']
# The name for this set of Sphinx documents. If None, it defaults to
# "<project> v<release> documentation".
#html_title = None
# A shorter title for the navigation bar. Default is the same as html_title.
#html_short_title = None
# The name of an image file (relative to this directory) to place at the top
# of the sidebar.
#html_logo = None
# The name of an image file (within the static path) to use as favicon of the
# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32
# pixels large.
#html_favicon = None
# Add any paths that contain custom static files (such as style sheets) here,
# relative to this directory. They are copied after the builtin static files,
# so a file named "default.css" will overwrite the builtin "default.css".
html_static_path = ['_static']
# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
# using the given strftime format.
#html_last_updated_fmt = '%b %d, %Y'
# If true, SmartyPants will be used to convert quotes and dashes to
# typographically correct entities.
#html_use_smartypants = True
# Custom sidebar templates, maps document names to template names.
#html_sidebars = {}
# Additional templates that should be rendered to pages, maps page names to
# template names.
#html_additional_pages = {}
# If false, no module index is generated.
#html_use_modindex = True
# If false, no index is generated.
#html_use_index = True
# If true, the index is split into individual pages for each letter.
#html_split_index = False
# If true, links to the reST sources are added to the pages.
#html_show_sourcelink = True
# If true, an OpenSearch description file will be output, and all pages will
# contain a <link> tag referring to it. The value of this option must be the
# base URL from which the finished HTML is served.
#html_use_opensearch = ''
# If nonempty, this is the file name suffix for HTML files (e.g. ".xhtml").
#html_file_suffix = ''
# Output file base name for HTML help builder.
htmlhelp_basename = 'quantumdoc'
# -- Options for LaTeX output ------------------------------------------------
# The paper size ('letter' or 'a4').
#latex_paper_size = 'letter'
# The font size ('10pt', '11pt' or '12pt').
#latex_font_size = '10pt'
# Grouping the document tree into LaTeX files. List of tuples
# (source start file, target name, title, author,
# documentclass [howto/manual]).
latex_documents = [
('index', 'Quantum.tex', u'Quantum Documentation',
u'Quantum development team', 'manual'),
]
# The name of an image file (relative to this directory) to place at the top of
# the title page.
#latex_logo = None
# For "manual" documents, if this is true, then toplevel headings are parts,
# not chapters.
#latex_use_parts = False
# Additional stuff for the LaTeX preamble.
#latex_preamble = ''
# Documents to append as an appendix to all manuals.
#latex_appendices = []
# If false, no module index is generated.
#latex_use_modindex = True
# Example configuration for intersphinx: refer to the Python standard library.
intersphinx_mapping = {'python': ('http://docs.python.org/', None),
'nova': ('http://nova.openstack.org', None),
'swift': ('http://swift.openstack.org', None),
'glance': ('http://glance.openstack.org', None)}

View File

@ -0,0 +1,14 @@
README
This docbkx-example folder is provided for those who want to use the maven mojo supplied with the project to build their own documents to PDF and HTML (webhelp) format. It's intended to be a template and model.
You can edit the src/docbkx/example.xml file using vi, emacs, or another DocBook editor. At Rackspace we use Oxygen. Both Oxygen and XML Mind offer free licenses to those working on open source project documentation.
To build the output, install Apache Maven (https://maven.apache.org/) and then run:
mvn clean generate-sources
in the directory containing the pom.xml file.
Feel free to ask questions of the openstack-docs team at https://launchpad.net/~openstack-doc.

View File

@ -0,0 +1,38 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>my-groupid</groupId>
<artifactId>my-guide</artifactId>
<version>1.0.0-SNAPSHOT</version>
<packaging>jar</packaging>
<name>OpenStack stand alone documentation examples</name>
<build>
<plugins>
<plugin>
<groupId>com.agilejava.docbkx</groupId>
<artifactId>docbkx-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>generate-pdf</goal>
<goal>generate-webhelp</goal>
</goals>
<phase>generate-sources</phase>
</execution>
</executions>
<configuration>
<xincludeSupported>true</xincludeSupported>
<chunkSectionDepth>100</chunkSectionDepth>
<postProcess>
<copy todir="target/docbkx/webhelp/example/content/figures">
<fileset dir="src/docbkx/figures">
<include name="**/*.png" />
</fileset>
</copy>
</postProcess>
</configuration>
</plugin>
</plugins>
</build>
</project>

View File

@ -0,0 +1,318 @@
<book xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xi="http://www.w3.org/2001/XInclude" xmlns:svg="http://www.w3.org/2000/svg"
xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:html="http://www.w3.org/1999/xhtml" version="5.0" status="DRAFT">
<title>Maven Example Documentation</title>
<info>
<author>
<personname>
<firstname/>
<surname/>
</personname>
<affiliation>
<orgname>Badges! We don't need any stinking badges!</orgname>
</affiliation>
</author>
<copyright>
<year>2011</year>
<holder>Timothy D. Witham</holder>
</copyright>
<releaseinfo>Example v0.1</releaseinfo>
<productname>Product Name Doesn't Exist - it's an example!™</productname>
<pubdate>2011-01-01</pubdate>
<legalnotice role="rs-api">
<annotation>
<remark>Copyright details are filled in by the template. Change the value of the role
attribute on the legalnotice element to change the license. </remark>
</annotation>
</legalnotice>
<abstract>
<para> This document is intended for individuals who whish to produce documentation using Maven and having
the same "feel" as the documentation that is produced by the mainline OpenStack projects.
</para>
</abstract>
<cover>
<para>this is a placeholder for the front cover</para>
</cover>
<cover>
<para>this is a placeholder for the back cover</para>
</cover>
</info>
<chapter>
<title>Overview</title>
<para>Welcome to the getting started with Maven documentation. Congratulations you have
successfully downloaded and built the example.
</para>
<para>For more details on the Product Name service, please refer to <link
xlink:href="http://www.rackspacecloud.com/cloud_hosting_products/files"
>http://www.rackspacecloud.com/cloud_hosting_products/product name</link>
</para>
<para>We welcome feedback, comments, and bug reports at <link
xlink:href="mailto:support@rackspacecloud.com">support@rackspacecloud.com</link>. </para>
<section>
<title>Intended Audience</title>
<para>This guide is intended to individuals who want to develop standalone documentation
to use within an OpenStack deployment. Using this tool chain will give you the look and
feel of the mainline OpenStack documentation.
</para>
</section>
<section>
<title>Document Change History</title>
<para>This version of the Maven Getting Started Guide replaces and obsoletes all previous versions. The
most recent changes are described in the table below:</para>
<informaltable rules="all">
<thead>
<tr>
<td align="center" colspan="1">Revision Date</td>
<td align="center" colspan="4">Summary of Changes</td>
</tr>
</thead>
<tbody>
<tr>
<td colspan="1" align="center">July. 14, 2011</td>
<td colspan="4">
<itemizedlist spacing="compact">
<listitem>
<para>Initial document creation.</para>
</listitem>
</itemizedlist>
</td>
</tr>
</tbody>
</informaltable>
</section>
<section>
<title>Additional Resources</title>
<itemizedlist spacing="compact">
<listitem>
<para>
<link xlink:href="http://www.openstack.org">
Openstack - Cloud Software
</link>
</para>
</listitem>
<listitem>
<para>
<link xlink:href="http://www.docbook.org">
Docbook Main Web Site
</link>
</para>
</listitem>
<listitem>
<para>
<link xlink:href="http://docbook.org/tdg/en/html/quickref.html">
Docbook Quick Reference
</link>
</para>
</listitem>
</itemizedlist>
</section>
</chapter>
<chapter>
<title>Concepts</title>
<para>
Need to put something here.
</para>
</chapter>
<chapter>
<title>How do I?</title>
<section>
<title>Notes and including images</title>
<para>So I want an note and an image in this section ...</para>
<note>
<para>This is an example of a note. </para>
</note>
<para>Here's a sample figure in svg and png formats:</para>
<figure xml:id="CFinterfaces">
<title>Sample Image</title>
<mediaobject>
<imageobject role="fo">
<imagedata fileref="figures/example.svg" contentwidth="5in"/>
</imageobject>
<imageobject role="html">
<imagedata fileref="figures/example.png"/>
</imageobject>
</mediaobject>
</figure>
</section>
<section>
<title>Multiple Related Documents</title>
<para>
What you need to do in order to have multiple documents fit within the
build structure.
</para>
</section>
<section>
<title>Using multiple files for a document</title>
<para>
What you need to do in order to have a single document that is made up of multiple
files.
</para>
</section>
<section>
<title>Who, What, Where, When and Why of pom.xml</title>
<para>
You will of noticed the <emphasis>pom.xml</emphasis> file at the root directory.
This file is used to set the project parameters for the documentation. Including
what type of documentation to produce and any post processing that needs to happen.
If you want to know more about
<link
xlink:href="http://www.openstack.org">
pom.xml - need a link
</link>
then follow the link.
</para>
<para> For the <emphasis>pom.xml</emphasis>file that was included in this distribution we will
parse the individual lines and explaine the meaning.
</para>
<para>
<programlisting language="xml"> <xi:include href="../../pom.xml" parse="text" /></programlisting>
</para>
<section>
<title> &lt;project&gt; </title>
<para>
What is all of this stuff and why is it important?
</para>
</section>
<section>
<title> &lt;modelVersion&gt; </title>
<para>
What goes in here and why?
</para>
</section>
<section>
<title> &lt;groupId&gt; </title>
<para>
What goes in here and why?
</para>
</section>
<section>
<title> &lt;artifactId&gt; </title>
<para>
What goes in here and why?
</para>
</section>
<section>
<title> &lt;version&gt; </title>
<para>
What goes in here and why?
</para>
</section>
<section>
<title> &lt;packaging&gt; </title>
<para>
What goes in here and why?
</para>
</section>
<section>
<title> &lt;name&gt; </title>
<para>
Name of your document.
</para>
</section>
<section>
<title> &lt;build&gt; </title>
<para>
Make some documents.
</para>
<section>
<title> &lt;plugin(s)&gt; </title>
<para>
What does this do and why?
</para>
<section>
<title> &lt;groupId&gt; </title>
<para>
What goes in here and why?
</para>
</section>
<section>
<title> &lt;artifactId&gt; </title>
<para>
What goes in here and why?
</para>
</section>
<section>
<title> &lt;execution(s)&gt; </title>
<para>
What goes in here and why?
</para>
<section>
<title> &lt;goal(s)&gt; </title>
<para>
Different types of goals and why you use them.
</para>
</section>
<section>
<title> &lt;phase&gt; </title>
<para>
What does this section do? What phases can you specify.
</para>
</section>
</section>
<section>
<title> &lt;configuration&gt; </title>
<para>
What does this section do?
</para>
<section>
<title> &lt;xincludeSupported&gt; </title>
<para>
What does this do and why?
</para>
</section>
<section>
<title> &lt;chunkSectionDepth&gt; </title>
<para>
What does this do and why?
</para>
</section>
<section>
<title> &lt;postprocess&gt; </title>
<para>
What does this section do? What are possible pieces?
</para>
<section>
<title> &lt;copy&gt; </title>
<para>
What does this section do? What are possible pieces?
</para>
<section>
<title> &lt;fileset&gt; </title>
<para>
What does this section do? What are possible pieces?
</para>
<section>
<title> &lt;include&gt; </title>
<para>
What does this section do? What are possible pieces?
</para>
</section>
</section>
</section>
</section>
</section>
</section>
</section>
</section>
<section>
<title>Who, What, Where, When and Why of build.xml</title>
<para>
You will of noticed the <emphasis>build.xml</emphasis> file at the root directory.
This file is used to set the project parameters for the documentation. Including
what type of documentation to produce and any post processing that needs to happen.
If you want to know more about
<link
xlink:href="http://www.openstack.org">
pom.xml - need a link
</link>
then follow the link.
</para>
</section>
</chapter>
<chapter>
<title>Troubleshooting</title>
<para>Sometimes things go wrong...</para>
</chapter>
</book>

View File

@ -0,0 +1,79 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<diagram>
<source><![CDATA[bfs:BFS[a]
/queue:FIFO
someNode:Node
node:Node
adjList:List
adj:Node
bfs:queue.new
bfs:someNode.setLevel(0)
bfs:queue.insert(someNode)
[c:loop while queue != ()]
bfs:node=queue.remove()
bfs:level=node.getLevel()
bfs:adjList=node.getAdjacentNodes()
[c:loop 0 <= i < #adjList]
bfs:adj=adjList.get(i)
bfs:nodeLevel=adj.getLevel()
[c:alt nodeLevel IS NOT defined]
bfs:adj.setLevel(level+1)
bfs:queue.insert(adj)
--[else]
bfs:nothing to do
[/c]
[/c]
[/c]
bfs:queue.destroy()]]></source>
<configuration>
<property name="actorWidth" value="25"/>
<property name="allowMessageProperties" value="false"/>
<property name="arrowSize" value="6"/>
<property name="colorizeThreads" value="true"/>
<property name="destructorWidth" value="30"/>
<property family="Dialog" name="font" size="12" style="0"/>
<property name="fragmentMargin" value="8"/>
<property name="fragmentPadding" value="10"/>
<property name="fragmentTextPadding" value="3"/>
<property name="glue" value="10"/>
<property name="headHeight" value="35"/>
<property name="headLabelPadding" value="5"/>
<property name="headWidth" value="100"/>
<property name="initialSpace" value="10"/>
<property name="leftMargin" value="5"/>
<property name="lineWrap" value="false"/>
<property name="lowerMargin" value="5"/>
<property name="mainLifelineWidth" value="8"/>
<property name="messageLabelSpace" value="3"/>
<property name="messagePadding" value="6"/>
<property name="noteMargin" value="6"/>
<property name="notePadding" value="6"/>
<property name="opaqueMessageText" value="false"/>
<property name="returnArrowVisible" value="true"/>
<property name="rightMargin" value="5"/>
<property name="selfMessageHorizontalSpace" value="15"/>
<property name="separatorBottomMargin" value="8"/>
<property name="separatorTopMargin" value="15"/>
<property name="shouldShadowParticipants" value="true"/>
<property name="spaceBeforeActivation" value="2"/>
<property name="spaceBeforeAnswerToSelf" value="10"/>
<property name="spaceBeforeConstruction" value="6"/>
<property name="spaceBeforeSelfMessage" value="7"/>
<property name="subLifelineWidth" value="6"/>
<property name="tc0" value="-1118482"/>
<property name="tc1" value="-256"/>
<property name="tc2" value="-65536"/>
<property name="tc3" value="-16776961"/>
<property name="tc4" value="-16711936"/>
<property name="tc5" value="-4144960"/>
<property name="tc6" value="-65281"/>
<property name="tc7" value="-14336"/>
<property name="tc8" value="-20561"/>
<property name="tc9" value="-12566464"/>
<property name="threadNumbersVisible" value="false"/>
<property name="threaded" value="true"/>
<property name="upperMargin" value="5"/>
<property name="verticallySplit" value="true"/>
</configuration>
</diagram>

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 207 KiB

View File

@ -0,0 +1,112 @@
<!--
A collection of common faults, these are pretty much expected
in every request.
-->
<!ENTITY commonFaults
'
<response xmlns="http://wadl.dev.java.net/2009/02">
<representation mediaType="application/xml" element="osapi:computeFault"/>
<representation mediaType="application/json"/>
</response>
<response status="503" xmlns="http://wadl.dev.java.net/2009/02">
<representation mediaType="application/xml" element="osapi:serviceUnavailable"/>
<representation mediaType="applicaiton/json"/>
</response>
<response status="401" xmlns="http://wadl.dev.java.net/2009/02">
<representation mediaType="application/xml" element="osapi:unauthorized"/>
<representation mediaType="applicaiton/json"/>
</response>
<response status="403" xmlns="http://wadl.dev.java.net/2009/02">
<representation mediaType="application/xml" element="osapi:forbidden"/>
<representation mediaType="applicaiton/json"/>
</response>
<response status="400" xmlns="http://wadl.dev.java.net/2009/02">
<representation mediaType="application/xml" element="osapi:badRequest"/>
<representation mediaType="applicaiton/json"/>
</response>
<response status="405" xmlns="http://wadl.dev.java.net/2009/02">
<representation mediaType="application/xml" element="osapi:badMethod"/>
<representation mediaType="applicaiton/json"/>
</response>
<response status="413" xmlns="http://wadl.dev.java.net/2009/02">
<representation mediaType="application/xml" element="osapi:overLimit"/>
<representation mediaType="applicaiton/json"/>
</response>
'>
<!--
Faults on GET
-->
<!ENTITY getFaults
'
<response status="404" xmlns="http://wadl.dev.java.net/2009/02">
<representation mediaType="application/xml" element="osapi:itemNotFound"/>
<representation mediaType="applicaiton/json"/>
</response>
'>
<!--
Faults on POST/PUT
-->
<!ENTITY postPutFaults
'
<response status="415" xmlns="http://wadl.dev.java.net/2009/02">
<representation mediaType="application/xml" element="osapi:badMediaType"/>
<representation mediaType="applicaiton/json"/>
</response>
'>
<!--
Faults that can occur when we are building servers or images.
-->
<!ENTITY buildFaults
'
<response status="503" xmlns="http://wadl.dev.java.net/2009/02">
<representation mediaType="application/xml" element="osapi:serverCapacityUnavailable"/>
<representation mediaType="applicaiton/json"/>
</response>
'>
<!--
Holds build in progress which occurs when an operation fails
because the server is in the process of being built.
-->
<!ENTITY inProgressFault
'
<response status="409" xmlns="http://wadl.dev.java.net/2009/02">
<representation mediaType="application/xml" element="osapi:buildInProgress"/>
<representation mediaType="applicaiton/json"/>
</response>
'>
<!-- Image List Parameters -->
<!ENTITY imageListParameters
'
<param xmlns="http://wadl.dev.java.net/2009/02" name="changes-since" style="query" required="false" type="xsd:dateTime"/>
<param xmlns="http://wadl.dev.java.net/2009/02" name="server" style="query" required="false" type="xsd:anyURI"/>
<param xmlns="http://wadl.dev.java.net/2009/02" name="name" style="query" required="false" type="xsd:string"/>
<param xmlns="http://wadl.dev.java.net/2009/02" name="status" style="query" required="false" type="osapi:ImageStatus"/>
<param xmlns="http://wadl.dev.java.net/2009/02" name="type" style="query" required="false" type="xsd:string" default="ALL">
<option value="BASE"/>
<option value="SERVER"/>
<option value="ALL"/>
</param>
'>
<!-- Server List Parameters -->
<!ENTITY serverListParameters
'
<param xmlns="http://wadl.dev.java.net/2009/02" name="changes-since" style="query" required="false" type="xsd:dateTime"/>
<param xmlns="http://wadl.dev.java.net/2009/02" name="image" style="query" required="false" type="xsd:anyURI"/>
<param xmlns="http://wadl.dev.java.net/2009/02" name="flavor" style="query" required="false" type="xsd:anyURI"/>
<param xmlns="http://wadl.dev.java.net/2009/02" name="name" style="query" required="false" type="xsd:string"/>
<param xmlns="http://wadl.dev.java.net/2009/02" name="status" style="query" required="false" type="osapi:ServerStatus"/>
'>
<!-- Flavor List Parameters -->
<!ENTITY flavorListParameters
'
<param xmlns="http://wadl.dev.java.net/2009/02" name="changes-since" style="query" required="false" type="xsd:dateTime"/>
<param xmlns="http://wadl.dev.java.net/2009/02" name="minDisk" style="query" required="false" type="xsd:int"/>
<param xmlns="http://wadl.dev.java.net/2009/02" name="minRam" style="query" required="false" type="xsd:int"/>
'>

View File

@ -0,0 +1,70 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg:svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.0"
width="13.895596"
height="6.3500013"
viewBox="0 0 13.895595 6.3500013"
id="svg2868"
xml:space="preserve"
inkscape:version="0.48.0 r9654"
sodipodi:docname="Arrow_east.svg"><svg:metadata
id="metadata3857"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></svg:metadata><sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1131"
inkscape:window-height="740"
id="namedview3855"
showgrid="false"
inkscape:zoom="11.313708"
inkscape:cx="8.6182271"
inkscape:cy="-2.2709277"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="0"
inkscape:current-layer="svg2868"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" /><svg:defs
id="defs2874" />
<namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
pageopacity="0.0"
pageshadow="2"
window-width="640"
window-height="541"
zoom="0.34493828"
cx="372.04722"
cy="256.66814"
window-x="75"
window-y="152"
current-layer="svg2033">
</namedview>
<svg:g
transform="matrix(-0.01540104,0,0,-0.01741068,13.895596,6.3500014)"
id="Ebene_1">
<svg:polygon
points="902.25049,222.98633 233.17773,222.98633 233.17773,364.71875 0,182.35938 233.17773,0 233.17773,141.73242 902.25049,141.73242 902.25049,222.98633 "
id="path2050" />
</svg:g>
</svg:svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

@ -0,0 +1,60 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://web.resource.org/cc/"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="19.21315"
height="18.294994"
id="svg2"
sodipodi:version="0.32"
inkscape:version="0.45"
sodipodi:modified="true"
version="1.0">
<defs
id="defs4" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
gridtolerance="10000"
guidetolerance="10"
objecttolerance="10"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="7.9195959"
inkscape:cx="17.757032"
inkscape:cy="7.298821"
inkscape:document-units="px"
inkscape:current-layer="layer1"
inkscape:window-width="984"
inkscape:window-height="852"
inkscape:window-x="148"
inkscape:window-y="66" />
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-192.905,-516.02064)">
<path
style="fill:#000000"
d="M 197.67968,534.31563 C 197.40468,534.31208 196.21788,532.53719 195.04234,530.37143 L 192.905,526.43368 L 193.45901,525.87968 C 193.76371,525.57497 194.58269,525.32567 195.27896,525.32567 L 196.5449,525.32567 L 197.18129,527.33076 L 197.81768,529.33584 L 202.88215,523.79451 C 205.66761,520.74678 208.88522,517.75085 210.03239,517.13691 L 212.11815,516.02064 L 207.90871,520.80282 C 205.59351,523.43302 202.45735,527.55085 200.93947,529.95355 C 199.42159,532.35625 197.95468,534.31919 197.67968,534.31563 z "
id="path2223" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

@ -0,0 +1,337 @@
if (! this.sh_languages) {
this.sh_languages = {};
}
sh_languages['java'] = [
[
[
/\b(?:import|package)\b/g,
'sh_preproc',
-1
],
[
/\/\/\//g,
'sh_comment',
1
],
[
/\/\//g,
'sh_comment',
7
],
[
/\/\*\*/g,
'sh_comment',
8
],
[
/\/\*/g,
'sh_comment',
9
],
[
/\b[+-]?(?:(?:0x[A-Fa-f0-9]+)|(?:(?:[\d]*\.)?[\d]+(?:[eE][+-]?[\d]+)?))u?(?:(?:int(?:8|16|32|64))|L)?\b/g,
'sh_number',
-1
],
[
/"/g,
'sh_string',
10
],
[
/'/g,
'sh_string',
11
],
[
/(\b(?:class|interface))([ \t]+)([$A-Za-z0-9_]+)/g,
['sh_keyword', 'sh_normal', 'sh_classname'],
-1
],
[
/\b(?:abstract|assert|break|case|catch|class|const|continue|default|do|else|extends|false|final|finally|for|goto|if|implements|instanceof|interface|native|new|null|private|protected|public|return|static|strictfp|super|switch|synchronized|throw|throws|true|this|transient|try|volatile|while)\b/g,
'sh_keyword',
-1
],
[
/\b(?:int|byte|boolean|char|long|float|double|short|void)\b/g,
'sh_type',
-1
],
[
/~|!|%|\^|\*|\(|\)|-|\+|=|\[|\]|\\|:|;|,|\.|\/|\?|&|<|>|\|/g,
'sh_symbol',
-1
],
[
/\{|\}/g,
'sh_cbracket',
-1
],
[
/(?:[A-Za-z]|_)[A-Za-z0-9_]*(?=[ \t]*\()/g,
'sh_function',
-1
],
[
/([A-Za-z](?:[^`~!@#$%&*()_=+{}|;:",<.>\/?'\\[\]\^\-\s]|[_])*)((?:<.*>)?)(\s+(?=[*&]*[A-Za-z][^`~!@#$%&*()_=+{}|;:",<.>\/?'\\[\]\^\-\s]*\s*[`~!@#$%&*()_=+{}|;:",<.>\/?'\\[\]\^\-\[\]]+))/g,
['sh_usertype', 'sh_usertype', 'sh_normal'],
-1
]
],
[
[
/$/g,
null,
-2
],
[
/(?:<?)[A-Za-z0-9_\.\/\-_~]+@[A-Za-z0-9_\.\/\-_~]+(?:>?)|(?:<?)[A-Za-z0-9_]+:\/\/[A-Za-z0-9_\.\/\-_~]+(?:>?)/g,
'sh_url',
-1
],
[
/<\?xml/g,
'sh_preproc',
2,
1
],
[
/<!DOCTYPE/g,
'sh_preproc',
4,
1
],
[
/<!--/g,
'sh_comment',
5
],
[
/<(?:\/)?[A-Za-z](?:[A-Za-z0-9_:.-]*)(?:\/)?>/g,
'sh_keyword',
-1
],
[
/<(?:\/)?[A-Za-z](?:[A-Za-z0-9_:.-]*)/g,
'sh_keyword',
6,
1
],
[
/&(?:[A-Za-z0-9]+);/g,
'sh_preproc',
-1
],
[
/<(?:\/)?[A-Za-z][A-Za-z0-9]*(?:\/)?>/g,
'sh_keyword',
-1
],
[
/<(?:\/)?[A-Za-z][A-Za-z0-9]*/g,
'sh_keyword',
6,
1
],
[
/@[A-Za-z]+/g,
'sh_type',
-1
],
[
/(?:TODO|FIXME|BUG)(?:[:]?)/g,
'sh_todo',
-1
]
],
[
[
/\?>/g,
'sh_preproc',
-2
],
[
/([^=" \t>]+)([ \t]*)(=?)/g,
['sh_type', 'sh_normal', 'sh_symbol'],
-1
],
[
/"/g,
'sh_string',
3
]
],
[
[
/\\(?:\\|")/g,
null,
-1
],
[
/"/g,
'sh_string',
-2
]
],
[
[
/>/g,
'sh_preproc',
-2
],
[
/([^=" \t>]+)([ \t]*)(=?)/g,
['sh_type', 'sh_normal', 'sh_symbol'],
-1
],
[
/"/g,
'sh_string',
3
]
],
[
[
/-->/g,
'sh_comment',
-2
],
[
/<!--/g,
'sh_comment',
5
]
],
[
[
/(?:\/)?>/g,
'sh_keyword',
-2
],
[
/([^=" \t>]+)([ \t]*)(=?)/g,
['sh_type', 'sh_normal', 'sh_symbol'],
-1
],
[
/"/g,
'sh_string',
3
]
],
[
[
/$/g,
null,
-2
]
],
[
[
/\*\//g,
'sh_comment',
-2
],
[
/(?:<?)[A-Za-z0-9_\.\/\-_~]+@[A-Za-z0-9_\.\/\-_~]+(?:>?)|(?:<?)[A-Za-z0-9_]+:\/\/[A-Za-z0-9_\.\/\-_~]+(?:>?)/g,
'sh_url',
-1
],
[
/<\?xml/g,
'sh_preproc',
2,
1
],
[
/<!DOCTYPE/g,
'sh_preproc',
4,
1
],
[
/<!--/g,
'sh_comment',
5
],
[
/<(?:\/)?[A-Za-z](?:[A-Za-z0-9_:.-]*)(?:\/)?>/g,
'sh_keyword',
-1
],
[
/<(?:\/)?[A-Za-z](?:[A-Za-z0-9_:.-]*)/g,
'sh_keyword',
6,
1
],
[
/&(?:[A-Za-z0-9]+);/g,
'sh_preproc',
-1
],
[
/<(?:\/)?[A-Za-z][A-Za-z0-9]*(?:\/)?>/g,
'sh_keyword',
-1
],
[
/<(?:\/)?[A-Za-z][A-Za-z0-9]*/g,
'sh_keyword',
6,
1
],
[
/@[A-Za-z]+/g,
'sh_type',
-1
],
[
/(?:TODO|FIXME|BUG)(?:[:]?)/g,
'sh_todo',
-1
]
],
[
[
/\*\//g,
'sh_comment',
-2
],
[
/(?:<?)[A-Za-z0-9_\.\/\-_~]+@[A-Za-z0-9_\.\/\-_~]+(?:>?)|(?:<?)[A-Za-z0-9_]+:\/\/[A-Za-z0-9_\.\/\-_~]+(?:>?)/g,
'sh_url',
-1
],
[
/(?:TODO|FIXME|BUG)(?:[:]?)/g,
'sh_todo',
-1
]
],
[
[
/"/g,
'sh_string',
-2
],
[
/\\./g,
'sh_specialchar',
-1
]
],
[
[
/'/g,
'sh_string',
-2
],
[
/\\./g,
'sh_specialchar',
-1
]
]
];

View File

@ -0,0 +1,347 @@
if (! this.sh_languages) {
this.sh_languages = {};
}
sh_languages['javascript'] = [
[
[
/\/\/\//g,
'sh_comment',
1
],
[
/\/\//g,
'sh_comment',
7
],
[
/\/\*\*/g,
'sh_comment',
8
],
[
/\/\*/g,
'sh_comment',
9
],
[
/\b(?:abstract|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|false|final|finally|for|function|goto|if|implements|in|instanceof|interface|native|new|null|private|protected|prototype|public|return|static|super|switch|synchronized|throw|throws|this|transient|true|try|typeof|var|volatile|while|with)\b/g,
'sh_keyword',
-1
],
[
/(\+\+|--|\)|\])(\s*)(\/=?(?![*\/]))/g,
['sh_symbol', 'sh_normal', 'sh_symbol'],
-1
],
[
/(0x[A-Fa-f0-9]+|(?:[\d]*\.)?[\d]+(?:[eE][+-]?[\d]+)?)(\s*)(\/(?![*\/]))/g,
['sh_number', 'sh_normal', 'sh_symbol'],
-1
],
[
/([A-Za-z$_][A-Za-z0-9$_]*\s*)(\/=?(?![*\/]))/g,
['sh_normal', 'sh_symbol'],
-1
],
[
/\/(?:\\.|[^*\\\/])(?:\\.|[^\\\/])*\/[gim]*/g,
'sh_regexp',
-1
],
[
/\b[+-]?(?:(?:0x[A-Fa-f0-9]+)|(?:(?:[\d]*\.)?[\d]+(?:[eE][+-]?[\d]+)?))u?(?:(?:int(?:8|16|32|64))|L)?\b/g,
'sh_number',
-1
],
[
/"/g,
'sh_string',
10
],
[
/'/g,
'sh_string',
11
],
[
/~|!|%|\^|\*|\(|\)|-|\+|=|\[|\]|\\|:|;|,|\.|\/|\?|&|<|>|\|/g,
'sh_symbol',
-1
],
[
/\{|\}/g,
'sh_cbracket',
-1
],
[
/\b(?:Math|Infinity|NaN|undefined|arguments)\b/g,
'sh_predef_var',
-1
],
[
/\b(?:Array|Boolean|Date|Error|EvalError|Function|Number|Object|RangeError|ReferenceError|RegExp|String|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt)\b/g,
'sh_predef_func',
-1
],
[
/(?:[A-Za-z]|_)[A-Za-z0-9_]*(?=[ \t]*\()/g,
'sh_function',
-1
]
],
[
[
/$/g,
null,
-2
],
[
/(?:<?)[A-Za-z0-9_\.\/\-_~]+@[A-Za-z0-9_\.\/\-_~]+(?:>?)|(?:<?)[A-Za-z0-9_]+:\/\/[A-Za-z0-9_\.\/\-_~]+(?:>?)/g,
'sh_url',
-1
],
[
/<\?xml/g,
'sh_preproc',
2,
1
],
[
/<!DOCTYPE/g,
'sh_preproc',
4,
1
],
[
/<!--/g,
'sh_comment',
5
],
[
/<(?:\/)?[A-Za-z](?:[A-Za-z0-9_:.-]*)(?:\/)?>/g,
'sh_keyword',
-1
],
[
/<(?:\/)?[A-Za-z](?:[A-Za-z0-9_:.-]*)/g,
'sh_keyword',
6,
1
],
[
/&(?:[A-Za-z0-9]+);/g,
'sh_preproc',
-1
],
[
/<(?:\/)?[A-Za-z][A-Za-z0-9]*(?:\/)?>/g,
'sh_keyword',
-1
],
[
/<(?:\/)?[A-Za-z][A-Za-z0-9]*/g,
'sh_keyword',
6,
1
],
[
/@[A-Za-z]+/g,
'sh_type',
-1
],
[
/(?:TODO|FIXME|BUG)(?:[:]?)/g,
'sh_todo',
-1
]
],
[
[
/\?>/g,
'sh_preproc',
-2
],
[
/([^=" \t>]+)([ \t]*)(=?)/g,
['sh_type', 'sh_normal', 'sh_symbol'],
-1
],
[
/"/g,
'sh_string',
3
]
],
[
[
/\\(?:\\|")/g,
null,
-1
],
[
/"/g,
'sh_string',
-2
]
],
[
[
/>/g,
'sh_preproc',
-2
],
[
/([^=" \t>]+)([ \t]*)(=?)/g,
['sh_type', 'sh_normal', 'sh_symbol'],
-1
],
[
/"/g,
'sh_string',
3
]
],
[
[
/-->/g,
'sh_comment',
-2
],
[
/<!--/g,
'sh_comment',
5
]
],
[
[
/(?:\/)?>/g,
'sh_keyword',
-2
],
[
/([^=" \t>]+)([ \t]*)(=?)/g,
['sh_type', 'sh_normal', 'sh_symbol'],
-1
],
[
/"/g,
'sh_string',
3
]
],
[
[
/$/g,
null,
-2
]
],
[
[
/\*\//g,
'sh_comment',
-2
],
[
/(?:<?)[A-Za-z0-9_\.\/\-_~]+@[A-Za-z0-9_\.\/\-_~]+(?:>?)|(?:<?)[A-Za-z0-9_]+:\/\/[A-Za-z0-9_\.\/\-_~]+(?:>?)/g,
'sh_url',
-1
],
[
/<\?xml/g,
'sh_preproc',
2,
1
],
[
/<!DOCTYPE/g,
'sh_preproc',
4,
1
],
[
/<!--/g,
'sh_comment',
5
],
[
/<(?:\/)?[A-Za-z](?:[A-Za-z0-9_:.-]*)(?:\/)?>/g,
'sh_keyword',
-1
],
[
/<(?:\/)?[A-Za-z](?:[A-Za-z0-9_:.-]*)/g,
'sh_keyword',
6,
1
],
[
/&(?:[A-Za-z0-9]+);/g,
'sh_preproc',
-1
],
[
/<(?:\/)?[A-Za-z][A-Za-z0-9]*(?:\/)?>/g,
'sh_keyword',
-1
],
[
/<(?:\/)?[A-Za-z][A-Za-z0-9]*/g,
'sh_keyword',
6,
1
],
[
/@[A-Za-z]+/g,
'sh_type',
-1
],
[
/(?:TODO|FIXME|BUG)(?:[:]?)/g,
'sh_todo',
-1
]
],
[
[
/\*\//g,
'sh_comment',
-2
],
[
/(?:<?)[A-Za-z0-9_\.\/\-_~]+@[A-Za-z0-9_\.\/\-_~]+(?:>?)|(?:<?)[A-Za-z0-9_]+:\/\/[A-Za-z0-9_\.\/\-_~]+(?:>?)/g,
'sh_url',
-1
],
[
/(?:TODO|FIXME|BUG)(?:[:]?)/g,
'sh_todo',
-1
]
],
[
[
/"/g,
'sh_string',
-2
],
[
/\\./g,
'sh_specialchar',
-1
]
],
[
[
/'/g,
'sh_string',
-2
],
[
/\\./g,
'sh_specialchar',
-1
]
]
];

View File

@ -0,0 +1,538 @@
/*
SHJS - Syntax Highlighting in JavaScript
Copyright (C) 2007, 2008 gnombat@users.sourceforge.net
License: http://shjs.sourceforge.net/doc/gplv3.html
*/
if (! this.sh_languages) {
this.sh_languages = {};
}
var sh_requests = {};
function sh_isEmailAddress(url) {
if (/^mailto:/.test(url)) {
return false;
}
return url.indexOf('@') !== -1;
}
function sh_setHref(tags, numTags, inputString) {
var url = inputString.substring(tags[numTags - 2].pos, tags[numTags - 1].pos);
if (url.length >= 2 && url.charAt(0) === '<' && url.charAt(url.length - 1) === '>') {
url = url.substr(1, url.length - 2);
}
if (sh_isEmailAddress(url)) {
url = 'mailto:' + url;
}
tags[numTags - 2].node.href = url;
}
/*
Konqueror has a bug where the regular expression /$/g will not match at the end
of a line more than once:
var regex = /$/g;
var match;
var line = '1234567890';
regex.lastIndex = 10;
match = regex.exec(line);
var line2 = 'abcde';
regex.lastIndex = 5;
match = regex.exec(line2); // fails
*/
function sh_konquerorExec(s) {
var result = [''];
result.index = s.length;
result.input = s;
return result;
}
/**
Highlights all elements containing source code in a text string. The return
value is an array of objects, each representing an HTML start or end tag. Each
object has a property named pos, which is an integer representing the text
offset of the tag. Every start tag also has a property named node, which is the
DOM element started by the tag. End tags do not have this property.
@param inputString a text string
@param language a language definition object
@return an array of tag objects
*/
function sh_highlightString(inputString, language) {
if (/Konqueror/.test(navigator.userAgent)) {
if (! language.konquered) {
for (var s = 0; s < language.length; s++) {
for (var p = 0; p < language[s].length; p++) {
var r = language[s][p][0];
if (r.source === '$') {
r.exec = sh_konquerorExec;
}
}
}
language.konquered = true;
}
}
var a = document.createElement('a');
var span = document.createElement('span');
// the result
var tags = [];
var numTags = 0;
// each element is a pattern object from language
var patternStack = [];
// the current position within inputString
var pos = 0;
// the name of the current style, or null if there is no current style
var currentStyle = null;
var output = function(s, style) {
var length = s.length;
// this is more than just an optimization - we don't want to output empty <span></span> elements
if (length === 0) {
return;
}
if (! style) {
var stackLength = patternStack.length;
if (stackLength !== 0) {
var pattern = patternStack[stackLength - 1];
// check whether this is a state or an environment
if (! pattern[3]) {
// it's not a state - it's an environment; use the style for this environment
style = pattern[1];
}
}
}
if (currentStyle !== style) {
if (currentStyle) {
tags[numTags++] = {pos: pos};
if (currentStyle === 'sh_url') {
sh_setHref(tags, numTags, inputString);
}
}
if (style) {
var clone;
if (style === 'sh_url') {
clone = a.cloneNode(false);
}
else {
clone = span.cloneNode(false);
}
clone.className = style;
tags[numTags++] = {node: clone, pos: pos};
}
}
pos += length;
currentStyle = style;
};
var endOfLinePattern = /\r\n|\r|\n/g;
endOfLinePattern.lastIndex = 0;
var inputStringLength = inputString.length;
while (pos < inputStringLength) {
var start = pos;
var end;
var startOfNextLine;
var endOfLineMatch = endOfLinePattern.exec(inputString);
if (endOfLineMatch === null) {
end = inputStringLength;
startOfNextLine = inputStringLength;
}
else {
end = endOfLineMatch.index;
startOfNextLine = endOfLinePattern.lastIndex;
}
var line = inputString.substring(start, end);
var matchCache = [];
for (;;) {
var posWithinLine = pos - start;
var stateIndex;
var stackLength = patternStack.length;
if (stackLength === 0) {
stateIndex = 0;
}
else {
// get the next state
stateIndex = patternStack[stackLength - 1][2];
}
var state = language[stateIndex];
var numPatterns = state.length;
var mc = matchCache[stateIndex];
if (! mc) {
mc = matchCache[stateIndex] = [];
}
var bestMatch = null;
var bestPatternIndex = -1;
for (var i = 0; i < numPatterns; i++) {
var match;
if (i < mc.length && (mc[i] === null || posWithinLine <= mc[i].index)) {
match = mc[i];
}
else {
var regex = state[i][0];
regex.lastIndex = posWithinLine;
match = regex.exec(line);
mc[i] = match;
}
if (match !== null && (bestMatch === null || match.index < bestMatch.index)) {
bestMatch = match;
bestPatternIndex = i;
if (match.index === posWithinLine) {
break;
}
}
}
if (bestMatch === null) {
output(line.substring(posWithinLine), null);
break;
}
else {
// got a match
if (bestMatch.index > posWithinLine) {
output(line.substring(posWithinLine, bestMatch.index), null);
}
var pattern = state[bestPatternIndex];
var newStyle = pattern[1];
var matchedString;
if (newStyle instanceof Array) {
for (var subexpression = 0; subexpression < newStyle.length; subexpression++) {
matchedString = bestMatch[subexpression + 1];
output(matchedString, newStyle[subexpression]);
}
}
else {
matchedString = bestMatch[0];
output(matchedString, newStyle);
}
switch (pattern[2]) {
case -1:
// do nothing
break;
case -2:
// exit
patternStack.pop();
break;
case -3:
// exitall
patternStack.length = 0;
break;
default:
// this was the start of a delimited pattern or a state/environment
patternStack.push(pattern);
break;
}
}
}
// end of the line
if (currentStyle) {
tags[numTags++] = {pos: pos};
if (currentStyle === 'sh_url') {
sh_setHref(tags, numTags, inputString);
}
currentStyle = null;
}
pos = startOfNextLine;
}
return tags;
}
////////////////////////////////////////////////////////////////////////////////
// DOM-dependent functions
function sh_getClasses(element) {
var result = [];
var htmlClass = element.className;
if (htmlClass && htmlClass.length > 0) {
var htmlClasses = htmlClass.split(' ');
for (var i = 0; i < htmlClasses.length; i++) {
if (htmlClasses[i].length > 0) {
result.push(htmlClasses[i]);
}
}
}
return result;
}
function sh_addClass(element, name) {
var htmlClasses = sh_getClasses(element);
for (var i = 0; i < htmlClasses.length; i++) {
if (name.toLowerCase() === htmlClasses[i].toLowerCase()) {
return;
}
}
htmlClasses.push(name);
element.className = htmlClasses.join(' ');
}
/**
Extracts the tags from an HTML DOM NodeList.
@param nodeList a DOM NodeList
@param result an object with text, tags and pos properties
*/
function sh_extractTagsFromNodeList(nodeList, result) {
var length = nodeList.length;
for (var i = 0; i < length; i++) {
var node = nodeList.item(i);
switch (node.nodeType) {
case 1:
if (node.nodeName.toLowerCase() === 'br') {
var terminator;
if (/MSIE/.test(navigator.userAgent)) {
terminator = '\r';
}
else {
terminator = '\n';
}
result.text.push(terminator);
result.pos++;
}
else {
result.tags.push({node: node.cloneNode(false), pos: result.pos});
sh_extractTagsFromNodeList(node.childNodes, result);
result.tags.push({pos: result.pos});
}
break;
case 3:
case 4:
result.text.push(node.data);
result.pos += node.length;
break;
}
}
}
/**
Extracts the tags from the text of an HTML element. The extracted tags will be
returned as an array of tag objects. See sh_highlightString for the format of
the tag objects.
@param element a DOM element
@param tags an empty array; the extracted tag objects will be returned in it
@return the text of the element
@see sh_highlightString
*/
function sh_extractTags(element, tags) {
var result = {};
result.text = [];
result.tags = tags;
result.pos = 0;
sh_extractTagsFromNodeList(element.childNodes, result);
return result.text.join('');
}
/**
Merges the original tags from an element with the tags produced by highlighting.
@param originalTags an array containing the original tags
@param highlightTags an array containing the highlighting tags - these must not overlap
@result an array containing the merged tags
*/
function sh_mergeTags(originalTags, highlightTags) {
var numOriginalTags = originalTags.length;
if (numOriginalTags === 0) {
return highlightTags;
}
var numHighlightTags = highlightTags.length;
if (numHighlightTags === 0) {
return originalTags;
}
var result = [];
var originalIndex = 0;
var highlightIndex = 0;
while (originalIndex < numOriginalTags && highlightIndex < numHighlightTags) {
var originalTag = originalTags[originalIndex];
var highlightTag = highlightTags[highlightIndex];
if (originalTag.pos <= highlightTag.pos) {
result.push(originalTag);
originalIndex++;
}
else {
result.push(highlightTag);
if (highlightTags[highlightIndex + 1].pos <= originalTag.pos) {
highlightIndex++;
result.push(highlightTags[highlightIndex]);
highlightIndex++;
}
else {
// new end tag
result.push({pos: originalTag.pos});
// new start tag
highlightTags[highlightIndex] = {node: highlightTag.node.cloneNode(false), pos: originalTag.pos};
}
}
}
while (originalIndex < numOriginalTags) {
result.push(originalTags[originalIndex]);
originalIndex++;
}
while (highlightIndex < numHighlightTags) {
result.push(highlightTags[highlightIndex]);
highlightIndex++;
}
return result;
}
/**
Inserts tags into text.
@param tags an array of tag objects
@param text a string representing the text
@return a DOM DocumentFragment representing the resulting HTML
*/
function sh_insertTags(tags, text) {
var doc = document;
var result = document.createDocumentFragment();
var tagIndex = 0;
var numTags = tags.length;
var textPos = 0;
var textLength = text.length;
var currentNode = result;
// output one tag or text node every iteration
while (textPos < textLength || tagIndex < numTags) {
var tag;
var tagPos;
if (tagIndex < numTags) {
tag = tags[tagIndex];
tagPos = tag.pos;
}
else {
tagPos = textLength;
}
if (tagPos <= textPos) {
// output the tag
if (tag.node) {
// start tag
var newNode = tag.node;
currentNode.appendChild(newNode);
currentNode = newNode;
}
else {
// end tag
currentNode = currentNode.parentNode;
}
tagIndex++;
}
else {
// output text
currentNode.appendChild(doc.createTextNode(text.substring(textPos, tagPos)));
textPos = tagPos;
}
}
return result;
}
/**
Highlights an element containing source code. Upon completion of this function,
the element will have been placed in the "sh_sourceCode" class.
@param element a DOM <pre> element containing the source code to be highlighted
@param language a language definition object
*/
function sh_highlightElement(element, language) {
sh_addClass(element, 'sh_sourceCode');
var originalTags = [];
var inputString = sh_extractTags(element, originalTags);
var highlightTags = sh_highlightString(inputString, language);
var tags = sh_mergeTags(originalTags, highlightTags);
var documentFragment = sh_insertTags(tags, inputString);
while (element.hasChildNodes()) {
element.removeChild(element.firstChild);
}
element.appendChild(documentFragment);
}
function sh_getXMLHttpRequest() {
if (window.ActiveXObject) {
return new ActiveXObject('Msxml2.XMLHTTP');
}
else if (window.XMLHttpRequest) {
return new XMLHttpRequest();
}
throw 'No XMLHttpRequest implementation available';
}
function sh_load(language, element, prefix, suffix) {
if (language in sh_requests) {
sh_requests[language].push(element);
return;
}
sh_requests[language] = [element];
var request = sh_getXMLHttpRequest();
var url = prefix + 'sh_' + language + suffix;
request.open('GET', url, true);
request.onreadystatechange = function () {
if (request.readyState === 4) {
try {
if (! request.status || request.status === 200) {
eval(request.responseText);
var elements = sh_requests[language];
for (var i = 0; i < elements.length; i++) {
sh_highlightElement(elements[i], sh_languages[language]);
}
}
else {
throw 'HTTP error: status ' + request.status;
}
}
finally {
request = null;
}
}
};
request.send(null);
}
/**
Highlights all elements containing source code on the current page. Elements
containing source code must be "pre" elements with a "class" attribute of
"sh_LANGUAGE", where LANGUAGE is a valid language identifier; e.g., "sh_java"
identifies the element as containing "java" language source code.
*/
function sh_highlightDocument(prefix, suffix) {
var nodeList = document.getElementsByTagName('pre');
for (var i = 0; i < nodeList.length; i++) {
var element = nodeList.item(i);
var htmlClasses = sh_getClasses(element);
for (var j = 0; j < htmlClasses.length; j++) {
var htmlClass = htmlClasses[j].toLowerCase();
if (htmlClass === 'sh_sourcecode') {
continue;
}
if (htmlClass.substr(0, 3) === 'sh_') {
var language = htmlClass.substring(3);
if (language in sh_languages) {
sh_highlightElement(element, sh_languages[language]);
}
else if (typeof(prefix) === 'string' && typeof(suffix) === 'string') {
sh_load(language, element, prefix, suffix);
}
else {
throw 'Found <pre> element with class="' + htmlClass + '", but no such language exists';
}
break;
}
}
}
}

View File

@ -0,0 +1,115 @@
if (! this.sh_languages) {
this.sh_languages = {};
}
sh_languages['xml'] = [
[
[
/<\?xml/g,
'sh_preproc',
1,
1
],
[
/<!DOCTYPE/g,
'sh_preproc',
3,
1
],
[
/<!--/g,
'sh_comment',
4
],
[
/<(?:\/)?[A-Za-z](?:[A-Za-z0-9_:.-]*)(?:\/)?>/g,
'sh_keyword',
-1
],
[
/<(?:\/)?[A-Za-z](?:[A-Za-z0-9_:.-]*)/g,
'sh_keyword',
5,
1
],
[
/&(?:[A-Za-z0-9]+);/g,
'sh_preproc',
-1
]
],
[
[
/\?>/g,
'sh_preproc',
-2
],
[
/([^=" \t>]+)([ \t]*)(=?)/g,
['sh_type', 'sh_normal', 'sh_symbol'],
-1
],
[
/"/g,
'sh_string',
2
]
],
[
[
/\\(?:\\|")/g,
null,
-1
],
[
/"/g,
'sh_string',
-2
]
],
[
[
/>/g,
'sh_preproc',
-2
],
[
/([^=" \t>]+)([ \t]*)(=?)/g,
['sh_type', 'sh_normal', 'sh_symbol'],
-1
],
[
/"/g,
'sh_string',
2
]
],
[
[
/-->/g,
'sh_comment',
-2
],
[
/<!--/g,
'sh_comment',
4
]
],
[
[
/(?:\/)?>/g,
'sh_keyword',
-2
],
[
/([^=" \t>]+)([ \t]*)(=?)/g,
['sh_type', 'sh_normal', 'sh_symbol'],
-1
],
[
/"/g,
'sh_string',
2
]
]
];

View File

@ -0,0 +1,184 @@
/**
controller.js
(C) 2009 Rackspace Hosting, All Rights Reserved
This file definas a single object in global scope:
trc.schema.controller
The controller object is responsible for displaying a menu that
allows users to view schema source and jump to various definitions
in the schema.
**/
//
// Initialization code...
//
(function()
{
//
// Make sure dependecies are defined in the global scope, throw
// an error if they are not.
//
if ((!window.trc) ||
(!trc.util))
{
throw new Error("Require trc/util.js to be loaded.");
}
//
// We use YUI to build our controller menu make sure we have the
// proper dependecies loaded, call init when we do...
//
function InitController()
{
trc.schema.controller._init();
}
trc.util.yui.loadYUIDeps (["menu"], InitController);
})();
if (!trc.schema)
{
trc.schema = new Object();
}
trc.schema.controller = {
//
// Internal and external links by type:
//
// type --> array of links
//
// possible types include: import, include, element,
// attribute, complextype, simpleType
//
// each link contains the following properties:
// name : the name of the link
// href : the link itself
// title : a description of the link
links : new Object(),
//
// A single link that points to the schema index document.
//
index : null,
//
// Our initialization function
//
_init : function() {
//
// Load the menu...
//
var controllerDiv = document.getElementById("Controller");
var mainMenu = this._menuMarkup("mainmenu");
for (var linkType in this.links)
{
var subItem = this._menuItemMarkup(mainMenu, linkType, "#", null);
var subMenu = this._menuMarkup (linkType+"_subMenu");
var items = this.links[linkType];
for (var i=0;i<items.length;i++)
{
this._menuItemMarkup (subMenu,
items[i].name,
items[i].href,
items[i].title);
}
subItem.item.appendChild (subMenu.main);
}
//
// Toggle view source menu
//
this._menuItemMarkup (mainMenu, "toggle src view",
"javascript:trc.schema.sampleManager.toggleSrcView()", null);
//
// Index schema document
//
if (this.index != null)
{
this._menuItemMarkup (mainMenu, this.index.name,
this.index.href, this.index.title);
}
controllerDiv.appendChild (mainMenu.main);
var oMenu = new YAHOO.widget.Menu("mainmenu", {position: "static"});
oMenu.render();
oMenu.show();
},
//
// Builds menu markup returns the associated divs in the
// properties main, body, header, footer, and list
//
_menuMarkup : function(id /*Id for main part*/)
{
//
// Build our menu div...
//
var mainDiv = document.createElement("div");
var headerDiv = document.createElement("div");
var bodyDiv = document.createElement("div");
var footerDiv = document.createElement("div");
var listDiv = document.createElement("ul");
mainDiv.setAttribute ("id", id);
trc.util.dom.setClassName (mainDiv, "yuimenu");
trc.util.dom.setClassName (headerDiv, "hd");
trc.util.dom.setClassName (bodyDiv, "bd");
trc.util.dom.setClassName (footerDiv, "ft");
mainDiv.appendChild (headerDiv);
mainDiv.appendChild (bodyDiv);
mainDiv.appendChild (footerDiv);
bodyDiv.appendChild (listDiv);
return {
main : mainDiv,
body : bodyDiv,
header : headerDiv,
footer : footerDiv,
list : listDiv
};
},
//
// Adds a menu item to existing markup.
//
_menuItemMarkup : function (menu, /*Markup returned from _menuMarkup*/
name, /* String, menu item name */
href, /* String, menu item href */
title /* String, title (tool tip)*/
)
{
var listItem = document.createElement ("li");
var link = document.createElement ("a");
trc.util.dom.setClassName (listItem, "yuimenuitem");
trc.util.dom.setClassName (link, "yuimenuitemlabel");
link.setAttribute ("href", href);
if (title != null)
{
link.setAttribute ("title", title);
}
link.appendChild (document.createTextNode(name));
listItem.appendChild (link);
menu.list.appendChild(listItem);
return {
item : listItem,
anchor : link
};
}
};

View File

@ -0,0 +1,137 @@
/**
layoutManager.js
(C) 2009 Rackspace Hosting, All Rights Reserved
This file contains code that adjusts the layout of a schema
document after a dom has been loaded. It does not modify the
global scope.
**/
(function()
{
//
// Make sure dependecies are defined in the global scope, throw
// an error if they are not.
//
if ((!window.trc) ||
(!trc.util))
{
throw new Error("Require trc/util.js to be loaded.");
}
//
// This function should be called when the DOM is loaded so we
// can get to work adjusting things.
//
function InitLayoutManager()
{
layoutManager._init();
}
trc.util.browser.addInitFunction (InitLayoutManager);
var layoutManager={
//
// Initialization function...
//
_init : function()
{
this._adjustMain();
this._adjustSubElements();
},
//
// Applies appropriate styles to body and other main content
// tags.
//
_adjustMain : function()
{
//
// Change the class name for the correct YUI skin name.
//
var bodyTags = document.getElementsByTagName("body");
if (bodyTags.length == 0)
{
throw new Error ("Couldn't find body element, bad DOM?");
}
else
{
trc.util.dom.setClassName(bodyTags[0], "yui-skin-sam");
}
//
// Setout the layout...
//
var docDiv = document.getElementById("doc");
var mainDiv = document.getElementById("Main");
trc.util.dom.setClassName (docDiv, "yui-t1");
docDiv.setAttribute ("id", "doc3");
mainDiv.setAttribute ("id", "yui-main");
//
// Old IE browser hacks...
//
switch (trc.util.browser.detectIEVersion())
{
//
// IE 6 does not support fixed positioning. The
// following is a little hack to get it to work.
//
//
case 6:
var controllerDiv = document.getElementById("Controller");
controllerDiv.style.position="absolute";
window.setInterval((function(){
/* avoid leak by constantly querying for the
* controller. */
var ctrlDiv = document.getElementById("Controller");
ctrlDiv.style.top = document.documentElement.scrollTop+10;
}), 1000);
break;
//
// The controler doesn't work **at all** in IE 7
// don't even show it.
//
case 7:
var controllerDiv = document.getElementById("Controller");
controllerDiv.style.display = "none";
break;
}
},
//
// Adds appropriate classes for subElements...
//
_adjustSubElements : function()
{
var divs = document.getElementsByTagName("div");
for (var i=0;i<divs.length;i++)
{
var currentClass = divs[i].getAttribute ("class");
var newClassName = currentClass;
switch (currentClass)
{
case "SubItem" :
newClassName += " yui-gd";
break;
case "SubItemProps" :
newClassName += " yui-gd first";
break;
case "SubName" :
newClassName += " yui-u first";
break;
case "SubAttributes" :
case "SubDocumentation" :
newClassName += " yui-u";
break;
}
if (currentClass != newClassName)
{
trc.util.dom.setClassName (divs[i], newClassName);
}
}
}
};
})();

View File

@ -0,0 +1,342 @@
/**
schemaManager.js:
(C) 2009 Rackspace Hosting, All Rights Reserved
This file defines a single object in global scope:
trc.schema.sampleManager
The object is responsible for loading, formatting, and displaying
samples in schema files. It expects trc.util to be defined which is
provided in trc/util.js.
Code highlighting is provided by SHJS
(http://shjs.sourceforge.net/). It should also be loaded before
this code is initialized.
All methods/properties prepended with an underscore (_) are meant
for internal use.
**/
//
// Initialization code...
//
(function()
{
//
// Make sure dependecies are defined in the global scope, throw
// an error if they are not.
//
if ((!window.trc) ||
(!trc.util))
{
throw new Error("Require trc/util.js to be loaded.");
}
//
// Make sure syntax highlighter scripts are loaded, if not then
// load them.
//
if (!window.sh_highlightDocument)
{
trc.util.dom.addStyle ("../style/shjs/sh_darkblue.css");
trc.util.dom.addScript ("../js/shjs/sh_main.js");
trc.util.dom.addScript ("../js/shjs/sh_xml.js");
trc.util.dom.addScript ("../js/shjs/sh_javascript.js");
trc.util.dom.addScript ("../js/shjs/sh_java.js");
}
function InitSchemaSampleManager()
{
trc.schema.sampleManager._init();
}
trc.util.browser.addInitFunction(InitSchemaSampleManager);
})();
//
// Define trc.schema.sampleManager...
//
if (!trc.schema)
{
trc.schema = new Object();
}
trc.schema.sampleManager = {
//
// All sample data in an associative array:
//
// Select Element ID -> Array of sample ids.
//
samples : new Object(),
//
// An array of code data..
//
// Code data is defined as an object with the following
// properties:
//
// type: The mimetype of the code...href: The location of the code
// or null if it's inline
//
// id: The id of the pre that contains the code.
//
// The initial object is the source code for the current document.
//
codes : new Array({
id : "SrcContentCode",
type : "application/xml",
href : (function() {
var ret = location.href;
if (location.hash && (location.hash.length != 0))
{
ret = ret.replace (location.hash, "");
}
return ret;
})()
}),
//
// Sets up the manager, begins the loading process...
//
_init : function() {
//
// Setup an array to hold data items to load, this is used by
// the loadSample method.
//
this._toLoad = new Array();
for (var i=0;i<this.codes.length;i++)
{
if ((this.codes[i] != null) &&
(this.codes[i].href != null))
{
this._toLoad.push (this.codes[i]);
}
}
//
// Loads the code text
//
this._loadCode();
},
//
// Loads the next sample in the toLoad array.
//
_loadCode : function() {
if (this._toLoad.length == 0)
{
//
// All samples have been loaded, fire the loadComplete
// method.
//
this._loadComplete();
return;
}
var codeData = this._toLoad.pop();
var request = trc.util.net.getHTTPRequest();
var manager = this;
request.onreadystatechange = function() {
if (request.readyState == 4 /* Ready */) {
if (request.status == 200 /* OKAY */) {
manager._setCodeText (codeData, request.responseText);
}
else
{
manager._setCodeText (codeData, "Could not load sample ("+request.status+") "+request.responseText);
}
manager._loadCode();
}
};
request.open ("GET", codeData.href);
request.send(null);
},
//
// Called after all samples are loaded into the DOM.
//
_loadComplete : function()
{
//
// Normalize all code samples..
//
this._normalizeCodeText(1, 1, 5);
//
// Perform syntax highlighting...
//
sh_highlightDocument();
//
// All samples are initially hidden, show the selected
// samples...
//
for (var optionID in this.samples)
{
this.showSample(optionID);
}
//
// We've adjusted the document, we need to setup the view so
// that we're still pointing to the hash target.
//
if (window.location.hash &&
(window.location.hash.length != 0))
{
window.location.href = window.location.hash;
}
},
//
// Sets code text replacing any text already existing there.
//
_setCodeText : function ( codeData /* Info of the code to set (code object) */,
code /* Code text to set (string) */)
{
//
// Preprocess the txt if nessesary...
//
var ieVersion = trc.util.browser.detectIEVersion();
if ((ieVersion > -1) &&
(ieVersion < 8))
{
code = trc.util.text.unix2dos (code);
}
var pre = document.getElementById(codeData.id);
var preNodes = pre.childNodes;
//
// Remove placeholder data...
//
while (preNodes.length != 0)
{
pre.removeChild (preNodes[0]);
}
//
// Set the correct class type...
//
switch (codeData.type)
{
/*
Javascript mimetypes
*/
case 'application/json':
case 'application/javascript':
case 'application/x-javascript':
case 'application/ecmascript':
case 'text/ecmascript':
case 'text/javascript':
trc.util.dom.setClassName (pre, "sh_javascript");
break;
/*
Not real mimetypes but this is what we'll use for Java.
*/
case 'application/java':
case 'text/java':
trc.util.dom.setClassName (pre, "sh_java");
break;
default:
trc.util.dom.setClassName (pre, "sh_xml");
break;
}
//
// Add new code...
//
pre.appendChild (document.createTextNode (code));
},
//
// Retrives source code text
//
_getCodeText : function (codeData /* Info for the code to get*/)
{
var pre = document.getElementById(codeData.id);
pre.normalize();
//
// Should be a single text node after pre...
//
return pre.firstChild.nodeValue;
},
//
// Normalizes text by ensuring that top, bottom, right indent
// levels are equal for all samples.
//
_normalizeCodeText : function (top, /* integer, top indent in lines */
bottom, /* integer, bottom indent in lines */
right /* integer, right indent in spaces */
)
{
for (var i=0;i<this.codes.length;i++)
{
if (this.codes[i] != null)
{
var code = this._getCodeText (this.codes[i]);
code = trc.util.text.setIndent (code, top, bottom, right);
this._setCodeText (this.codes[i], code);
}
}
},
//
// This event handler shows the appropriate sample given an ID
// to the select element.
//
showSample : function (selectID) /* ID of the Select element */
{
//
// Get the selected value
//
var selected = document.getElementById(selectID);
var selectedValue = selected.options[selected.selectedIndex].value;
var samples = this.samples[selectID];
//
// Undisplay old samples, display selected ones.
//
for (var i=0;i<samples.length;i++)
{
if (samples[i] != null)
{
var sample = document.getElementById (samples[i]);
if (samples[i] == selectedValue)
{
sample.style.display = "block";
}
else
{
sample.style.display = "none";
}
}
}
},
//
// Toggles the current source view. If the source is displayed it
// undisplays it and vice versa.
//
toggleSrcView : function()
{
var content = document.getElementById ("Content");
var src = document.getElementById ("SrcContent");
if (content.style.display != "none")
{
content.style.display = "none";
src.style.display = "block";
}
else
{
content.style.display = "block";
src.style.display = "none";
}
}
};

View File

@ -0,0 +1,564 @@
/**
util.js:
(C) 2009 Rackspace Hosting, All Rights Reserved
This file defines a single object in global scope:
trc.util
The util object contains internal objects which contain useful
utility properties and methods.
trc.util.browser: contains methods for browser detection.
trc.util.dom: contains methods for manipulating the DOM.
trc.util.text: contains methods and properties useful when working
with plain text.
trc.util.net: contains methods for creating HTTP requests.
trc.util.yui : contains methods for working with the YUI toolkit.
All methods/properties prepended with an underscore (_) are meant
for internal use.
**/
//
// Define TRC
//
if (!window.trc)
{
trc= new Object();
}
trc.util = new Object();
trc.util.browser = {
//
// Returns the current version of IE, or -1 if it's not an IE
// browser. This is one of the recomended ways of detecting IE
// see:
//
// http://msdn.microsoft.com/en-us/library/ms537509%28VS.85%29.aspx
//
detectIEVersion : function() {
var rv = -1; // Return value assumes failure.
if (navigator.appName == 'Microsoft Internet Explorer')
{
var ua = navigator.userAgent;
var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
if (re.exec(ua) != null)
rv = parseFloat( RegExp.$1 );
}
return rv;
},
//
// A list of functions to execute on init.
//
_initFuns : new Array(),
//
// Has the init function event been set?
//
_initFunSet: false,
//
// Function called when the DOM has loaded. It launches all init
// functions.
//
_onInit : function()
{
//
// Sort by order...
//
this._initFuns.sort(function(a, b){ return a.order - b.order; });
for (var i=0;i<this._initFuns.length;i++)
{
this._initFuns[i]();
}
},
//
// Adds a function that should be executed when the dom is
// loaded.
//
addInitFunction : function(init, /*Function to call after dom
* is loaded*/
order /* An optional it specifing
* order. The bigger the int the
* later it will run. Default is
* 1.*/
) {
if (arguments.length < 2)
{
init.order = 1;
}
else
{
init.order = order;
}
this._initFuns.push (init);
if (!this._initFunSet)
{
var butil = this;
function initFun()
{
return (function(){ butil._onInit(); });
}
//
// Try event listeners, attachEvent and if that fails use
// window.onload...
//
if (window.addEventListener)
{
window.addEventListener("load", initFun(), false);
} else if (window.attachEvent)
{
window.attachEvent ("onload", initFun());
} else
{
window.onload = initFun();
}
this._initFunSet = true;
}
}
};
trc.util.dom = {
//
// Adds a new script tag to the current DOM.
//
addScript : function (src /* Script href */)
{
var scriptElement = document.createElement ("script");
scriptElement.setAttribute ("type", "text/javascript");
scriptElement.setAttribute ("src", src);
this.addToHead (scriptElement);
},
//
// Adds a new stylesheet to the current DOM.
//
addStyle : function (src /* Stylesheet href */)
{
var linkElement = document.createElement ("link");
linkElement.setAttribute ("rel", "stylesheet");
linkElement.setAttribute ("type", "text/css");
linkElement.setAttribute ("href", src);
this.addToHead (linkElement);
},
//
// Adds a DOM node to the HTTP head element. The element is
// always added as the last child an error is thrown if the
// head element can't be found.
//
addToHead : function (node /* A DOM node */)
{
var headArray = document.getElementsByTagName("head");
if (headArray.length == 0)
{
throw new Error("Couldn't find head element, bad DOM?");
}
else
{
headArray[0].appendChild (node);
}
},
//
// Dum utility function for setting the class name of an
// element. Eventually we'll move completely to XHTML, but
// this will never work in IE 6, so for now we need this
// method for setting the class name.
//
setClassName : function (element, /* DOM Element*/
name /* Class name to use */
)
{
var ieVersion = trc.util.browser.detectIEVersion();
if ((ieVersion > -1) &&
(ieVersion < 7))
{
element.className = name;
}
else
{
element.setAttribute ("class",name);
}
}
};
trc.util.text = {
//
// Useful RegExps
//
blank : new RegExp ("^\\s*$"), /* A blank string */
indent : new RegExp ("^\\s+"), /* Line indent */
lines : new RegExp ("$","m"), /* All lines */
linechars : new RegExp ("(\n|\r)"), /* EOL line characters */
tabs : new RegExp ("\t","g"), /* All tabs */
//
// We need this because microsoft browsers before IE 7, connot
// display pre-formatted text correctly win unix style line
// endings.
//
unix2dos : function(txt /* String */) {
//if already DOS...
if (txt.search(/\r\n/) != -1)
{
return txt;
}
return txt.replace (/\n/g, "\r\n");
},
//
// Useful to normalize text.
//
dos2unix : function(txt /* String */) {
//if already unix...
if (txt.search(/\r\n/) == -1)
{
return txt;
}
return txt.replace(/\r/g, "");
},
//
// Create a string with a character repeated x times.
//
repString : function (length, /* integer, size of the string to create */
ch /* string, The character to set the string to */
)
{
var ret = new String();
for (var i=0;i<length;i++) {ret=ret.concat(ch);}
return ret;
},
//
// Replace tabs in a text with strings.
//
replaceTabs : function (txt, /* String to modify */
length /* integer, tab length in spaces */
)
{
var tabs = this.repString(length, " ");
return txt.replace (this.tabs, tabs);
},
//
// Given multi-line text returns Adjust top and bottom indent
// (in lines) and right indent (in spaces)
//
setIndent : function (txt, /* String */
top, /* integer, top indent in lines */
bottom, /* integer, bottom indent in lines */
right /* integer, right indent in spaces */
)
{
//
// Can't indent an empty string..
//
if (txt.length == 0)
{
return txt;
}
//
// If not 0, bottom will be off by one...
//
if (bottom != 0)
{
bottom++;
}
var head=this.repString (top, "\n");
var tail=this.repString (bottom, "\n");
var marg=this.repString (right, " ");
var ntxt = this.dos2unix(txt);
var ntxt = this.replaceTabs (ntxt, 8);
var lines = ntxt.split (this.lines);
var origIndent=Number.MAX_VALUE;
var origIndentStr;
//
// Look up indent.
//
for (var i=0;i<lines.length;i++)
{
//
// Remove EOL characters...
//
lines[i] = lines[i].replace (this.linechars, "");
//
// Ignore blank lines
//
if (lines[i].match(this.blank) != null)
{
continue;
}
//
// Detect the indent if any...
//
var result = lines[i].match(this.indent);
if (result == null)
{
origIndent = 0;
origIndentStr = "";
}
else if (result[0].length < origIndent)
{
origIndent = result[0].length;
origIndentStr = result[0];
}
}
//
// This implys all line are blank...can't indent.
//
if (origIndent == Number.MAX_VALUE)
{
return txt;
}
if (origIndent != 0)
{
var regExStr = "^";
for (var i=0;i<origIndent;i++)
{
regExStr=regExStr.concat("\\s");
}
var indent = new RegExp(regExStr);
for (var i=0;i<lines.length;i++)
{
lines[i] = lines[i].replace(indent,marg);
}
}
else
{
for (var i=0;i<lines.length;i++)
{
lines[i] = marg.concat (lines[i]);
}
}
//
// Remove top...
//
while (lines.length != 0)
{
if (lines[0].match(this.blank))
{
lines.shift();
}
else
{
break;
}
}
//
// Remove bottom...
//
while (lines.length != 0)
{
if (lines[lines.length-1].match(this.blank))
{
lines.pop();
}
else
{
break;
}
}
var indented = lines.join("\n");
indented=head.concat(indented, tail);
return indented;
}
};
trc.util.net = {
//
// A list of possible factories for creating an XMLHTTPRequest
//
_HTTPReqFactories :
[
function() { return new XMLHttpRequest(); },
function() { return new ActiveXObject("Msxml2.XMLHTTP"); },
function() { return new ActiveXObject("Microsoft.XMLHTTP"); }
],
//
// A cached XMLHTTPRequest factory that we know works in this
// browser
//
_HTTPReqFactory : null,
//
// Provides a way of getting an HTTPRequest object in a
// platform independent manner
//
getHTTPRequest : function()
{
//
// Use cache if available..
//
if (this._HTTPReqFactory != null) return this._HTTPReqFactory();
//
// Search for a factory..
//
for (var i=0; i< this._HTTPReqFactories.length; i++)
{
try {
var factory = this._HTTPReqFactories[i];
var request = factory();
if (request != null)
{
this._HTTPReqFactory = factory;
return request;
}
} catch (e) {
continue;
}
}
//
// Looks like we don't have support for XMLHttpRequest...
//
this._HTTPReqFactory = function() {throw new Error("XMLHttpRequest not supported");}
this._HTTPReqFactory();
return;
}
};
//
// Init code for trc.util.yui...
//
(function()
{
//
// Menu make sure we have the YUI loader as it's used by our
// init function to load YUI components.
//
if (!window.YAHOO)
{
//
// We are currently using YUI on YAHOO!'s servers we may
// want to change this.
//
var YUI_BASE="http://yui.yahooapis.com/2.7.0/";
trc.util.dom.addScript (YUI_BASE+"build/yuiloader/yuiloader-min.js");
}
function InitYUIUtil()
{
trc.util.yui._init();
}
trc.util.browser.addInitFunction (InitYUIUtil);
})();
trc.util.yui = {
//
// A list of dependecies to be passed to the YUI loader. This is
// essentially a hash set: dep->dep.
//
_deps : new Object(),
//
// An array of callback functions, these should be called when all
// dependecies are loaded.
//
_callbacks : new Array(),
//
// The init function simply calls the YUI loader...
//
_init : function() {
var yuiUtil = this;
//
// It takes safari a while to load the YUI Loader if it hasn't
// loaded yet keep trying at 1/4 second intervals
//
if (!window.YAHOO)
{
window.setTimeout (function() {
yuiUtil._init();
}, 250);
return;
}
//
// Collect requirements...
//
var required = new Array();
for (var req in this._deps)
{
required.push (req);
}
//
// Load YUI dependecies...
//
var loader = new YAHOO.util.YUILoader({
require: required,
loadOptional: true,
filter: "RAW",
onSuccess: function() {
yuiUtil._depsLoaded();
},
timeout: 10000,
combine: true
});
loader.insert();
},
//
// Called after all dependecies have been loaded
//
_depsLoaded : function() {
//
// Dependecies are loaded let everyone know.
//
for (var i=0;i<this._callbacks.length;i++)
{
this._callbacks[i]();
}
},
//
// Request that one or more YUI dependecies are loaded.
//
loadYUIDeps : function (deps, /*An array of dep strings */
callback /*A function to call when deps are loaded*/
)
{
for (var i=0;i<deps.length;i++)
{
this._deps[deps[i]] = deps[i];
}
if (callback != null)
{
this._callbacks.push (callback);
}
}
};

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,3 @@
{
"attachment": {}
}

View File

@ -0,0 +1 @@
<attachment />

View File

@ -0,0 +1,6 @@
{
"attachment":
{
"id": "test_interface_identifier"
}
}

View File

@ -0,0 +1 @@
<attachment id="test_interface_identifier"/>

View File

@ -0,0 +1,6 @@
{
"attachment":
{
"id": "test_interface_identifier"
}
}

View File

@ -0,0 +1,2 @@
<attachment
id="test_interface_identifier"/>

View File

@ -0,0 +1,19 @@
{
"extensions": [
{
"name": "Cisco Port Profile",
"namespace": "http://docs.ciscocloud.com/api/ext/portprofile/v1.0",
"alias": "Cisco Port Profile",
"updated": "2011-07-23T13:25:27-06:00",
"description": "Portprofile include QoS information",
},
{
"name": "Cisco qos",
"namespace": "http://docs.ciscocloud.com/api/ext/qos/v1.0",
"alias": "Cisco qos",
"updated": "2011-07-25T13:25:27-06:00",
"description": "qos include qos_name and qos_desc",
},
]
}

View File

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<extensions>
<extension
name="Cisco Port Profile"
namespace="http://docs.ciscocloud.com/api/ext/portprofile/v1.0"
alias="Cisco Port Profile"
updated="2011-07-23T13:25:27-06:00">
<description>Portprofile include QoS information</description>
</extension>
<extension
name="Cisco qos"
namespace="http://docs.ciscocloud.com/api/ext/qos/v1.0"
alias="Cisco qos"
updated="2011-07-25T13:25:27-06:00">
<description>qos include qos_name and qos_desc</description>
</extension>
</extensions>

View File

@ -0,0 +1,7 @@
{
"networkNotFound": {
"message": "Unable to find a network with the specified identifier.",
"code": 420,
"detail": "Network 8de6af7c-ef95-4ac1-9d37-172f8df33a1f could not be found"
}
}

View File

@ -0,0 +1,8 @@
<networkNotFound code="420" xmlns="http://netstack.org/quantum/api/v1.0">
<message>
Unable to find a network with the specified identifier.
</message>
<detail>
Network 8de6af7c-ef95-4ac1-9d37-172f8df33a1f could not be found
</detail>
</networkNotFound

View File

@ -0,0 +1,22 @@
{
"network":
{
"id": "8bec1293-16bd-4568-ba75-1f58bec0b4c3",
"name": "test_network"
"ports":
[
{
"id": "98017ddc-efc8-4c25-a915-774b2a633855",
"state": "DOWN"
},
{
"id": b832be00-6553-4f69-af33-acd554e36d08",
"state": "ACTIVE",
"attachment":
{
"id": "test_interface_identifier"
}
}
]
}
}

View File

@ -0,0 +1,14 @@
<network
id="8bec1293-16bd-4568-ba75-1f58bec0b4c3"
name="test_network">
<ports>
<port
id="98017ddc-efc8-4c25-a915-774b2a633855"
status="DOWN"/>
<port
id="b832be00-6553-4f69-af33-acd554e36d08"
status="ACTIVE">
<attachment id="test_interface_identifier"/>
</port>
</ports>
</network>

View File

@ -0,0 +1,7 @@
{
"network":
{
"id": "8bec1293-16bd-4568-ba75-1f58bec0b4c3",
"name": "test_network"
}
}

View File

@ -0,0 +1,3 @@
<network
id="8bec1293-16bd-4568-ba75-1f58bec0b4c3"
name="test_network"/>

View File

@ -0,0 +1,6 @@
{
"network":
{
"name": "test_create_network"
}
}

View File

@ -0,0 +1,2 @@
<network
name="test_create_network"/>

View File

@ -0,0 +1,6 @@
{
"network":
{
"id": "158233b0-ca9a-40b4-8614-54a4a99d47d1",
}
}

View File

@ -0,0 +1,2 @@
<network
id="158233b0-ca9a-40b4-8614-54a4a99d47d1"/>

View File

@ -0,0 +1,13 @@
{
"networks":
[
{
"id": "8bec1293-16bd-4568-ba75-1f58bec0b4c3",
"name": "network_1"
},
{
"id": "2a39409c-7146-4501-8429-3579e03e9b56",
"name": "network_2"
}
]
}

View File

@ -0,0 +1,8 @@
<networks>
<network
id="8bec1293-16bd-4568-ba75-1f58bec0b4c3"
name="network_1"/>
<network
id="2a39409c-7146-4501-8429-3579e03e9b56"
name="network_2"/>
</networks>

View File

@ -0,0 +1,11 @@
{
"networks":
[
{
"id": "8bec1293-16bd-4568-ba75-1f58bec0b4c3"
},
{
"id": "2a39409c-7146-4501-8429-3579e03e9b56"
}
]
}

View File

@ -0,0 +1,4 @@
<networks>
<network id="8bec1293-16bd-4568-ba75-1f58bec0b4c3"/>
<network id="2a39409c-7146-4501-8429-3579e03e9b56"/>
</networks>

View File

@ -0,0 +1,5 @@
{
"network": {
"name": "test"
}
}

View File

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
<network name="test"/>

View File

@ -0,0 +1,5 @@
{
"network": {
"id": "611851f2-df8b-4455-b84b-8c73b7ca5dec"
}
}

View File

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
<network id="e1150d1c-e953-402d-aa75-e35d803d914b"/>

View File

@ -0,0 +1,7 @@
{
"itemNotFound" : {
"code" : 404,
"message" : "Not Found",
"details" : "Error Details..."
}
}

View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<itemNotFound
xmlns="http://docs.openstack.org/compute/api/v1.1"
code="404">
<message>Not Found</message>
<details>Error Details...</details>
</itemNotFound>

View File

@ -0,0 +1,7 @@
{
"notImplemented" : {
"code" : 501,
"message" : "Not Implemented",
"details" : "Error Details..."
}
}

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<notImplemented xmlns="http://docs.openstack.org/compute/api/v1.1" code="501">
<message>Not Implemented</message>
<details>Error Details...</details>
</notImplemented>

View File

@ -0,0 +1,12 @@
{
"port":
{
"state": "DOWN",
"id": "98017ddc-efc8-4c25-a915-774b2a633855"
"attachment":
{
"id": "test_interface_identifier"
}
}
}

View File

@ -0,0 +1,6 @@
<port
id="98017ddc-efc8-4c25-a915-774b2a633855"
state="DOWN">
<attachment
id="test_interface_identifier"/>
</port>

View File

@ -0,0 +1,8 @@
{
"port":
{
"state": "DOWN",
"id": "98017ddc-efc8-4c25-a915-774b2a633855"
}
}

View File

@ -0,0 +1,3 @@
<port
id="98017ddc-efc8-4c25-a915-774b2a633855"
state="DOWN"/>

View File

@ -0,0 +1,6 @@
{
"port":
{
"state": "ACTIVE"
}
}

View File

@ -0,0 +1,2 @@
<port
state="ACTIVE"/>

View File

@ -0,0 +1,6 @@
{
"port":
{
"id": "98017ddc-efc8-4c25-a915-774b2a633855"
}
}

View File

@ -0,0 +1,2 @@
<port
id="98017ddc-efc8-4c25-a915-774b2a633855"/>

View File

@ -0,0 +1,12 @@
{
"ports": [
{
"id": "98017ddc-efc8-4c25-a915-774b2a633855",
"state": "ACTIVE",
},
{
"id": "b832be00-6553-4f69-af33-acd554e36d08",
"state": "ACTIVE",
}
]
}

View File

@ -0,0 +1,8 @@
<ports>
<port
id="98017ddc-efc8-4c25-a915-774b2a633855"
state="ACTIVE"/>
<port
id="b832be00-6553-4f69-af33-acd554e36d08"
state="ACTIVE"/>
</ports>

View File

@ -0,0 +1,11 @@
{
"ports":
[
{
"id": "98017ddc-efc8-4c25-a915-774b2a633855"
},
{
"id": "b832be00-6553-4f69-af33-acd554e36d08"
}
]
}

View File

@ -0,0 +1,6 @@
<ports>
<port
id="98017ddc-efc8-4c25-a915-774b2a633855"/>
<port
id="b832be00-6553-4f69-af33-acd554e36d08"/>
</ports>

View File

@ -0,0 +1,9 @@
{
"network" {
"id" : "private",
"ip" : [
{"version" : 4, "addr" : "10.176.42.16"},
{"version" : 6, "addr" : "::babe:10.176.42.16"}
]
}
}

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<network xmlns="http://docs.openstack.org/compute/api/v1.1"
id="private">
<ip version="4" addr="10.176.42.16"/>
<ip version="6" addr="::babe:10.176.42.16"/>
</network>

View File

@ -0,0 +1,11 @@
{
"network" {
"id" : "public",
"ip" : [
{"version" : 4, "addr" : "67.23.10.132"},
{"version" : 6, "addr" : "::babe:67.23.10.132"},
{"version" : 4, "addr" : "67.23.10.131"},
{"version" : 6, "addr" : "::babe:4317:0A83"}
]
}
}

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<network xmlns="http://docs.openstack.org/compute/api/v1.1"
id="public">
<ip version="4" addr="67.23.10.132"/>
<ip version="6" addr="::babe:67.23.10.132"/>
<ip version="4" addr="67.23.10.131"/>
<ip version="6" addr="::babe:4317:0A83"/>
</network>

View File

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title type="text">Available API Versions</title>
<updated>2010-12-12T18:30:02.25Z</updated>
<id>http://servers.api.openstack.org/</id>
<author><name>Rackspace</name><uri>http://www.rackspace.com/</uri></author>
<link rel="self" href="http://servers.api.openstack.org/"/>
<entry>
<id>http://servers.api.openstack.org/v1.1/</id>
<title type="text">Version v1.1</title>
<updated>2010-12-12T18:30:02.25Z</updated>
<link rel="self" href="http://servers.api.openstack.org/v1.1/"/>
<content type="text">Version v1.1 CURRENT (2010-12-12T18:30:02.25Z)</content>
</entry>
<entry>
<id>http://servers.api.openstack.org/v1.0/</id>
<title type="text">Version v1.0</title>
<updated>2009-10-09T11:30:00Z</updated>
<link rel="self" href="http://servers.api.openstack.org/v1.0/"/>
<content type="text">Version v1.0 DEPRECATED (2009-10-09T11:30:00Z)</content>
</entry>
</feed>

View File

@ -0,0 +1,24 @@
{
"versions": [
{
"status": "CURRENT",
"id": "v1.0",
"links": [
{
"href": "http://127.0.0.1:9696/v1.0",
"rel": "self"
}
]
},
{
"status": "FUTURE",
"id": "v1.1",
"links": [
{
"href": "http://127.0.0.1:9696/v1.1",
"rel": "self"
}
]
}
]
}

View File

@ -0,0 +1,12 @@
<versions>
<version id="v1.0" status="CURRENT">
<links>
<link href="http://127.0.0.1:9696/v1.0" rel="self"/>
</links>
</version>
<version id="v1.1" status="FUTURE">
<links>
<link href="http://127.0.0.1:9696/v1.1" rel="self"/>
</links>
</version>
</versions>

View File

@ -0,0 +1,82 @@
/*
* (C) 2009 Rackspace Hosting, All Rights Reserved.
*/
body, div, dl, dt, dd, ul, ol, li, h2, h3,
h4, h5, h6, pre, code, form, fieldset, legend,
input, button, textarea, p, blockquote, th, td {
text-align: left;
}
h1 {
font-size: 350%;
margin-bottom: 10px;
}
#Content {
border: 1px solid;
padding: 0px 40px 40px;
margin-left: 155px;
}
#SrcContent {
padding: 0px 40px 40px;
display: none;
margin-left: 155px;
}
#Controller {
position: fixed;
width: 145px;
left: 10px;
top: 10px;
}
.Sample {
display: none;
}
.EnumValue{
padding: 10px 0px;
}
.EnumDoc{
padding: 10px 10px 10px 0px;
}
.ExternHref{
padding-top: 5px;
}
.ExternDoc{
padding-right: 10px;
}
pre {
overflow: auto;
}
td {
padding: 0px 0px 0px 10px;
width: 50%;
font-size: 90%;
}
table {
width: 100%;
}
a {
text-decoration: none;
}
a:hover {
text-decoration: underline;
}
a:link {
color: #000090;
}
a:visited {
color: #000090;
}

View File

@ -0,0 +1,151 @@
pre.sh_sourceCode {
background-color: #eeeeee;
color: #000000;
font-weight: normal;
font-style: normal;
}
pre.sh_sourceCode .sh_keyword {
color: #bb7977;
font-weight: bold;
font-style: normal;
}
pre.sh_sourceCode .sh_type {
color: #8080c0;
font-weight: bold;
font-style: normal;
}
pre.sh_sourceCode .sh_string {
color: #a68500;
font-weight: normal;
font-style: normal;
}
pre.sh_sourceCode .sh_regexp {
color: #a68500;
font-weight: normal;
font-style: normal;
}
pre.sh_sourceCode .sh_specialchar {
color: #ff00ff;
font-weight: bold;
font-style: normal;
}
pre.sh_sourceCode .sh_comment {
color: #ff8000;
font-weight: normal;
font-style: normal;
}
pre.sh_sourceCode .sh_number {
color: #800080;
font-weight: bold;
font-style: normal;
}
pre.sh_sourceCode .sh_preproc {
color: #0080c0;
font-weight: bold;
font-style: normal;
}
pre.sh_sourceCode .sh_symbol {
color: #ff0080;
font-weight: bold;
font-style: normal;
}
pre.sh_sourceCode .sh_function {
color: #004466;
font-weight: normal;
font-style: normal;
}
pre.sh_sourceCode .sh_cbracket {
color: #ff0080;
font-weight: bold;
font-style: normal;
}
pre.sh_sourceCode .sh_url {
color: #a68500;
font-weight: normal;
font-style: normal;
}
pre.sh_sourceCode .sh_date {
color: #bb7977;
font-weight: bold;
font-style: normal;
}
pre.sh_sourceCode .sh_time {
color: #bb7977;
font-weight: bold;
font-style: normal;
}
pre.sh_sourceCode .sh_file {
color: #bb7977;
font-weight: bold;
font-style: normal;
}
pre.sh_sourceCode .sh_ip {
color: #a68500;
font-weight: normal;
font-style: normal;
}
pre.sh_sourceCode .sh_name {
color: #a68500;
font-weight: normal;
font-style: normal;
}
pre.sh_sourceCode .sh_variable {
color: #0080c0;
font-weight: normal;
font-style: normal;
}
pre.sh_sourceCode .sh_oldfile {
color: #ff00ff;
font-weight: bold;
font-style: normal;
}
pre.sh_sourceCode .sh_newfile {
color: #a68500;
font-weight: normal;
font-style: normal;
}
pre.sh_sourceCode .sh_difflines {
color: #bb7977;
font-weight: bold;
font-style: normal;
}
pre.sh_sourceCode .sh_selector {
color: #0080c0;
font-weight: normal;
font-style: normal;
}
pre.sh_sourceCode .sh_property {
color: #bb7977;
font-weight: bold;
font-style: normal;
}
pre.sh_sourceCode .sh_value {
color: #a68500;
font-weight: normal;
font-style: normal;
}

View File

@ -0,0 +1,151 @@
pre.sh_sourceCode {
background-color: #000040;
color: #C7C7C7;
font-weight: normal;
font-style: normal;
}
pre.sh_sourceCode .sh_keyword {
color: #ffff60;
font-weight: normal;
font-style: normal;
}
pre.sh_sourceCode .sh_type {
color: #60ff60;
font-weight: normal;
font-style: normal;
}
pre.sh_sourceCode .sh_string {
color: #ffa0a0;
font-weight: normal;
font-style: normal;
}
pre.sh_sourceCode .sh_regexp {
color: #ffa0a0;
font-weight: normal;
font-style: normal;
}
pre.sh_sourceCode .sh_specialchar {
color: #ffa500;
font-weight: normal;
font-style: normal;
}
pre.sh_sourceCode .sh_comment {
color: #80a0ff;
font-weight: normal;
font-style: normal;
}
pre.sh_sourceCode .sh_number {
color: #42cad9;
font-weight: normal;
font-style: normal;
}
pre.sh_sourceCode .sh_preproc {
color: #ff80ff;
font-weight: normal;
font-style: normal;
}
pre.sh_sourceCode .sh_symbol {
color: #d8e91b;
font-weight: bold;
font-style: normal;
}
pre.sh_sourceCode .sh_function {
color: #ffffff;
font-weight: bold;
font-style: normal;
}
pre.sh_sourceCode .sh_cbracket {
color: #d8e91b;
font-weight: bold;
font-style: normal;
}
pre.sh_sourceCode .sh_url {
color: #ffa0a0;
font-weight: normal;
font-style: normal;
}
pre.sh_sourceCode .sh_date {
color: #ffff60;
font-weight: normal;
font-style: normal;
}
pre.sh_sourceCode .sh_time {
color: #ffff60;
font-weight: normal;
font-style: normal;
}
pre.sh_sourceCode .sh_file {
color: #ffff60;
font-weight: normal;
font-style: normal;
}
pre.sh_sourceCode .sh_ip {
color: #ffa0a0;
font-weight: normal;
font-style: normal;
}
pre.sh_sourceCode .sh_name {
color: #ffa0a0;
font-weight: normal;
font-style: normal;
}
pre.sh_sourceCode .sh_variable {
color: #26e0e7;
font-weight: normal;
font-style: normal;
}
pre.sh_sourceCode .sh_oldfile {
color: #ffa500;
font-weight: normal;
font-style: normal;
}
pre.sh_sourceCode .sh_newfile {
color: #ffa0a0;
font-weight: normal;
font-style: normal;
}
pre.sh_sourceCode .sh_difflines {
color: #ffff60;
font-weight: normal;
font-style: normal;
}
pre.sh_sourceCode .sh_selector {
color: #26e0e7;
font-weight: normal;
font-style: normal;
}
pre.sh_sourceCode .sh_property {
color: #ffff60;
font-weight: normal;
font-style: normal;
}
pre.sh_sourceCode .sh_value {
color: #ffa0a0;
font-weight: normal;
font-style: normal;
}

View File

@ -0,0 +1,139 @@
pre.sh_sourceCode {
background-color: #ffffff;
color: #000000;
font-weight: normal;
font-style: normal;
}
pre.sh_sourceCode .sh_keyword {
color: #9c20ee;
font-weight: bold;
font-style: normal;
}
pre.sh_sourceCode .sh_type {
color: #208920;
font-weight: normal;
font-style: normal;
}
pre.sh_sourceCode .sh_string {
color: #bd8d8b;
font-weight: normal;
font-style: normal;
}
pre.sh_sourceCode .sh_regexp {
color: #bd8d8b;
font-weight: normal;
font-style: normal;
}
pre.sh_sourceCode .sh_specialchar {
color: #bd8d8b;
font-weight: normal;
font-style: normal;
}
pre.sh_sourceCode .sh_comment {
color: #ac2020;
font-weight: normal;
font-style: italic;
}
pre.sh_sourceCode .sh_number {
color: #000000;
font-weight: normal;
font-style: normal;
}
pre.sh_sourceCode .sh_preproc {
color: #000000;
font-weight: normal;
font-style: normal;
}
pre.sh_sourceCode .sh_function {
color: #000000;
font-weight: normal;
font-style: normal;
}
pre.sh_sourceCode .sh_url {
color: #bd8d8b;
font-weight: normal;
font-style: normal;
}
pre.sh_sourceCode .sh_date {
color: #9c20ee;
font-weight: bold;
font-style: normal;
}
pre.sh_sourceCode .sh_time {
color: #9c20ee;
font-weight: bold;
font-style: normal;
}
pre.sh_sourceCode .sh_file {
color: #9c20ee;
font-weight: bold;
font-style: normal;
}
pre.sh_sourceCode .sh_ip {
color: #bd8d8b;
font-weight: normal;
font-style: normal;
}
pre.sh_sourceCode .sh_name {
color: #bd8d8b;
font-weight: normal;
font-style: normal;
}
pre.sh_sourceCode .sh_variable {
color: #0000ff;
font-weight: normal;
font-style: normal;
}
pre.sh_sourceCode .sh_oldfile {
color: #bd8d8b;
font-weight: normal;
font-style: normal;
}
pre.sh_sourceCode .sh_newfile {
color: #bd8d8b;
font-weight: normal;
font-style: normal;
}
pre.sh_sourceCode .sh_difflines {
color: #9c20ee;
font-weight: bold;
font-style: normal;
}
pre.sh_sourceCode .sh_selector {
color: #0000ff;
font-weight: normal;
font-style: normal;
}
pre.sh_sourceCode .sh_property {
color: #9c20ee;
font-weight: bold;
font-style: normal;
}
pre.sh_sourceCode .sh_value {
color: #bd8d8b;
font-weight: normal;
font-style: normal;
}

View File

@ -0,0 +1,151 @@
pre.sh_sourceCode {
background-color: #000044;
color: #dd00ff;
font-weight: normal;
font-style: normal;
}
pre.sh_sourceCode .sh_keyword {
color: #ffffff;
font-weight: bold;
font-style: normal;
}
pre.sh_sourceCode .sh_type {
color: #f1157c;
font-weight: bold;
font-style: normal;
}
pre.sh_sourceCode .sh_string {
color: #ffffff;
font-weight: normal;
font-style: normal;
}
pre.sh_sourceCode .sh_regexp {
color: #ffffff;
font-weight: normal;
font-style: normal;
}
pre.sh_sourceCode .sh_specialchar {
color: #82d66d;
font-weight: normal;
font-style: normal;
}
pre.sh_sourceCode .sh_comment {
color: #bfbfbf;
font-weight: normal;
font-style: normal;
}
pre.sh_sourceCode .sh_number {
color: #8ee119;
font-weight: normal;
font-style: normal;
}
pre.sh_sourceCode .sh_preproc {
color: #00bb00;
font-weight: normal;
font-style: normal;
}
pre.sh_sourceCode .sh_symbol {
color: #e7ee5c;
font-weight: bold;
font-style: normal;
}
pre.sh_sourceCode .sh_function {
color: #ff06cd;
font-weight: bold;
font-style: normal;
}
pre.sh_sourceCode .sh_cbracket {
color: #e7ee5c;
font-weight: bold;
font-style: normal;
}
pre.sh_sourceCode .sh_url {
color: #ffffff;
font-weight: normal;
font-style: normal;
}
pre.sh_sourceCode .sh_date {
color: #ffffff;
font-weight: bold;
font-style: normal;
}
pre.sh_sourceCode .sh_time {
color: #ffffff;
font-weight: bold;
font-style: normal;
}
pre.sh_sourceCode .sh_file {
color: #ffffff;
font-weight: bold;
font-style: normal;
}
pre.sh_sourceCode .sh_ip {
color: #ffffff;
font-weight: normal;
font-style: normal;
}
pre.sh_sourceCode .sh_name {
color: #ffffff;
font-weight: normal;
font-style: normal;
}
pre.sh_sourceCode .sh_variable {
color: #7aec27;
font-weight: bold;
font-style: normal;
}
pre.sh_sourceCode .sh_oldfile {
color: #82d66d;
font-weight: normal;
font-style: normal;
}
pre.sh_sourceCode .sh_newfile {
color: #ffffff;
font-weight: normal;
font-style: normal;
}
pre.sh_sourceCode .sh_difflines {
color: #ffffff;
font-weight: bold;
font-style: normal;
}
pre.sh_sourceCode .sh_selector {
color: #7aec27;
font-weight: bold;
font-style: normal;
}
pre.sh_sourceCode .sh_property {
color: #ffffff;
font-weight: bold;
font-style: normal;
}
pre.sh_sourceCode .sh_value {
color: #ffffff;
font-weight: normal;
font-style: normal;
}

View File

@ -0,0 +1,151 @@
pre.sh_sourceCode {
background-color: #000000;
color: #ffffff;
font-weight: normal;
font-style: normal;
}
pre.sh_sourceCode .sh_keyword {
color: #c0c000;
font-weight: bold;
font-style: normal;
}
pre.sh_sourceCode .sh_type {
color: #00c000;
font-weight: bold;
font-style: normal;
}
pre.sh_sourceCode .sh_string {
color: #00ffff;
font-weight: normal;
font-style: normal;
}
pre.sh_sourceCode .sh_regexp {
color: #00ffff;
font-weight: normal;
font-style: normal;
}
pre.sh_sourceCode .sh_specialchar {
color: #0000ff;
font-weight: normal;
font-style: normal;
}
pre.sh_sourceCode .sh_comment {
color: #808080;
font-weight: normal;
font-style: normal;
}
pre.sh_sourceCode .sh_number {
color: #00ffff;
font-weight: normal;
font-style: normal;
}
pre.sh_sourceCode .sh_preproc {
color: #00ff00;
font-weight: normal;
font-style: normal;
}
pre.sh_sourceCode .sh_symbol {
color: #ff0000;
font-weight: normal;
font-style: normal;
}
pre.sh_sourceCode .sh_function {
color: #ff22b9;
font-weight: normal;
font-style: normal;
}
pre.sh_sourceCode .sh_cbracket {
color: #ff0000;
font-weight: normal;
font-style: normal;
}
pre.sh_sourceCode .sh_url {
color: #00ffff;
font-weight: normal;
font-style: normal;
}
pre.sh_sourceCode .sh_date {
color: #c0c000;
font-weight: bold;
font-style: normal;
}
pre.sh_sourceCode .sh_time {
color: #c0c000;
font-weight: bold;
font-style: normal;
}
pre.sh_sourceCode .sh_file {
color: #c0c000;
font-weight: bold;
font-style: normal;
}
pre.sh_sourceCode .sh_ip {
color: #00ffff;
font-weight: normal;
font-style: normal;
}
pre.sh_sourceCode .sh_name {
color: #00ffff;
font-weight: normal;
font-style: normal;
}
pre.sh_sourceCode .sh_variable {
color: #0000c0;
font-weight: bold;
font-style: normal;
}
pre.sh_sourceCode .sh_oldfile {
color: #0000ff;
font-weight: normal;
font-style: normal;
}
pre.sh_sourceCode .sh_newfile {
color: #00ffff;
font-weight: normal;
font-style: normal;
}
pre.sh_sourceCode .sh_difflines {
color: #c0c000;
font-weight: bold;
font-style: normal;
}
pre.sh_sourceCode .sh_selector {
color: #0000c0;
font-weight: bold;
font-style: normal;
}
pre.sh_sourceCode .sh_property {
color: #c0c000;
font-weight: bold;
font-style: normal;
}
pre.sh_sourceCode .sh_value {
color: #00ffff;
font-weight: normal;
font-style: normal;
}

View File

@ -0,0 +1,145 @@
pre.sh_sourceCode {
background-color: #ffffff;
color: #000000;
font-weight: normal;
font-style: normal;
}
pre.sh_sourceCode .sh_keyword {
color: #000000;
font-weight: bold;
font-style: normal;
}
pre.sh_sourceCode .sh_type {
color: #000000;
font-weight: bold;
font-style: normal;
}
pre.sh_sourceCode .sh_string {
color: #000000;
font-weight: normal;
font-style: normal;
}
pre.sh_sourceCode .sh_regexp {
color: #000000;
font-weight: normal;
font-style: normal;
}
pre.sh_sourceCode .sh_specialchar {
color: #000000;
font-weight: normal;
font-style: normal;
}
pre.sh_sourceCode .sh_comment {
color: #666666;
font-weight: normal;
font-style: italic;
}
pre.sh_sourceCode .sh_number {
color: #000000;
font-weight: normal;
font-style: normal;
}
pre.sh_sourceCode .sh_preproc {
color: #000000;
font-weight: bold;
font-style: normal;
}
pre.sh_sourceCode .sh_symbol {
color: #000000;
font-weight: bold;
font-style: normal;
}
pre.sh_sourceCode .sh_cbracket {
color: #000000;
font-weight: bold;
font-style: normal;
}
pre.sh_sourceCode .sh_url {
color: #000000;
font-weight: normal;
font-style: normal;
}
pre.sh_sourceCode .sh_date {
color: #000000;
font-weight: bold;
font-style: normal;
}
pre.sh_sourceCode .sh_time {
color: #000000;
font-weight: bold;
font-style: normal;
}
pre.sh_sourceCode .sh_file {
color: #000000;
font-weight: bold;
font-style: normal;
}
pre.sh_sourceCode .sh_ip {
color: #000000;
font-weight: normal;
font-style: normal;
}
pre.sh_sourceCode .sh_name {
color: #000000;
font-weight: normal;
font-style: normal;
}
pre.sh_sourceCode .sh_variable {
color: #000000;
font-weight: bold;
font-style: normal;
}
pre.sh_sourceCode .sh_oldfile {
color: #000000;
font-weight: normal;
font-style: normal;
}
pre.sh_sourceCode .sh_newfile {
color: #000000;
font-weight: normal;
font-style: normal;
}
pre.sh_sourceCode .sh_difflines {
color: #000000;
font-weight: bold;
font-style: normal;
}
pre.sh_sourceCode .sh_selector {
color: #000000;
font-weight: bold;
font-style: normal;
}
pre.sh_sourceCode .sh_property {
color: #000000;
font-weight: bold;
font-style: normal;
}
pre.sh_sourceCode .sh_value {
color: #000000;
font-weight: normal;
font-style: normal;
}

View File

@ -0,0 +1,66 @@
pre.sh_sourceCode {
background-color: white;
color: black;
font-style: normal;
font-weight: normal;
}
pre.sh_sourceCode .sh_keyword { color: blue; font-weight: bold; } /* language keywords */
pre.sh_sourceCode .sh_type { color: darkgreen; } /* basic types */
pre.sh_sourceCode .sh_usertype { color: teal; } /* user defined types */
pre.sh_sourceCode .sh_string { color: red; font-family: monospace; } /* strings and chars */
pre.sh_sourceCode .sh_regexp { color: orange; font-family: monospace; } /* regular expressions */
pre.sh_sourceCode .sh_specialchar { color: pink; font-family: monospace; } /* e.g., \n, \t, \\ */
pre.sh_sourceCode .sh_comment { color: brown; font-style: italic; } /* comments */
pre.sh_sourceCode .sh_number { color: purple; } /* literal numbers */
pre.sh_sourceCode .sh_preproc { color: darkblue; font-weight: bold; } /* e.g., #include, import */
pre.sh_sourceCode .sh_symbol { color: darkred; } /* e.g., <, >, + */
pre.sh_sourceCode .sh_function { color: black; font-weight: bold; } /* function calls and declarations */
pre.sh_sourceCode .sh_cbracket { color: red; } /* block brackets (e.g., {, }) */
pre.sh_sourceCode .sh_todo { font-weight: bold; background-color: cyan; } /* TODO and FIXME */
/* Predefined variables and functions (for instance glsl) */
pre.sh_sourceCode .sh_predef_var { color: darkblue; }
pre.sh_sourceCode .sh_predef_func { color: darkblue; font-weight: bold; }
/* for OOP */
pre.sh_sourceCode .sh_classname { color: teal; }
/* line numbers (not yet implemented) */
pre.sh_sourceCode .sh_linenum { color: black; font-family: monospace; }
/* Internet related */
pre.sh_sourceCode .sh_url { color: blue; text-decoration: underline; font-family: monospace; }
/* for ChangeLog and Log files */
pre.sh_sourceCode .sh_date { color: blue; font-weight: bold; }
pre.sh_sourceCode .sh_time, pre.sh_sourceCode .sh_file { color: darkblue; font-weight: bold; }
pre.sh_sourceCode .sh_ip, pre.sh_sourceCode .sh_name { color: darkgreen; }
/* for Prolog, Perl... */
pre.sh_sourceCode .sh_variable { color: darkgreen; }
/* for LaTeX */
pre.sh_sourceCode .sh_italics { color: darkgreen; font-style: italic; }
pre.sh_sourceCode .sh_bold { color: darkgreen; font-weight: bold; }
pre.sh_sourceCode .sh_underline { color: darkgreen; text-decoration: underline; }
pre.sh_sourceCode .sh_fixed { color: green; font-family: monospace; }
pre.sh_sourceCode .sh_argument { color: darkgreen; }
pre.sh_sourceCode .sh_optionalargument { color: purple; }
pre.sh_sourceCode .sh_math { color: orange; }
pre.sh_sourceCode .sh_bibtex { color: blue; }
/* for diffs */
pre.sh_sourceCode .sh_oldfile { color: orange; }
pre.sh_sourceCode .sh_newfile { color: darkgreen; }
pre.sh_sourceCode .sh_difflines { color: blue; }
/* for css */
pre.sh_sourceCode .sh_selector { color: purple; }
pre.sh_sourceCode .sh_property { color: blue; }
pre.sh_sourceCode .sh_value { color: darkgreen; font-style: italic; }
/* other */
pre.sh_sourceCode .sh_section { color: black; font-weight: bold; }
pre.sh_sourceCode .sh_paren { color: red; }
pre.sh_sourceCode .sh_attribute { color: darkgreen; }

View File

@ -0,0 +1,139 @@
pre.sh_sourceCode {
background-color: #ffffff;
color: #696969;
font-weight: normal;
font-style: normal;
}
pre.sh_sourceCode .sh_keyword {
color: #696969;
font-weight: bold;
font-style: normal;
}
pre.sh_sourceCode .sh_type {
color: #696969;
font-weight: normal;
font-style: normal;
}
pre.sh_sourceCode .sh_string {
color: #008800;
font-weight: normal;
font-style: normal;
}
pre.sh_sourceCode .sh_regexp {
color: #008800;
font-weight: normal;
font-style: normal;
}
pre.sh_sourceCode .sh_specialchar {
color: #008800;
font-weight: normal;
font-style: normal;
}
pre.sh_sourceCode .sh_comment {
color: #1326a2;
font-weight: normal;
font-style: italic;
}
pre.sh_sourceCode .sh_number {
color: #bb00ff;
font-weight: normal;
font-style: normal;
}
pre.sh_sourceCode .sh_preproc {
color: #470000;
font-weight: normal;
font-style: normal;
}
pre.sh_sourceCode .sh_function {
color: #000000;
font-weight: normal;
font-style: normal;
}
pre.sh_sourceCode .sh_url {
color: #008800;
font-weight: normal;
font-style: normal;
}
pre.sh_sourceCode .sh_date {
color: #696969;
font-weight: bold;
font-style: normal;
}
pre.sh_sourceCode .sh_time {
color: #696969;
font-weight: bold;
font-style: normal;
}
pre.sh_sourceCode .sh_file {
color: #696969;
font-weight: bold;
font-style: normal;
}
pre.sh_sourceCode .sh_ip {
color: #008800;
font-weight: normal;
font-style: normal;
}
pre.sh_sourceCode .sh_name {
color: #008800;
font-weight: normal;
font-style: normal;
}
pre.sh_sourceCode .sh_variable {
color: #696969;
font-weight: bold;
font-style: normal;
}
pre.sh_sourceCode .sh_oldfile {
color: #008800;
font-weight: normal;
font-style: normal;
}
pre.sh_sourceCode .sh_newfile {
color: #008800;
font-weight: normal;
font-style: normal;
}
pre.sh_sourceCode .sh_difflines {
color: #696969;
font-weight: bold;
font-style: normal;
}
pre.sh_sourceCode .sh_selector {
color: #696969;
font-weight: bold;
font-style: normal;
}
pre.sh_sourceCode .sh_property {
color: #696969;
font-weight: bold;
font-style: normal;
}
pre.sh_sourceCode .sh_value {
color: #008800;
font-weight: normal;
font-style: normal;
}

View File

@ -0,0 +1,6 @@
<Directory />
DirectoryIndex api.xsd
AddType application/xml wadl
AddType application/xml xsd
AddType application/xml xslt
</Directory>

View File

@ -0,0 +1,439 @@
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="../xslt/schema.xsl"?>
<!-- (C) 2011 OpenStack LLC., All Rights Reserved -->
<schema
elementFormDefault="qualified"
attributeFormDefault="unqualified"
xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:csapi="http://docs.openstack.org/compute/api/v1.1"
xmlns:xsdxt="http://docs.rackspacecloud.com/xsd-ext/v1.0"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://docs.openstack.org/compute/api/v1.1"
>
<annotation>
<xsd:appinfo
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<xsdxt:title>Server Actions</xsdxt:title>
<xsdxt:link rel="index" href="api.xsd" />
</xsd:appinfo>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
This schema file defines actions that can be performed on a
cloud server. All cloud server actions are derived from the <a
href="#type_Action" title="See definition of
Action">Action</a> type.
</p>
</xsd:documentation>
</annotation>
<include schemaLocation="server.xsd">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
Types related to servers.
</p>
</xsd:documentation>
</annotation>
</include>
<element name="reboot" type="csapi:Reboot">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
Performs a HARD or SOFT reboot.
</p>
</xsd:documentation>
<xsd:appinfo>
<xsdxt:samples>
<xsdxt:sample>
<xsdxt:code type="application/xml" href="../samples/reboot.xml" />
</xsdxt:sample>
<xsdxt:sample>
<xsdxt:code type="application/json" href="../samples/reboot.json" />
</xsdxt:sample>
</xsdxt:samples>
</xsd:appinfo>
</annotation>
</element>
<element name="rebuild" type="csapi:Rebuild">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
Rebuilds a server.
</p>
</xsd:documentation>
<xsd:appinfo>
<xsdxt:samples>
<xsdxt:sample>
<xsdxt:code type="application/xml" href="../samples/rebuild.xml" />
</xsdxt:sample>
<xsdxt:sample>
<xsdxt:code type="application/json" href="../samples/rebuild.json" />
</xsdxt:sample>
</xsdxt:samples>
</xsd:appinfo>
</annotation>
</element>
<element name="resize" type="csapi:Resize">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
Resizes a server.
</p>
</xsd:documentation>
<xsd:appinfo>
<xsdxt:samples>
<xsdxt:sample>
<xsdxt:code type="application/xml" href="../samples/resize.xml" />
</xsdxt:sample>
<xsdxt:sample>
<xsdxt:code type="application/json" href="../samples/resize.json" />
</xsdxt:sample>
</xsdxt:samples>
</xsd:appinfo>
</annotation>
</element>
<element name="confirmResize" type="csapi:ConfirmResize">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
Confirms a resize action.
</p>
</xsd:documentation>
<xsd:appinfo>
<xsdxt:samples>
<xsdxt:sample>
<xsdxt:code type="application/xml" href="../samples/confirmresize.xml" />
</xsdxt:sample>
<xsdxt:sample>
<xsdxt:code type="application/json" href="../samples/confirmresize.json" />
</xsdxt:sample>
</xsdxt:samples>
</xsd:appinfo>
</annotation>
</element>
<element name="revertResize" type="csapi:RevertResize">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
Reverts a resize action.
</p>
</xsd:documentation>
<xsd:appinfo>
<xsdxt:samples>
<xsdxt:sample>
<xsdxt:code type="application/xml" href="../samples/revertresize.xml" />
</xsdxt:sample>
<xsdxt:sample>
<xsdxt:code type="application/json" href="../samples/revertresize.json" />
</xsdxt:sample>
</xsdxt:samples>
</xsd:appinfo>
</annotation>
</element>
<element name="changePassword" type="csapi:ChangePassword">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
Changes a server's password.
</p>
</xsd:documentation>
<xsd:appinfo>
<xsdxt:samples>
<xsdxt:sample>
<xsdxt:code type="application/xml" href="../samples/changepassword.xml" />
</xsdxt:sample>
<xsdxt:sample>
<xsdxt:code type="application/json" href="../samples/changepassword.json" />
</xsdxt:sample>
</xsdxt:samples>
</xsd:appinfo>
</annotation>
</element>
<element name="createImage" type="csapi:CreateImage">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
The action creates a new image for the server.
</p>
</xsd:documentation>
<xsd:appinfo>
<xsdxt:samples>
<xsdxt:sample>
<xsdxt:code type="application/xml" href="../samples/createimage.xml" />
</xsdxt:sample>
<xsdxt:sample>
<xsdxt:code type="application/json" href="../samples/createimage.json" />
</xsdxt:sample>
</xsdxt:samples>
</xsd:appinfo>
</annotation>
</element>
<!-- Complex Types -->
<complexType abstract="true" name="Action">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
This is the base type for all server actions. It is simply
a marker abstract type used to differentiate an Action
element from other elements.
</p>
</xsd:documentation>
</annotation>
<anyAttribute namespace="##other" processContents="lax"/>
</complexType>
<complexType name="Reboot">
<complexContent>
<extension base="csapi:Action">
<sequence>
<any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
</sequence>
<attribute name="type" type="csapi:RebootType" use="required">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
The <a href="#type_RebootType" title="See definition
of RebootType">type</a> of reboot to perform.
</p>
</xsd:documentation>
</annotation>
</attribute>
</extension>
</complexContent>
</complexType>
<complexType name="Rebuild">
<complexContent>
<extension base="csapi:Action">
<sequence>
<element name="metadata" type="csapi:Metadata" minOccurs="0">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
A collection of meta data items
associated with the server. If not
specified the original server metadata
will be kept.
</p>
</xsd:documentation>
</annotation>
</element>
<element name="personality" type="csapi:Personality" minOccurs="0">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
A collection of small <a
href="#type_File" title="See definition
of file">files</a> used to personalize a
new server instance. Exisiting server
personality files are deleted by the
rebuild process.
</p>
</xsd:documentation>
</annotation>
</element>
<any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
</sequence>
<attribute type="xsd:string" name="name" use="optional">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
The name of the server. If not specified the
original server name will be kept.
</p>
</xsd:documentation>
</annotation>
</attribute>
<attribute type="xsd:string" name="adminPass" use="optional">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
The server's administration password.
</p>
</xsd:documentation>
</annotation>
</attribute>
<attribute name="imageRef" type="xsd:anyURI" use="required">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
A reference to an image to use for the
rebuild. A local image need contain only an
Image ID. External images must contian a
link that provides the full path to the
image resource. You must supply an image
when rebuilding.
</p>
</xsd:documentation>
</annotation>
</attribute>
</extension>
</complexContent>
</complexType>
<complexType name="Resize">
<complexContent>
<extension base="csapi:Action">
<sequence>
<any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
</sequence>
<attribute name="flavorRef" type="xsd:anyURI" use="required">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
A reference to the flavor to convert to.
</p>
</xsd:documentation>
</annotation>
</attribute>
</extension>
</complexContent>
</complexType>
<complexType name="ConfirmResize">
<complexContent>
<extension base="csapi:Action">
<sequence>
<any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="RevertResize">
<complexContent>
<extension base="csapi:Action" >
<sequence>
<any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="ChangePassword">
<complexContent>
<extension base="csapi:Action" >
<sequence>
<any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
</sequence>
<attribute type="xsd:string" name="adminPass" use="required">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
The server's administration password.
</p>
</xsd:documentation>
</annotation>
</attribute>
</extension>
</complexContent>
</complexType>
<complexType name="CreateImage">
<complexContent>
<extension base="csapi:Action" >
<sequence>
<element name="metadata" type="csapi:Metadata" minOccurs="0">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
A collection of meta data items
associated with the image.
</p>
</xsd:documentation>
</annotation>
</element>
<any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
</sequence>
<attribute type="xsd:string" name="name" use="required">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
The name of the image to create.
</p>
</xsd:documentation>
</annotation>
</attribute>
</extension>
</complexContent>
</complexType>
<!-- Simple Types -->
<simpleType name="RebootType">
<restriction base="xsd:string">
<enumeration value="HARD">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
A HARD reboot is equivalent to power cycling the server.
The operating system is not allowed to gracefully
shutdown.
</p>
</xsd:documentation>
</annotation>
</enumeration>
<enumeration value="SOFT">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
With a SOFT reboot, the operating system is signaled to
restart. This allows for a graceful shutdown of all
processes.
</p>
</xsd:documentation>
</annotation>
</enumeration>
</restriction>
</simpleType>
</schema>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<bindings xmlns="http://java.sun.com/xml/ns/jaxb" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
version="2.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/jaxb http://java.sun.com/xml/ns/jaxb/bindingschema_2_0.xsd"
schemaLocation="affinity-id.xsd">
<schemaBindings>
<package name="com.rackspace.cloud.servers.api.extension.beans"/>
</schemaBindings>
</bindings>

View File

@ -0,0 +1,39 @@
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="../xslt/schema.xslt"?>
<schema
elementFormDefault="qualified"
attributeFormDefault="unqualified"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:rsaide="http://docs.rackspacecloud.com/servers/api/ext/aide/v1.0"
targetNamespace="http://docs.rackspacecloud.com/servers/api/ext/aide/v1.0"
>
<element name="affinityId" type="rsaide:affinityId" />
<simpleType name="affinityId">
<annotation>
<documentation>
An ID that identifies the proximity of customer slices.
</documentation>
</annotation>
<restriction base="xsd:string" />
</simpleType>
<simpleType name="ipv6AddressRangeValue">
<annotation>
<documentation>
The IPv6 address range in CIDR notation of the server.
</documentation>
</annotation>
<restriction base="xsd:string" />
</simpleType>
<element name="ipv6AddressRange" type="rsaide:ipv6AddressRange" />
<complexType name="ipv6AddressRange">
<attribute name="value" type="rsaide:ipv6AddressRangeValue"/>
</complexType>
</schema>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<bindings xmlns="http://java.sun.com/xml/ns/jaxb" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:capi="http://docs.openstack.org/common/api/v1.0" version="2.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/jaxb http://java.sun.com/xml/ns/jaxb/bindingschema_2_0.xsd"
schemaLocation="api-common.xsd">
<schemaBindings>
<package name="com.rackspace.cloud.common.api.beans" />
</schemaBindings>
</bindings>

View File

@ -0,0 +1,66 @@
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="../xslt/schema.xsl"?>
<!-- (C) 2011 OpenStack LLC., All Rights Reserved -->
<schema
elementFormDefault="qualified"
attributeFormDefault="unqualified"
xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:capi="http://docs.openstack.org/common/api/v1.0"
xmlns:xsdxt="http://docs.rackspacecloud.com/xsd-ext/v1.0"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://docs.openstack.org/common/api/v1.0"
>
<annotation>
<xsd:appinfo
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<xsdxt:title>Open Stack Common API Schema Types 1.0</xsdxt:title>
<xsdxt:link rev="index" href="extensions.xsd" />
<xsdxt:link rev="index" href="limits.xsd" />
<xsdxt:link rev="index" href="version.xsd" />
</xsd:appinfo>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
This is the main index XML Schema document
for Common API Schema Types Version 1.0.
</p>
</xsd:documentation>
</annotation>
<include schemaLocation="extensions.xsd">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
Types related to extensions.
</p>
</xsd:documentation>
</annotation>
</include>
<include schemaLocation="limits.xsd">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
Types related to rate and absolute limits.
</p>
</xsd:documentation>
</annotation>
</include>
<include schemaLocation="version.xsd">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
Types related to API version details.
</p>
</xsd:documentation>
</annotation>
</include>
</schema>

View File

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<bindings xmlns="http://java.sun.com/xml/ns/jaxb" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:csapi="http://docs.openstack.org/compute/api/v1.1"
version="2.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/jaxb http://java.sun.com/xml/ns/jaxb/bindingschema_2_0.xsd"
schemaLocation="api.xsd">
<globalBindings>
<serializable />
<javaType name="java.util.Calendar" xmlType="xsd:dateTime"
parseMethod="javax.xml.bind.DatatypeConverter.parseDateTime"
printMethod="javax.xml.bind.DatatypeConverter.printDateTime"/>
<javaType name="java.lang.Integer" xmlType="csapi:UUID"
parseMethod="com.rackspace.cloud.servers.api.jaxb.TypeConverter.parseUUID"
printMethod="com.rackspace.cloud.servers.api.jaxb.TypeConverter.printUUID"/>
</globalBindings>
<schemaBindings>
<package name="com.rackspace.cloud.servers.api.beans" />
</schemaBindings>
</bindings>

View File

@ -0,0 +1,103 @@
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="../xslt/schema.xsl"?>
<!-- (C) 2011 OpenStack LLC., All Rights Reserved -->
<schema
elementFormDefault="qualified"
attributeFormDefault="unqualified"
xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:csapi="http://docs.openstack.org/compute/api/v1.1"
xmlns:xsdxt="http://docs.rackspacecloud.com/xsd-ext/v1.0"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://docs.openstack.org/compute/api/v1.1"
>
<annotation>
<xsd:appinfo
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<xsdxt:title>Open Stack Compute&#x2122; API Schema Types 1.1</xsdxt:title>
<xsdxt:link rev="index" href="actions.xsd" />
<xsdxt:link rev="index" href="common.xsd" />
<xsdxt:link rev="index" href="faults.xsd" />
<xsdxt:link rev="index" href="flavor.xsd" />
<xsdxt:link rev="index" href="image.xsd" />
<xsdxt:link rev="index" href="server.xsd" />
</xsd:appinfo>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
This is the main index XML Schema document
for the Open Stack Compute API Version 1.1.
</p>
</xsd:documentation>
</annotation>
<include schemaLocation="server.xsd">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
Servers and all internal Entities including Addresses and
Files.
</p>
</xsd:documentation>
</annotation>
</include>
<include schemaLocation="image.xsd">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
Types related to images.
</p>
</xsd:documentation>
</annotation>
</include>
<include schemaLocation="flavor.xsd">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
Types related to flavors.
</p>
</xsd:documentation>
</annotation>
</include>
<include schemaLocation="actions.xsd">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
Defines server actions: reboot, rebuild, resize...
</p>
</xsd:documentation>
</annotation>
</include>
<include schemaLocation="metadata.xsd">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
Metadata for Server and Image.
</p>
</xsd:documentation>
</annotation>
</include>
<include schemaLocation="faults.xsd">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
All fault types.
</p>
</xsd:documentation>
</annotation>
</include>
</schema>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<bindings xmlns="http://java.sun.com/xml/ns/jaxb" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
version="2.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/jaxb http://java.sun.com/xml/ns/jaxb/bindingschema_2_0.xsd"
schemaLocation="atom/atom.xsd">
<schemaBindings>
<package name="org.w3.www.atom"/>
</schemaBindings>
</bindings>

View File

@ -0,0 +1,105 @@
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="../../xslt/schema.xslt"?>
<xs:schema elementFormDefault="qualified" attributeFormDefault="unqualified"
targetNamespace="http://www.w3.org/2005/Atom"
xmlns:html="http://www.w3.org/1999/xhtml"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:xsdxt="http://docs.rackspacecloud.com/xsd-ext/v1.0"
xmlns:xml="http://www.w3.org/XML/1998/namespace"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xsdxt:base="../..">
<xs:annotation>
<xs:appinfo
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<xsdxt:title>Atom Link</xsdxt:title>
</xs:appinfo>
<xs:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
This schema file simple defines an atom link according
to <a
href="http://tools.ietf.org/html/rfc4287">RFC4287</a>
</p>
</xs:documentation>
</xs:annotation>
<xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="xml.xsd"/>
<!-- Common Link Relations -->
<xs:simpleType name="relation">
<xs:restriction base="xs:string">
<xs:enumeration value="alternate" />
<xs:enumeration value="appendix" />
<xs:enumeration value="archives" />
<xs:enumeration value="author" />
<xs:enumeration value="bookmark" />
<xs:enumeration value="chapter" />
<xs:enumeration value="contents" />
<xs:enumeration value="copyright" />
<xs:enumeration value="current" />
<xs:enumeration value="describedby" />
<xs:enumeration value="edit" />
<xs:enumeration value="edit-media" />
<xs:enumeration value="first" />
<xs:enumeration value="glossary" />
<xs:enumeration value="help" />
<xs:enumeration value="hub" />
<xs:enumeration value="icon" />
<xs:enumeration value="index" />
<xs:enumeration value="last" />
<xs:enumeration value="latest-version" />
<xs:enumeration value="license" />
<xs:enumeration value="monitor" />
<xs:enumeration value="monitor-group" />
<xs:enumeration value="next" />
<xs:enumeration value="next-arvhice" />
<xs:enumeration value="nofollow" />
<xs:enumeration value="payment" />
<xs:enumeration value="predecessor-version" />
<xs:enumeration value="prefetch" />
<xs:enumeration value="prev" />
<xs:enumeration value="previous" />
<xs:enumeration value="prev-archive" />
<xs:enumeration value="replies" />
<xs:enumeration value="search" />
<xs:enumeration value="section" />
<xs:enumeration value="self" />
<xs:enumeration value="service" />
<xs:enumeration value="start" />
<xs:enumeration value="stylesheet" />
<xs:enumeration value="subsection" />
<xs:enumeration value="successor-version" />
<xs:enumeration value="up" />
<xs:enumeration value="version-history" />
<xs:enumeration value="via" />
<xs:enumeration value="working-copy" />
<xs:enumeration value="working-copy-of" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="extRelation">
<xs:union memberTypes="atom:relation xs:string"/>
</xs:simpleType>
<xs:element name="link" type="atom:link" />
<xs:complexType name="link">
<xs:annotation>
<xs:documentation>
<html:p>See section 3.4 of the ATOM RFC <html:a href="http://tools.ietf.org/html/rfc4287">RFC4287</html:a></html:p>
</xs:documentation>
</xs:annotation>
<xs:attribute name="rel" use="required" type="atom:extRelation" />
<xs:attribute name="type" use="optional" type="xs:string" />
<xs:attribute name="href" use="required" type="xs:anyURI" />
<xs:attribute name="hreflang" use="optional" type="xs:NMTOKEN" />
<xs:attribute name="title" use="optional" type="xs:string" />
<xs:attribute ref="xml:base" />
<xs:attribute ref="xml:lang" />
</xs:complexType>
</xs:schema>

View File

@ -0,0 +1,294 @@
<?xml version='1.0'?>
<?xml-stylesheet type="text/xsl" href="../../xslt/schema.xslt"?>
<xs:schema targetNamespace="http://www.w3.org/XML/1998/namespace"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsdxt="http://docs.rackspacecloud.com/xsd-ext/v1.0"
xmlns ="http://www.w3.org/1999/xhtml"
xml:lang="en"
xsdxt:base="../..">
<xs:annotation>
<xs:appinfo
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<xsdxt:title>The XML Namespace</xsdxt:title>
</xs:appinfo>
<xs:documentation>
<div>
<h1>About the XML namespace</h1>
<div class="bodytext">
<p>
This schema document describes the XML namespace, in a form
suitable for import by other schema documents.
</p>
<p>
See <a href="http://www.w3.org/XML/1998/namespace.html">
http://www.w3.org/XML/1998/namespace.html</a> and
<a href="http://www.w3.org/TR/REC-xml">
http://www.w3.org/TR/REC-xml</a> for information
about this namespace.
</p>
<p>
Note that local names in this namespace are intended to be
defined only by the World Wide Web Consortium or its subgroups.
The names currently defined in this namespace are listed below.
They should not be used with conflicting semantics by any Working
Group, specification, or document instance.
</p>
<p>
See further below in this document for more information about <a
href="#usage">how to refer to this schema document from your own
XSD schema documents</a> and about <a href="#nsversioning">the
namespace-versioning policy governing this schema document</a>.
</p>
</div>
</div>
</xs:documentation>
</xs:annotation>
<xs:attribute name="lang">
<xs:annotation>
<xs:documentation>
<div>
<h3>lang (as an attribute name)</h3>
<p>
denotes an attribute whose value
is a language code for the natural language of the content of
any element; its value is inherited. This name is reserved
by virtue of its definition in the XML specification.</p>
</div>
<div>
<h4>Notes</h4>
<p>
Attempting to install the relevant ISO 2- and 3-letter
codes as the enumerated possible values is probably never
going to be a realistic possibility.
</p>
<p>
See BCP 47 at <a href="http://www.rfc-editor.org/rfc/bcp/bcp47.txt">
http://www.rfc-editor.org/rfc/bcp/bcp47.txt</a>
and the IANA language subtag registry at
<a href="http://www.iana.org/assignments/language-subtag-registry">
http://www.iana.org/assignments/language-subtag-registry</a>
for further information.
</p>
<p>
The union allows for the 'un-declaration' of xml:lang with
the empty string.
</p>
</div>
</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:union memberTypes="xs:language">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value=""/>
</xs:restriction>
</xs:simpleType>
</xs:union>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="space">
<xs:annotation>
<xs:documentation>
<div>
<h3>space (as an attribute name)</h3>
<p>
denotes an attribute whose
value is a keyword indicating what whitespace processing
discipline is intended for the content of the element; its
value is inherited. This name is reserved by virtue of its
definition in the XML specification.</p>
</div>
</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:NCName">
<xs:enumeration value="default"/>
<xs:enumeration value="preserve"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="base" type="xs:anyURI"> <xs:annotation>
<xs:documentation>
<div>
<h3>base (as an attribute name)</h3>
<p>
denotes an attribute whose value
provides a URI to be used as the base for interpreting any
relative URIs in the scope of the element on which it
appears; its value is inherited. This name is reserved
by virtue of its definition in the XML Base specification.</p>
<p>
See <a
href="http://www.w3.org/TR/xmlbase/">http://www.w3.org/TR/xmlbase/</a>
for information about this attribute.
</p>
</div>
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="id" type="xs:ID">
<xs:annotation>
<xs:documentation>
<div>
<h3>id (as an attribute name)</h3>
<p>
denotes an attribute whose value
should be interpreted as if declared to be of type ID.
This name is reserved by virtue of its definition in the
xml:id specification.</p>
<p>
See <a
href="http://www.w3.org/TR/xml-id/">http://www.w3.org/TR/xml-id/</a>
for information about this attribute.
</p>
</div>
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attributeGroup name="specialAttrs">
<xs:attribute ref="xml:base"/>
<xs:attribute ref="xml:lang"/>
<xs:attribute ref="xml:space"/>
<xs:attribute ref="xml:id"/>
</xs:attributeGroup>
<xs:annotation>
<xs:documentation>
<div>
<h3>Father (in any context at all)</h3>
<div class="bodytext">
<p>
denotes Jon Bosak, the chair of
the original XML Working Group. This name is reserved by
the following decision of the W3C XML Plenary and
XML Coordination groups:
</p>
<blockquote>
<p>
In appreciation for his vision, leadership and
dedication the W3C XML Plenary on this 10th day of
February, 2000, reserves for Jon Bosak in perpetuity
the XML name "xml:Father".
</p>
</blockquote>
</div>
</div>
</xs:documentation>
</xs:annotation>
<xs:annotation>
<xs:documentation>
<div xml:id="usage" id="usage">
<h2><a name="usage">About this schema document</a></h2>
<div class="bodytext">
<p>
This schema defines attributes and an attribute group suitable
for use by schemas wishing to allow <code>xml:base</code>,
<code>xml:lang</code>, <code>xml:space</code> or
<code>xml:id</code> attributes on elements they define.
</p>
<p>
To enable this, such a schema must import this schema for
the XML namespace, e.g. as follows:
</p>
<pre>
&lt;schema . . .>
. . .
&lt;import namespace="http://www.w3.org/XML/1998/namespace"
schemaLocation="http://www.w3.org/2001/xml.xsd"/>
</pre>
<p>
or
</p>
<pre>
&lt;import namespace="http://www.w3.org/XML/1998/namespace"
schemaLocation="http://www.w3.org/2009/01/xml.xsd"/>
</pre>
<p>
Subsequently, qualified reference to any of the attributes or the
group defined below will have the desired effect, e.g.
</p>
<pre>
&lt;type . . .>
. . .
&lt;attributeGroup ref="xml:specialAttrs"/>
</pre>
<p>
will define a type which will schema-validate an instance element
with any of those attributes.
</p>
</div>
</div>
</xs:documentation>
</xs:annotation>
<xs:annotation>
<xs:documentation>
<div id="nsversioning" xml:id="nsversioning">
<h2><a name="nsversioning">Versioning policy for this schema document</a></h2>
<div class="bodytext">
<p>
In keeping with the XML Schema WG's standard versioning
policy, this schema document will persist at
<a href="http://www.w3.org/2009/01/xml.xsd">
http://www.w3.org/2009/01/xml.xsd</a>.
</p>
<p>
At the date of issue it can also be found at
<a href="http://www.w3.org/2001/xml.xsd">
http://www.w3.org/2001/xml.xsd</a>.
</p>
<p>
The schema document at that URI may however change in the future,
in order to remain compatible with the latest version of XML
Schema itself, or with the XML namespace itself. In other words,
if the XML Schema or XML namespaces change, the version of this
document at <a href="http://www.w3.org/2001/xml.xsd">
http://www.w3.org/2001/xml.xsd
</a>
will change accordingly; the version at
<a href="http://www.w3.org/2009/01/xml.xsd">
http://www.w3.org/2009/01/xml.xsd
</a>
will not change.
</p>
<p>
Previous dated (and unchanging) versions of this schema
document are at:
</p>
<ul>
<li><a href="http://www.w3.org/2009/01/xml.xsd">
http://www.w3.org/2009/01/xml.xsd</a></li>
<li><a href="http://www.w3.org/2007/08/xml.xsd">
http://www.w3.org/2007/08/xml.xsd</a></li>
<li><a href="http://www.w3.org/2004/10/xml.xsd">
http://www.w3.org/2004/10/xml.xsd</a></li>
<li><a href="http://www.w3.org/2001/03/xml.xsd">
http://www.w3.org/2001/03/xml.xsd</a></li>
</ul>
</div>
</div>
</xs:documentation>
</xs:annotation>
</xs:schema>

View File

@ -0,0 +1,378 @@
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="../xslt/schema.xsl"?>
<!-- (C) 2009-2011 Rackspace Hosting, All Rights Reserved -->
<schema
elementFormDefault="qualified"
attributeFormDefault="unqualified"
xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:csapi="http://docs.openstack.org/compute/api/v1.1"
xmlns:xsdxt="http://docs.rackspacecloud.com/xsd-ext/v1.0"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://docs.openstack.org/compute/api/v1.1"
>
<annotation>
<xsd:appinfo
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<xsdxt:title>Backup Schedule</xsdxt:title>
<xsdxt:link rel="index" href="api.xsd" />
</xsd:appinfo>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
This schema file defines all entities related to <a
href="#type_BackupSchedule" title="See definition of
BackupSchedule">Backup Schedules</a>.
</p>
</xsd:documentation>
</annotation>
<element name="backupSchedule" type="csapi:BackupSchedule">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
This element is used to create periodic daily and weekly
images automatically.
</p>
</xsd:documentation>
<xsd:appinfo>
<xsdxt:samples>
<xsdxt:sample>
<xsdxt:code type="application/xml" href="../samples/backup.xml" />
</xsdxt:sample>
<xsdxt:sample>
<xsdxt:code type="application/json" href="../samples/backup.json" />
</xsdxt:sample>
</xsdxt:samples>
</xsd:appinfo>
</annotation>
</element>
<!-- Complex Types -->
<complexType name="BackupSchedule">
<sequence>
<any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
</sequence>
<attribute type="xsd:boolean" name="enabled" use="required">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
If true, both daily and weekly backup schedules are
disabled.
</p>
</xsd:documentation>
</annotation>
</attribute>
<attribute type="csapi:WeeklyBackup" name="weekly" use="required">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
A <a href="#type_WeeklyBackup" title="See definition of
WeeklyBackup">WeeklyBackup</a> type that describes the day
of the week in which to perform a weekly backup or
DISABLED if weekly backups are disabled.
</p>
</xsd:documentation>
</annotation>
</attribute>
<attribute type="csapi:DailyBackup" name="daily" use="required">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
A <a href="#type_DailyBackup" title="See definition of
DailyBackup">DailyBackup</a> type that describes an hour
range in which to perform a daily backup or DISABLED if
daily backups are disabled.
</p>
</xsd:documentation>
</annotation>
</attribute>
<anyAttribute namespace="##other" processContents="lax"/>
</complexType>
<!-- Simple Types -->
<simpleType name="DailyBackup">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
A target GMT hour range in which to perform a daily backup
or DISABLED if daily backups are disabled.
</p>
</xsd:documentation>
</annotation>
<restriction base="xsd:string">
<enumeration value="DISABLED">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
Daily backups are disabled.
</p>
</xsd:documentation>
</annotation>
</enumeration>
<enumeration value="H_0000_0200">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
Daily backup target of 00:00&#x2013;02:00 GMT.
</p>
</xsd:documentation>
</annotation>
</enumeration>
<enumeration value="H_0200_0400">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
Daily backup target of 02:00&#x2013;04:00 GMT.
</p>
</xsd:documentation>
</annotation>
</enumeration>
<enumeration value="H_0400_0600">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
Daily backup target of 04:00&#x2013;06:00 GMT.
</p>
</xsd:documentation>
</annotation>
</enumeration>
<enumeration value="H_0600_0800">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
Daily backup target of 06:00&#x2013;08:00 GMT.
</p>
</xsd:documentation>
</annotation>
</enumeration>
<enumeration value="H_0800_1000">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
Daily backup target of 08:00&#x2013;10:00 GMT.
</p>
</xsd:documentation>
</annotation>
</enumeration>
<enumeration value="H_1000_1200">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
Daily backup target of 10:00&#x2013;12:00 GMT.
</p>
</xsd:documentation>
</annotation>
</enumeration>
<enumeration value="H_1200_1400">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
Daily backup target of 12:00&#x2013;14:00 GMT.
</p>
</xsd:documentation>
</annotation>
</enumeration>
<enumeration value="H_1400_1600">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
Daily backup target of 14:00&#x2013;16:00 GMT.
</p>
</xsd:documentation>
</annotation>
</enumeration>
<enumeration value="H_1600_1800">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
Daily backup target of 16:00&#x2013;18:00 GMT.
</p>
</xsd:documentation>
</annotation>
</enumeration>
<enumeration value="H_1800_2000">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
Daily backup target of 18:00&#x2013;20:00 GMT.
</p>
</xsd:documentation>
</annotation>
</enumeration>
<enumeration value="H_2000_2200">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
Daily backup target of 20:00&#x2013;22:00 GMT.
</p>
</xsd:documentation>
</annotation>
</enumeration>
<enumeration value="H_2200_0000">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
Daily backup target of 22:00&#x2013;00:00 GMT.
</p>
</xsd:documentation>
</annotation>
</enumeration>
</restriction>
</simpleType>
<simpleType name="WeeklyBackup">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
A target day of the week in which to perform a weekly backup
or DISABLED if daily backups are disabled.
</p>
</xsd:documentation>
</annotation>
<restriction base="xsd:string">
<enumeration value="DISABLED">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
Weekly backups are disabled.
</p>
</xsd:documentation>
</annotation>
</enumeration>
<enumeration value="SUNDAY">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
A weekly backup target of Sunday.
</p>
</xsd:documentation>
</annotation>
</enumeration>
<enumeration value="MONDAY">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
A weekly backup target of Monday.
</p>
</xsd:documentation>
</annotation>
</enumeration>
<enumeration value="TUESDAY">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
A weekly backup target of Tuesday.
</p>
</xsd:documentation>
</annotation>
</enumeration>
<enumeration value="WEDNESDAY">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
A weekly backup target of Wednesday.
</p>
</xsd:documentation>
</annotation>
</enumeration>
<enumeration value="THURSDAY">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
A weekly backup target of Thursday.
</p>
</xsd:documentation>
</annotation>
</enumeration>
<enumeration value="FRIDAY">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
A weekly backup target of Friday.
</p>
</xsd:documentation>
</annotation>
</enumeration>
<enumeration value="SATURDAY">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
A weekly backup target of Saturday.
</p>
</xsd:documentation>
</annotation>
</enumeration>
<enumeration value="SUNDAY">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
A weekly backup target of Sunday.
</p>
</xsd:documentation>
</annotation>
</enumeration>
</restriction>
</simpleType>
</schema>

View File

@ -0,0 +1,156 @@
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="../xslt/schema.xsl"?>
<!-- (C) 2011 OpenStack LLC., All Rights Reserved -->
<schema
elementFormDefault="qualified"
attributeFormDefault="unqualified"
xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:csapi="http://docs.openstack.org/compute/api/v1.1"
xmlns:xsdxt="http://docs.rackspacecloud.com/xsd-ext/v1.0"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:vc="http://www.w3.org/2007/XMLSchema-versioning"
targetNamespace="http://docs.openstack.org/compute/api/v1.1"
>
<annotation>
<xsd:appinfo
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<xsdxt:title>Common Types</xsdxt:title>
<xsdxt:link rel="index" href="api.xsd" />
</xsd:appinfo>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
This schema file defines common types used by multiple
entities and possibly spanning several types of requests.
</p>
</xsd:documentation>
</annotation>
<!-- Import ATOM specific schema definitions -->
<import vc:minVersion="1.1" namespace="http://www.w3.org/2005/Atom" schemaLocation="atom/atom.xsd" />
<complexType name="Metadata">
<sequence>
<element name="meta" type="csapi:MetadataItem" minOccurs="0" maxOccurs="1000">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
A collection of metadata items. There may be an
absolute limit that imposes additional constraints on
the number of metadata items.
</p>
</xsd:documentation>
</annotation>
</element>
<element vc:minVersion="1.1" ref="atom:link" minOccurs="0" maxOccurs="unbounded" />
<any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
</sequence>
<anyAttribute namespace="##other" processContents="lax"/>
</complexType>
<complexType name="MetadataItem">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
A MetadataItem is simply a name-value pair. The name is
specified in the key attribute and the <a
href="#type_MetadataValue" title="See definition of
MetadataValue">value</a> is included inline.
</p>
<xsdxt:code type="application/xml">
<![CDATA[
<meta xmlns="http://docs.openstack.org/compute/api/v1.0"
key="Server Label">Web Head 1</meta>
]]>
</xsdxt:code>
</xsd:documentation>
</annotation>
<simpleContent>
<extension base="csapi:MetadataValue">
<attribute name="key" type="csapi:MetadataKey" use="required">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
A meta data name-value pair.
</p>
</xsd:documentation>
</annotation>
</attribute>
<anyAttribute namespace="##other" processContents="lax"/>
</extension>
</simpleContent>
</complexType>
<!-- Simple types that span multiple requests -->
<simpleType name="Progress">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
An integer between 0 and 100 that denotes the progress of an
operation.
</p>
</xsd:documentation>
</annotation>
<restriction base="xsd:int">
<minInclusive value="0"/>
<maxInclusive value="100" />
</restriction>
</simpleType>
<simpleType name="UUID">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
A universally unique identifier.
</p>
</xsd:documentation>
</annotation>
<restriction base="xsd:string">
<length value="36" fixed="true"/>
<pattern value="[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}"/>
</restriction>
</simpleType>
<simpleType name="ExtendedStatus">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
An extended status must contian a prefix.
</p>
</xsd:documentation>
</annotation>
<restriction base="xsd:string">
<pattern value="(\w|-)+:\w+"/>
</restriction>
</simpleType>
<simpleType name="MetadataKey">
<restriction base="xsd:string">
<maxLength value="255" />
</restriction>
</simpleType>
<simpleType name="MetadataValue">
<restriction base="xsd:string">
<maxLength value="255" />
</restriction>
</simpleType>
</schema>

View File

@ -0,0 +1,38 @@
<schema
elementFormDefault="qualified"
attributeFormDefault="unqualified"
xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:csapi="http://docs.openstack.org/compute/api/v1.1"
xmlns:xsdxt="http://docs.rackspacecloud.com/xsd-ext/v1.0"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:vc="http://www.w3.org/2007/XMLSchema-versioning"
xmlns:dme="http://docs.rackspacecloud.com/servers/api/ext/dme/v1.0"
targetNamespace="http://docs.openstack.org/compute/api/v1.1"
>
<!-- Import extended attribute -->
<import namespace="http://docs.rackspacecloud.com/servers/api/ext/dme/v1.0" schemaLocation="rax-dme.xsd"/>
<!-- Include/Redefine core schema -->
<include vc:minVersion="1.0" vc:maxVersion="1.1" schemaLocation="../../api.xsd"/>
<!--
For the purposes of extending the schema api.xsd should be a flat XSD. This is, it should not have
any <include ..> elements. That's no the case today. We should generate a flat XSD at compile time
and refernce it here.
-->
<redefine vc:minVersion="1.1" schemaLocation="../../api.xsd">
<complexType name="Image">
<complexContent>
<extension base="csapi:Image">
<attribute ref="dme:diskAutoManaged" use="optional"/>
</extension>
</complexContent>
</complexType>
<complexType name="Server">
<complexContent>
<extension base="csapi:Server">
<attribute ref="dme:diskAutoManaged" use="optional"/>
</extension>
</complexContent>
</complexType>
</redefine>
</schema>

View File

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="../xslt/schema.xslt"?>
<schema
elementFormDefault="qualified"
attributeFormDefault="qualified"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:dme="http://docs.rackspacecloud.com/servers/api/ext/dme/v1.0"
targetNamespace="http://docs.rackspacecloud.com/servers/api/ext/dme/v1.0"
>
<attribute name="diskAutoManaged" type="xsd:boolean">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
A flag that identifies whether a disk is auto
managed or manual managed. The attribute can only
be applied to an Image.
</p>
</xsd:documentation>
</annotation>
</attribute>
</schema>

View File

@ -0,0 +1,203 @@
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="../xslt/schema.xsl"?>
<!-- (C) 2011 OpenStack LLC., All Rights Reserved -->
<xsd:schema elementFormDefault="qualified" attributeFormDefault="unqualified"
targetNamespace="http://docs.openstack.org/common/api/v1.0"
xmlns:ext="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:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:annotation>
<xsd:appinfo
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<xsdxt:title>Extensions</xsdxt:title>
<xsdxt:link rel="index" href="api-common.xsd" />
</xsd:appinfo>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
This schema file defines types related to API
extensions.
</p>
</xsd:documentation>
</xsd:annotation>
<!-- Import ATOM specific schema definitions -->
<xsd:import vc:minVersion="1.1" namespace="http://www.w3.org/2005/Atom" schemaLocation="atom/atom.xsd" />
<xsd:element name="extensions" type="ext:Extensions">
<xsd:annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
A list of supported extensions.
</p>
</xsd:documentation>
<xsd:appinfo>
<xsdxt:samples>
<xsdxt:sample>
<xsdxt:code type="application/xml" href="../samples/extensions.xml" />
</xsdxt:sample>
<xsdxt:sample>
<xsdxt:code type="application/json" href="../samples/extensions.json" />
</xsdxt:sample>
</xsdxt:samples>
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
<xsd:element name="extension" type="ext:Extension">
<xsd:annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
Detials about a specific extension.
</p>
</xsd:documentation>
<xsd:appinfo>
<xsdxt:samples>
<xsdxt:sample>
<xsdxt:code type="application/xml" href="../samples/extension.xml" />
</xsdxt:sample>
<xsdxt:sample>
<xsdxt:code type="application/json" href="../samples/extension.json" />
</xsdxt:sample>
</xsdxt:samples>
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
<xsd:complexType name="Extensions">
<xsd:annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
A list of extensions.
</p>
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="extension" type="ext:Extension" minOccurs="0" maxOccurs="unbounded" />
<xsd:element vc:minVersion="1.1" ref="atom:link" minOccurs="0" maxOccurs="unbounded" />
<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
<xsd:anyAttribute namespace="##other" processContents="lax"/>
</xsd:complexType>
<xsd:complexType name="Extension">
<xsd:annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
Detials about a specific extension.
</p>
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="description" type="xsd:string" minOccurs="1">
<xsd:annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
A short description of what the extension
does.
</p>
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element vc:minVersion="1.1" ref="atom:link" minOccurs="0" maxOccurs="unbounded" />
<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required">
<xsd:annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
A human reabable extension name.
</p>
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="namespace" type="xsd:anyURI" use="required">
<xsd:annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
Extension namespace used for XML representations.
</p>
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="alias" type="ext:Alias" use="required">
<xsd:annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
A vendor prefix alieas used for non-XML
representations.
</p>
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="updated" type="xsd:dateTime" use="optional">
<xsd:annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
The time that the extension was added or
modifided.
</p>
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:anyAttribute namespace="##other" processContents="lax"/>
<xsd:assert vc:minVersion="1.1" test="atom:link[@rel='describedby']">
<xsd:annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
There should be at least one atom link with a
describedby relation. This relation provides
developer info for the extension.
</p>
</xsd:documentation>
</xsd:annotation>
</xsd:assert>
</xsd:complexType>
<xsd:simpleType name="Alias">
<xsd:annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
Vendor aliases are used to differentiate
extensions in non-XML representations as well as
in HTTP headers and in the URL path. An alias is
made of a vendor prefix, followed be a a dash (-)
followed be a short extension ID. For example:
<code>RAX-PIE</code>.
</p>
</xsd:documentation>
</xsd:annotation>
<xsd:restriction base="xsd:string">
<xsd:pattern value="\w+\-\w+" />
</xsd:restriction>
</xsd:simpleType>
</xsd:schema>

View File

@ -0,0 +1,532 @@
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="../xslt/schema.xsl"?>
<!-- (C) 2011 OpenStack LLC., All Rights Reserved -->
<schema
elementFormDefault="qualified"
attributeFormDefault="unqualified"
xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:csapi="http://docs.openstack.org/compute/api/v1.1"
xmlns:xsdxt="http://docs.rackspacecloud.com/xsd-ext/v1.0"
targetNamespace="http://docs.openstack.org/compute/api/v1.1">
<annotation>
<xsd:appinfo
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<xsdxt:title>Faults</xsdxt:title>
<xsdxt:link rel="index" href="api.xsd" />
</xsd:appinfo>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
This schema file defines faults that may be raised by the
OpenStack Compute API. These faults are derived from the <a
href="#type_ComputeAPIFault" title="See definition of
ComputeAPIFault">ComputeAPIFault</a>. Most faults extend this
type without adding any additional attributes or elements.
The only exceptions is the <a href="#type_OverLimitAPIFault"
title="See definition of
OverLimitAPIFault">OverLimitAPIFault</a> which adds a
<strong>retryAt</strong> attribute and the <a
href="#type_AsyncAPIFault" title="See definition of
AsyncAPIFault">AsyncAPIFault</a> which adds a
<strong>created</strong> timestamp. Because all faults extend
a standard base type, it should be possible to capture all API
faults with a single <code>catch</code> statement.
</p>
<p>
Faults are associated with a default HTTP status code that
corresponds to the particular fault type. For example an <a
href="#element_itemNotFound" title="see definition of
itemNotFound">&lt;itemNotFound&gt;</a> element is associated
with the HTTP status code 404. Some elements, the <a
href="#element_computeFault" title="see definition of
computeFault">&lt;computeFault&gt;</a> element for
example, may be associated with multiple status codes. It is
also possible for multiple fault elements to be associated
with the same default code. The examples below showcase the
default status codes for each element type. Note that these
default codes are not part of the formal schema. In practice,
however, an element type will likely be associated with its
corresponding default status code.
</p>
</xsd:documentation>
</annotation>
<!-- Faults -->
<element name="computeFault" type="csapi:ComputeAPIFault">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
A generic Cloud Servers API fault.
</p>
</xsd:documentation>
<xsd:appinfo>
<xsdxt:samples>
<xsdxt:sample>
<xsdxt:code type="application/xml" href="../samples/fault.xml" />
</xsdxt:sample>
<xsdxt:sample>
<xsdxt:code type="application/json" href="../samples/fault.json" />
</xsdxt:sample>
</xsdxt:samples>
</xsd:appinfo>
</annotation>
</element>
<element name="itemNotFound" type="csapi:ItemNotFoundAPIFault">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
The item or resource could not be found.
</p>
</xsd:documentation>
<xsd:appinfo>
<xsdxt:samples>
<xsdxt:sample>
<xsdxt:code type="application/xml" href="../samples/notfound.xml" />
</xsdxt:sample>
<xsdxt:sample>
<xsdxt:code type="application/json" href="../samples/notfound.json" />
</xsdxt:sample>
</xsdxt:samples>
</xsd:appinfo>
</annotation>
</element>
<element name="buildInProgress" type="csapi:BuildInProgressAPIFault">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
The operation is not allowed because the corresponding
server is in a build state.
</p>
</xsd:documentation>
<xsd:appinfo>
<xsdxt:samples>
<xsdxt:sample>
<xsdxt:code type="application/xml" href="../samples/build.xml" />
</xsdxt:sample>
<xsdxt:sample>
<xsdxt:code type="application/json" href="../samples/build.json" />
</xsdxt:sample>
</xsdxt:samples>
</xsd:appinfo>
</annotation>
</element>
<element name="serverCapacityUnavailable" type="csapi:ServerCapacityUnavailableAPIFault">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
There is not enough capacity to honor the request.
</p>
</xsd:documentation>
<xsd:appinfo>
<xsdxt:samples>
<xsdxt:sample>
<xsdxt:code type="application/xml" href="../samples/serverCap.xml" />
</xsdxt:sample>
<xsdxt:sample>
<xsdxt:code type="application/json" href="../samples/serverCap.json" />
</xsdxt:sample>
</xsdxt:samples>
</xsd:appinfo>
</annotation>
</element>
<element name="backupOrResizeInProgress" type="csapi:BackupOrResizeInProgressAPIFault">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
The operation is not allowed because the corresponding
server is being re-sized or backed up.
</p>
</xsd:documentation>
<xsd:appinfo>
<xsdxt:samples>
<xsdxt:sample>
<xsdxt:code type="application/xml" href="../samples/backupInProgress.xml" />
</xsdxt:sample>
<xsdxt:sample>
<xsdxt:code type="application/json" href="../samples/backupInProgress.json" />
</xsdxt:sample>
</xsdxt:samples>
</xsd:appinfo>
</annotation>
</element>
<element name="resizeNotAllowed" type="csapi:ResizeNotAllowedAPIFault">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
The re-size operation is not permitted.
</p>
</xsd:documentation>
<xsd:appinfo>
<xsdxt:samples>
<xsdxt:sample>
<xsdxt:code type="application/xml" href="../samples/resizeNotAllowed.xml" />
</xsdxt:sample>
<xsdxt:sample>
<xsdxt:code type="application/json" href="../samples/resizeNotAllowed.json" />
</xsdxt:sample>
</xsdxt:samples>
</xsd:appinfo>
</annotation>
</element>
<element name="serviceUnavailable" type="csapi:ServiceUnavailableAPIFault">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
The API service is currently unavailable.
</p>
</xsd:documentation>
<xsd:appinfo>
<xsdxt:samples>
<xsdxt:sample>
<xsdxt:code type="application/xml" href="../samples/serviceNotAvailable.xml" />
</xsdxt:sample>
<xsdxt:sample>
<xsdxt:code type="application/json" href="../samples/serviceNotAvailable.json" />
</xsdxt:sample>
</xsdxt:samples>
</xsd:appinfo>
</annotation>
</element>
<element name="unauthorized" type="csapi:UnauthorizedAPIFault">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
Insufficient privileges to honor the request, perhaps an
authentication token needs to be obtained or renewed.
</p>
</xsd:documentation>
<xsd:appinfo>
<xsdxt:samples>
<xsdxt:sample>
<xsdxt:code type="application/xml" href="../samples/unauth.xml" />
</xsdxt:sample>
<xsdxt:sample>
<xsdxt:code type="application/json" href="../samples/unauth.json" />
</xsdxt:sample>
</xsdxt:samples>
</xsd:appinfo>
</annotation>
</element>
<element name="forbidden" type="csapi:ForbiddenAPIFault">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
Authentication has been validated, however the operation is unauthorized.
</p>
</xsd:documentation>
<xsd:appinfo>
<xsdxt:samples>
<xsdxt:sample>
<xsdxt:code type="application/xml" href="../samples/forbidden.xml" />
</xsdxt:sample>
<xsdxt:sample>
<xsdxt:code type="application/json" href="../samples/forbidden.json" />
</xsdxt:sample>
</xsdxt:samples>
</xsd:appinfo>
</annotation>
</element>
<element name="overLimit" type="csapi:OverLimitAPIFault">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
An <a href="limits.xsd#type_AbsoluteLimit" title="See
definition of AbsoluteLimit">absolute</a> or <a
href="limits.xsd#type_RateLimit" title="See definition of
RateLimit">rate</a> limit has been exceeded.
</p>
</xsd:documentation>
<xsd:appinfo>
<xsdxt:samples>
<xsdxt:sample>
<xsdxt:code type="application/xml" href="../samples/overlimit.xml" />
</xsdxt:sample>
<xsdxt:sample>
<xsdxt:code type="application/json" href="../samples/overlimit.json" />
</xsdxt:sample>
</xsdxt:samples>
</xsd:appinfo>
</annotation>
</element>
<element name="badRequest" type="csapi:BadRequestAPIFault">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
The request is malformed.
</p>
</xsd:documentation>
<xsd:appinfo>
<xsdxt:samples>
<xsdxt:sample>
<xsdxt:code type="application/xml" href="../samples/badrequest.xml" />
</xsdxt:sample>
<xsdxt:sample>
<xsdxt:code type="application/json" href="../samples/badrequest.json" />
</xsdxt:sample>
</xsdxt:samples>
</xsd:appinfo>
</annotation>
</element>
<element name="badMediaType" type="csapi:BadMediaTypeAPIFault">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
The Content Type of the request is not supported.
</p>
</xsd:documentation>
<xsd:appinfo>
<xsdxt:samples>
<xsdxt:sample>
<xsdxt:code type="application/xml" href="../samples/badmediatype.xml" />
</xsdxt:sample>
<xsdxt:sample>
<xsdxt:code type="application/json" href="../samples/badmediatype.json" />
</xsdxt:sample>
</xsdxt:samples>
</xsd:appinfo>
</annotation>
</element>
<element name="badMethod" type="csapi:BadMethodAPIFault">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
The HTTP method (or <a href="limits.xsd#type_HTTPVerb"
title="See definition of HTTPVerb">verb</a>) is not
supported by the corresponding resource.
</p>
</xsd:documentation>
<xsd:appinfo>
<xsdxt:samples>
<xsdxt:sample>
<xsdxt:code type="application/xml" href="../samples/badmethod.xml" />
</xsdxt:sample>
<xsdxt:sample>
<xsdxt:code type="application/json" href="../samples/badmethod.json" />
</xsdxt:sample>
</xsdxt:samples>
</xsd:appinfo>
</annotation>
</element>
<element name="notImplemented" type="csapi:NotImplementedAPIFault">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
The operation is currently not implemented.
</p>
</xsd:documentation>
<xsd:appinfo>
<xsdxt:samples>
<xsdxt:sample>
<xsdxt:code type="application/xml" href="../samples/notimplemented.xml" />
</xsdxt:sample>
<xsdxt:sample>
<xsdxt:code type="application/json" href="../samples/notimplemented.json" />
</xsdxt:sample>
</xsdxt:samples>
</xsd:appinfo>
</annotation>
</element>
<!-- Complex Types -->
<complexType name="ComputeAPIFault">
<sequence>
<element name="message" type="xsd:string">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
A human readable message that is appropriate for display
to the end user.
</p>
</xsd:documentation>
</annotation>
</element>
<element name="details" type="xsd:string" minOccurs="0">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
The optional &lt;details&gt; element may contain useful
information for tracking down errors (e.g a stack
trace). This information may or may not be appropriate
for display to an end user.
</p>
</xsd:documentation>
</annotation>
</element>
<any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
</sequence>
<attribute name="code" type="xsd:int" use="required">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
The HTTP status code associated with the current fault.
</p>
</xsd:documentation>
</annotation>
</attribute>
<anyAttribute namespace="##other" processContents="lax"/>
</complexType>
<complexType name="ItemNotFoundAPIFault">
<complexContent>
<extension base="csapi:ComputeAPIFault">
</extension>
</complexContent>
</complexType>
<complexType name="BuildInProgressAPIFault">
<complexContent>
<extension base="csapi:ComputeAPIFault">
</extension>
</complexContent>
</complexType>
<complexType name="ServerCapacityUnavailableAPIFault">
<complexContent>
<extension base="csapi:ComputeAPIFault">
</extension>
</complexContent>
</complexType>
<complexType name="BackupOrResizeInProgressAPIFault">
<complexContent>
<extension base="csapi:ComputeAPIFault">
</extension>
</complexContent>
</complexType>
<complexType name="ResizeNotAllowedAPIFault">
<complexContent>
<extension base="csapi:ComputeAPIFault">
</extension>
</complexContent>
</complexType>
<complexType name="ServiceUnavailableAPIFault">
<complexContent>
<extension base="csapi:ComputeAPIFault">
</extension>
</complexContent>
</complexType>
<complexType name="UnauthorizedAPIFault">
<complexContent>
<extension base="csapi:ComputeAPIFault">
</extension>
</complexContent>
</complexType>
<complexType name="ForbiddenAPIFault">
<complexContent>
<extension base="csapi:ComputeAPIFault">
</extension>
</complexContent>
</complexType>
<complexType name="OverLimitAPIFault">
<complexContent>
<extension base="csapi:ComputeAPIFault">
<attribute name="retryAt" type="xsd:dateTime" use="optional">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
An optional dateTime denoting when an operation should
be retried.
</p>
</xsd:documentation>
</annotation>
</attribute>
</extension>
</complexContent>
</complexType>
<complexType name="AsyncAPIFault">
<complexContent>
<extension base="csapi:ComputeAPIFault">
<attribute name="created" type="xsd:dateTime" use="optional">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
An optional dateTime denoting when the fault
was created.
</p>
</xsd:documentation>
</annotation>
</attribute>
</extension>
</complexContent>
</complexType>
<complexType name="BadRequestAPIFault">
<complexContent>
<extension base="csapi:ComputeAPIFault">
</extension>
</complexContent>
</complexType>
<complexType name="BadMediaTypeAPIFault">
<complexContent>
<extension base="csapi:ComputeAPIFault">
</extension>
</complexContent>
</complexType>
<complexType name="BadMethodAPIFault">
<complexContent>
<extension base="csapi:ComputeAPIFault">
</extension>
</complexContent>
</complexType>
<complexType name="NotImplementedAPIFault">
<complexContent>
<extension base="csapi:ComputeAPIFault">
</extension>
</complexContent>
</complexType>
</schema>

View File

@ -0,0 +1,244 @@
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="../xslt/schema.xsl"?>
<!-- (C) 2011 OpenStack LLC., All Rights Reserved -->
<schema
elementFormDefault="qualified"
attributeFormDefault="unqualified"
xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:csapi="http://docs.openstack.org/compute/api/v1.1"
xmlns:xsdxt="http://docs.rackspacecloud.com/xsd-ext/v1.0"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:vc="http://www.w3.org/2007/XMLSchema-versioning"
targetNamespace="http://docs.openstack.org/compute/api/v1.1"
>
<annotation>
<xsd:appinfo
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<xsdxt:title>Flavors</xsdxt:title>
<xsdxt:link rel="index" href="api.xsd" />
</xsd:appinfo>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
This schema file defines all entities related to <a
href="#type_Flavor" title="See definition of
Flavor">Flavors</a>.
</p>
</xsd:documentation>
</annotation>
<!-- Import ATOM specific schema definitions -->
<import namespace="http://www.w3.org/2005/Atom" schemaLocation="atom/atom.xsd" />
<include schemaLocation="common.xsd">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
Common types used by multiple entities and possibly spanning
several types of requests.
</p>
</xsd:documentation>
</annotation>
</include>
<element name="flavor" type="csapi:Flavor">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
The element defines an available hardware configuration for
a server.
</p>
</xsd:documentation>
<xsd:appinfo>
<xsdxt:samples>
<xsdxt:sample>
<xsdxt:code type="application/xml" href="../samples/flavor.xml" />
</xsdxt:sample>
<xsdxt:sample>
<xsdxt:code type="application/json" href="../samples/flavor.json" />
</xsdxt:sample>
</xsdxt:samples>
</xsd:appinfo>
</annotation>
</element>
<element name="flavors" type="csapi:Flavors">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
A collection of flavors.
</p>
</xsd:documentation>
<xsd:appinfo>
<xsdxt:samples>
<xsdxt:sample>
<xsdxt:code type="application/xml" href="../samples/flavors.xml" />
</xsdxt:sample>
<xsdxt:sample>
<xsdxt:code type="application/json" href="../samples/flavors.json" />
</xsdxt:sample>
</xsdxt:samples>
</xsd:appinfo>
</annotation>
</element>
<!-- Complex Types -->
<complexType name="Flavor">
<sequence>
<element vc:minVersion="1.1" ref="atom:link" minOccurs="0" maxOccurs="unbounded" />
<any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
</sequence>
<attribute type="csapi:UUID" name="id" use="required">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
The ID of the flavor.
</p>
</xsd:documentation>
</annotation>
</attribute>
<attribute type="xsd:string" name="name" use="optional">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
The name of the flavor.
</p>
</xsd:documentation>
</annotation>
</attribute>
<attribute type="xsd:int" name="ram" use="optional">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
The amount of RAM in the flavor in megabytes.
</p>
</xsd:documentation>
</annotation>
</attribute>
<attribute type="xsd:int" name="disk" use="optional">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
The amount of disk space in the flavor in gigabytes.
</p>
</xsd:documentation>
</annotation>
</attribute>
<attribute type="xsd:int" name="vcpus" use="optional">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
The amount of cores allocated.
</p>
</xsd:documentation>
</annotation>
</attribute>
<anyAttribute namespace="##other" processContents="lax"/>
</complexType>
<complexType name="FlavorWithOnlyIDNameLinks">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
The only allowed attributes for this Flavor type is
the name, ID, and links. This type is used for
non-detailed list of flavors.
</p>
</xsd:documentation>
</annotation>
<complexContent>
<restriction base="csapi:Flavor">
<sequence>
<element ref="atom:link" minOccurs="1" maxOccurs="unbounded" />
<any vc:minVersion="1.1" namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
</sequence>
<attribute type="csapi:UUID" name="id" use="required"/>
<attribute type="xsd:string" name="name" use="required"/>
<attribute type="xsd:int" name="ram" use="prohibited" />
<attribute type="xsd:int" name="disk" use="prohibited"/>
<attribute type="xsd:int" name="vcpus" use="prohibited"/>
<anyAttribute namespace="##other" processContents="lax"/>
<assert vc:minVersion="1.1" test="atom:link[@rel='self']/@href and atom:link[@rel='bookmark']/@href">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
Here the flavor <strong>MUST</strong>
contain a name, an ID, a bookmark link,
and a self link.
</p>
</xsd:documentation>
</annotation>
</assert>
</restriction>
</complexContent>
</complexType>
<complexType name="Flavors">
<sequence>
<element name="flavor" type="csapi:Flavor" minOccurs="0" maxOccurs="1000">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
A collection of flavors.
</p>
</xsd:documentation>
</annotation>
</element>
<element vc:minVersion="1.1" ref="atom:link" minOccurs="0" maxOccurs="unbounded" />
<any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
</sequence>
<anyAttribute namespace="##other" processContents="lax"/>
</complexType>
<complexType name="FlavorsWithOnlyIDsNamesLinks">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
A collection of flavors with ID, names, and links
only. This type is used for non-detailed list of
flavors.
</p>
</xsd:documentation>
</annotation>
<complexContent>
<restriction base="csapi:Flavors">
<sequence>
<element name="flavor" type="csapi:FlavorWithOnlyIDNameLinks" minOccurs="0" maxOccurs="1000"/>
<element vc:minVersion="1.1" ref="atom:link" minOccurs="0" maxOccurs="unbounded" />
<any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
</sequence>
<anyAttribute namespace="##other" processContents="lax"/>
</restriction>
</complexContent>
</complexType>
</schema>

View File

@ -0,0 +1,443 @@
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="../xslt/schema.xsl"?>
<!-- (C) 2011 OpenStack LLC., All Rights Reserved -->
<schema
elementFormDefault="qualified"
attributeFormDefault="unqualified"
xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:csapi="http://docs.openstack.org/compute/api/v1.1"
xmlns:xsdxt="http://docs.rackspacecloud.com/xsd-ext/v1.0"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:vc="http://www.w3.org/2007/XMLSchema-versioning"
targetNamespace="http://docs.openstack.org/compute/api/v1.1"
>
<annotation>
<xsd:appinfo
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<xsdxt:title>Images</xsdxt:title>
<xsdxt:link rel="index" href="api.xsd" />
</xsd:appinfo>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
This schema file defines all entity related to <a
href="#type_Image" title="See definition of Image">Images</a>.
</p>
</xsd:documentation>
</annotation>
<!-- Import ATOM specific schema definitions -->
<import namespace="http://www.w3.org/2005/Atom" schemaLocation="atom/atom.xsd" />
<include schemaLocation="common.xsd">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
Common types used by multiple entities and possibly spanning
several types of requests.
</p>
</xsd:documentation>
</annotation>
</include>
<include schemaLocation="server.xsd">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
Servers and all internal Entities including: Addresses,
and Files.
</p>
</xsd:documentation>
</annotation>
</include>
<include schemaLocation="faults.xsd">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
All fault types.
</p>
</xsd:documentation>
</annotation>
</include>
<element name="image" type="csapi:Image">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
The element defines a collection of files used to create or
rebuild a server.
</p>
</xsd:documentation>
<xsd:appinfo>
<xsdxt:samples>
<xsdxt:sample>
<xsdxt:code type="application/xml" href="../samples/image.xml" />
</xsdxt:sample>
<xsdxt:sample>
<xsdxt:code type="application/json" href="../samples/image.json" />
</xsdxt:sample>
</xsdxt:samples>
</xsd:appinfo>
</annotation>
</element>
<element name="images" type="csapi:Images">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
A collection of images.
</p>
</xsd:documentation>
<xsd:appinfo>
<xsdxt:samples>
<xsdxt:sample>
<xsdxt:code type="application/xml" href="../samples/images.xml" />
</xsdxt:sample>
<xsdxt:sample>
<xsdxt:code type="application/json" href="../samples/images.json" />
</xsdxt:sample>
</xsdxt:samples>
</xsd:appinfo>
</annotation>
</element>
<!-- Complex Types -->
<complexType name="Image">
<sequence>
<element name="server" type="csapi:Server" minOccurs="0">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
The server associated with the image. This may
not contain full server details but will
always contain an ID, a name, as well as self
and bookmark links.
</p>
</xsd:documentation>
</annotation>
</element>
<element name="metadata" type="csapi:Metadata" minOccurs="0">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
A collection of meta data items associated with the image.
</p>
</xsd:documentation>
</annotation>
</element>
<element name="fault" type="csapi:AsyncAPIFault" minOccurs="0">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
The details of a fault that may have occurred
while creating an image.
</p>
</xsd:documentation>
</annotation>
</element>
<element vc:minVersion="1.1" ref="atom:link" minOccurs="0" maxOccurs="unbounded" />
<any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
</sequence>
<attribute type="csapi:UUID" name="id" use="optional">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
The ID of the image.
</p>
</xsd:documentation>
</annotation>
</attribute>
<attribute type="xsd:string" name="name" use="optional">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
The name of the image.
</p>
</xsd:documentation>
</annotation>
</attribute>
<attribute type="xsd:string" name="tenantId" use="optional">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
A unique ID that identifies the tenant that contains
the image.
</p>
</xsd:documentation>
</annotation>
</attribute>
<attribute type="xsd:string" name="userId" use="optional">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
A unique ID that identifies the user who created
the image.
</p>
</xsd:documentation>
</annotation>
</attribute>
<attribute type="xsd:dateTime" name="updated" use="optional">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
A time-stamp identifying the modification time of the
image.
</p>
</xsd:documentation>
</annotation>
</attribute>
<attribute type="xsd:dateTime" name="created" use="optional">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
A creation time-stamp for the image.
</p>
</xsd:documentation>
</annotation>
</attribute>
<attribute type="csapi:Progress" name="progress" use="optional">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
The progress of the current image operation.
</p>
</xsd:documentation>
</annotation>
</attribute>
<attribute type="csapi:ExtensibleImageStatus" name="status" use="optional">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
The current state (or <a href="#type_ExtensibleImageStatus"
title="See definition of ExtensibleImageStatus">status</a>) of the
image.
</p>
</xsd:documentation>
</annotation>
</attribute>
<attribute type="xsd:int" name="minDisk" use="optional">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
Minimum disk space required for the image in gigabytes.
</p>
</xsd:documentation>
</annotation>
</attribute>
<attribute type="xsd:int" name="minRam" use="optional">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
The minimum amount of RAM required for the image in
megabytes.
</p>
</xsd:documentation>
</annotation>
</attribute>
<anyAttribute namespace="##other" processContents="lax"/>
</complexType>
<complexType name="ImageWithOnlyIDNameLinks">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
The only allowed attribute for this Image type is
the name, ID, and links. This is used for
non-detailed list of images.
</p>
</xsd:documentation>
</annotation>
<complexContent>
<restriction base="csapi:Image">
<sequence>
<element ref="atom:link" minOccurs="1" maxOccurs="unbounded" />
<any vc:minVersion="1.1" namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
</sequence>
<attribute type="csapi:UUID" name="id" use="required"/>
<attribute type="xsd:string" name="name" use="required"/>
<attribute type="xsd:dateTime" name="updated" use="prohibited"/>
<attribute type="xsd:dateTime" name="created" use="prohibited"/>
<attribute type="csapi:Progress" name="progress" use="prohibited"/>
<attribute type="csapi:ExtensibleImageStatus" name="status" use="prohibited"/>
<anyAttribute namespace="##other" processContents="lax"/>
<assert vc:minVersion="1.1" test="atom:link[@rel='self']/@href and atom:link[@rel='bookmark']/@href">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
Here the image <strong>MUST</strong>
contain a name, an ID, a bookmark link,
and a self link.
</p>
</xsd:documentation>
</annotation>
</assert>
</restriction>
</complexContent>
</complexType>
<complexType name="Images">
<sequence>
<element name="image" type="csapi:Image" minOccurs="0" maxOccurs="1000">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
A collection of images (all details).
</p>
</xsd:documentation>
</annotation>
</element>
<element vc:minVersion="1.1" ref="atom:link" minOccurs="0" maxOccurs="unbounded" />
<any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
</sequence>
<anyAttribute namespace="##other" processContents="lax"/>
</complexType>
<complexType name="ImagesWithOnlyIDsNamesLinks">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
A collection of images with only IDs, names, and
links. This is used for the non-detailed list of
images.
</p>
</xsd:documentation>
</annotation>
<complexContent>
<restriction base="csapi:Images">
<sequence>
<element name="image" type="csapi:ImageWithOnlyIDNameLinks" minOccurs="0" maxOccurs="1000"/>
<element vc:minVersion="1.1" ref="atom:link" minOccurs="0" maxOccurs="unbounded" />
<any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
</sequence>
<anyAttribute namespace="##other" processContents="lax"/>
</restriction>
</complexContent>
</complexType>
<!-- Simple Types -->
<simpleType name="ExtensibleImageStatus">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
An extensible image status type allows all of the
strings defined in <a href="#type_ImageStatus"
title="See definition of
ImageStatus">ImageStatus</a> or an
alias prefixed status.
</p>
</xsd:documentation>
</annotation>
<union memberTypes="csapi:ImageStatus csapi:ExtendedStatus"/>
</simpleType>
<simpleType name="ImageStatus">
<restriction base="xsd:string">
<enumeration value="UNKNOWN">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
The image is in an unknown state.
</p>
</xsd:documentation>
</annotation>
</enumeration>
<enumeration value="ACTIVE">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
All operations have completed successfully, the image is
available for install.
</p>
</xsd:documentation>
</annotation>
</enumeration>
<enumeration value="SAVING">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
The image is being created (or saved).
</p>
</xsd:documentation>
</annotation>
</enumeration>
<enumeration value="DELETED">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
The image has been deleted.
</p>
</xsd:documentation>
</annotation>
</enumeration>
<enumeration value="ERROR">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
The requested operation has failed.
</p>
</xsd:documentation>
</annotation>
</enumeration>
</restriction>
</simpleType>
</schema>

View File

@ -0,0 +1,245 @@
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="../xslt/schema.xsl"?>
<!-- (C) 2009-2011 Rackspace Hosting, All Rights Reserved -->
<schema
elementFormDefault="qualified"
attributeFormDefault="unqualified"
xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:csapi="http://docs.openstack.org/compute/api/v1.1"
xmlns:xsdxt="http://docs.rackspacecloud.com/xsd-ext/v1.0"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:vc="http://www.w3.org/2007/XMLSchema-versioning"
targetNamespace="http://docs.openstack.org/compute/api/v1.1"
>
<annotation>
<xsd:appinfo
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<xsdxt:title>Shared IP Groups</xsdxt:title>
<xsdxt:link rel="index" href="api.xsd" />
</xsd:appinfo>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
This schema file defines all entities related to <a
href="#type_SharedIpGroup" title="See definition of
SharedIPGroup">Shared IP Groups</a>.
</p>
</xsd:documentation>
</annotation>
<!-- Import ATOM specific schema definitions -->
<import vc:minVersion="1.1" namespace="http://www.w3.org/2005/Atom" schemaLocation="atom/atom.xsd" />
<include schemaLocation="common.xsd">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
Common types used by multiple entities and possibly spanning
several types of requests.
</p>
</xsd:documentation>
</annotation>
</include>
<element name="sharedIpGroup" type="csapi:SharedIpGroup">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
The element defines a group of servers that can share one or
more public IPs with each other.
</p>
</xsd:documentation>
<xsd:appinfo>
<xsdxt:samples>
<xsdxt:sample>
<xsdxt:code type="application/xml" href="../samples/ipgroup.xml" />
</xsdxt:sample>
<xsdxt:sample>
<xsdxt:code type="application/json" href="../samples/ipgroup.json" />
</xsdxt:sample>
</xsdxt:samples>
</xsd:appinfo>
</annotation>
</element>
<element name="sharedIpGroups" type="csapi:SharedIpGroups">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
A collection of shared IP groups.
</p>
</xsd:documentation>
<xsd:appinfo>
<xsdxt:samples>
<xsdxt:sample>
<xsdxt:code type="application/xml" href="../samples/ipgroups.xml" />
</xsdxt:sample>
<xsdxt:sample>
<xsdxt:code type="application/json" href="../samples/ipgroups.json" />
</xsdxt:sample>
</xsdxt:samples>
</xsd:appinfo>
</annotation>
</element>
<!-- Complex Types -->
<complexType name="SharedIpGroup">
<sequence>
<choice>
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
An IP group type can take two basic forms. On a request
a single, optional, server ID may be specified&#x2026;
</p>
<xsdxt:samples>
<xsdxt:sample>
<xsdxt:code type="application/xml" href="../samples/ipgroup2.xml" />
</xsdxt:sample>
<xsdxt:sample>
<xsdxt:code type="application/json" href="../samples/ipgroup2.json" />
</xsdxt:sample>
</xsdxt:samples>
<p>
&#x2026;on a response a server ID list is always returned. This
server list may be empty&#x2026;
</p>
<xsdxt:samples>
<xsdxt:sample>
<xsdxt:code type="application/xml" href="../samples/ipgroup.xml" />
</xsdxt:sample>
<xsdxt:sample>
<xsdxt:code type="application/json" href="../samples/ipgroup.json" />
</xsdxt:sample>
</xsdxt:samples>
<p>
&#x2026;note that is a mutually exclusive choice: either
a &lt;server&gt; or &lt;servers&gt; element must be
specified, but not both.
</p>
</xsd:documentation>
</annotation>
<element name="server" type="csapi:ServerID" minOccurs="0" maxOccurs="1">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
A single, optional, server ID. This form is used when
creating an IP group.
</p>
</xsd:documentation>
</annotation>
</element>
<element name="servers" type="csapi:ServerIDList">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
A collection of server IDs. This form is used when
querying an IP group.
</p>
</xsd:documentation>
</annotation>
</element>
</choice>
<element vc:minVersion="1.1" ref="atom:link" minOccurs="0" maxOccurs="unbounded" />
<any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
</sequence>
<attribute type="csapi:UUID" name="id" use="optional">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
The ID of the shared IP group. The attribute should not
be specified when creating a new shared IP group.
</p>
</xsd:documentation>
</annotation>
</attribute>
<attribute type="xsd:string" name="name" use="required">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
The name of the shared IP group.
</p>
</xsd:documentation>
</annotation>
</attribute>
<anyAttribute namespace="##other" processContents="lax"/>
</complexType>
<complexType name="SharedIpGroups">
<sequence>
<element name="sharedIpGroup" type="csapi:SharedIpGroup" minOccurs="0" maxOccurs="1000">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
A collection of shared IP groups.
</p>
</xsd:documentation>
</annotation>
</element>
<element vc:minVersion="1.1" ref="atom:link" minOccurs="0" maxOccurs="unbounded" />
<any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
</sequence>
<anyAttribute namespace="##other" processContents="lax"/>
</complexType>
<complexType name="ServerIDList">
<sequence>
<element name="server" type="csapi:ServerID" minOccurs="0" maxOccurs="25">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
A collection of servers within a shared IP group.
</p>
</xsd:documentation>
</annotation>
</element>
<any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
</sequence>
<anyAttribute namespace="##other" processContents="lax"/>
</complexType>
<complexType name="ServerID">
<sequence>
<any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
</sequence>
<attribute name="id" type="csapi:UUID" use="required">
<annotation>
<xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
The ID of a server within a shared IP group.
</p>
</xsd:documentation>
</annotation>
</attribute>
<anyAttribute namespace="##other" processContents="lax"/>
</complexType>
</schema>

Some files were not shown because too many files have changed in this diff Show More