summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYogeshwar Srikrishnan <yoga80@yahoo.com>2011-08-14 02:30:06 -0500
committerZiad Sawalha <github@highbridgellc.com>2011-08-14 10:39:50 -0500
commitdd346967e1cd9e9c55e901cd2b03f4dc8f058b09 (patch)
tree1356a1b869663af81eaa008959b5c1fae54c9ebf
parenta9d5441ac83a4478cc7f0631d4d983d04a2737e9 (diff)
Ziads changes and fixes for them.
Change-Id: I86f3dc08ffb602c74491821d37adab0088fe3948 PEP8 Change-Id: Ia4db15cbcf6bdcd8e5537943d94b371c7260a9dc
-rw-r--r--keystone/content/common.ent56
-rw-r--r--keystone/content/identity-admin.wadl1448
-rw-r--r--keystone/content/identity.wadl1342
-rw-r--r--keystone/content/identityadminguide.pdfbin0 -> 305127 bytes
-rw-r--r--keystone/content/samples/auth.json68
-rw-r--r--keystone/content/samples/auth.xml55
-rw-r--r--keystone/content/version-admin.json.tpl33
-rw-r--r--keystone/content/version-admin.xml.tpl23
-rw-r--r--keystone/content/xsd/services.xsd8
-rw-r--r--keystone/content/xsd/tenant.xsd7
-rw-r--r--keystone/controllers/staticfiles.py8
-rw-r--r--keystone/controllers/version.py7
-rwxr-xr-xkeystone/routers/admin.py39
-rw-r--r--keystone/routers/service.py39
-rw-r--r--keystone/test/functional/test_static_files.py23
15 files changed, 1854 insertions, 1302 deletions
diff --git a/keystone/content/common.ent b/keystone/content/common.ent
new file mode 100644
index 00000000..0dc6ddbe
--- /dev/null
+++ b/keystone/content/common.ent
@@ -0,0 +1,56 @@
+
+ <!--
+ 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="identity:identityFault"/>
+ <representation mediaType="application/json"/>
+ </response>
+ <response status="503" xmlns="http://wadl.dev.java.net/2009/02">
+ <representation mediaType="application/xml" element="identity:serviceUnavailable"/>
+ <representation mediaType="applicaiton/json"/>
+ </response>
+ <response status="401" xmlns="http://wadl.dev.java.net/2009/02">
+ <representation mediaType="application/xml" element="identity:unauthorized"/>
+ <representation mediaType="applicaiton/json"/>
+ </response>
+ <response status="403" xmlns="http://wadl.dev.java.net/2009/02">
+ <representation mediaType="application/xml" element="identity:forbidden"/>
+ <representation mediaType="applicaiton/json"/>
+ </response>
+ <response status="400" xmlns="http://wadl.dev.java.net/2009/02">
+ <representation mediaType="application/xml" element="identity:badRequest"/>
+ <representation mediaType="applicaiton/json"/>
+ </response>
+ <response status="405" xmlns="http://wadl.dev.java.net/2009/02">
+ <representation mediaType="application/xml" element="identity:badMethod"/>
+ <representation mediaType="applicaiton/json"/>
+ </response>
+ <response status="413" xmlns="http://wadl.dev.java.net/2009/02">
+ <representation mediaType="application/xml" element="identity: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="identity: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="identity:badMediaType"/>
+ <representation mediaType="applicaiton/json"/>
+ </response>
+ '>
diff --git a/keystone/content/identity-admin.wadl b/keystone/content/identity-admin.wadl
new file mode 100644
index 00000000..fe96f78e
--- /dev/null
+++ b/keystone/content/identity-admin.wadl
@@ -0,0 +1,1448 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<application xmlns="http://wadl.dev.java.net/2009/02" xmlns:identity="http://docs.openstack.org/identity/api/v2.0" xmlns:capi="http://docs.openstack.org/common/api/v2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:schemaLocation="http://docs.openstack.org/identity/api/v2.0 xsd/api.xsd http://docs.openstack.org/common/api/v1.0 xsd/api-common.xsd ">
+
+ <grammars>
+ <include href="xsd/api.xsd"/>
+ <include href="xsd/api-common.xsd"/>
+ </grammars>
+
+ <!--*******************************************************-->
+ <!-- All Resoruces -->
+ <!--*******************************************************-->
+
+ <!-- We should use SSL in production -->
+ <resources base="http://localhost:5000">
+ <resource id="version" type="#VersionDetails" path="v2.0/">
+ <resource id="extensions" type="#ExtensionList" path="extensions">
+ <resource id="extension" path="{alias}">
+ <param name="alias" style="template" type="xsd:string"/>
+ <method href="#getExtension"/>
+ </resource>
+ </resource>
+ <resource id="tokens" path="tokens">
+ <method href="#authenticate"/>
+ <resource id="tokenId" path="{tokenId}">
+ <param name="X-Auth-Token" style="header" type="xsd:string" required="true">
+ <doc>
+ You need an admin token to execute this operation. The token must be valid...
+ </doc>
+ </param>
+ <param name="tokenId" style="template" type="xsd:string"/>
+ <method href="#validateToken"/>
+ <method href="#revokeToken"/>
+ </resource>
+ </resource>
+ <resource id="tenants" path="tenants">
+ <param name="X-Auth-Token" style="header" type="xsd:string" required="true"/>
+ <method href="#getTenants"/>
+ <method href="#createTenant"/>
+ <resource id="tenantId" path="{tenantId}">
+ <param name="tenantId" style="template" type="xsd:string"/>
+ <method href="#getTenant"/>
+ <method href="#updateTenant"/>
+ <method href="#deleteTenant"/>
+ <resource id="endpoints" path="endpoints">
+ <method href="#getEndpoints"/>
+ <method href="#addEndpoint"/>
+ <resource id="endpoint" path="{endpointId}">
+ <param name="endpointId" style="template" type="xsd:int"/>
+ <method href="#getEndpoint"/>
+ <method href="#deleteEndpoint"/>
+ </resource>
+ </resource>
+ </resource>
+ </resource>
+
+ <resource id="users" path="users">
+ <param name="X-Auth-Token" style="header" type="xsd:string" required="true"/>
+ <method href="#getUsers"/>
+ <method href="#createUser"/>
+ <resource id="userId" path="{userId}">
+ <param name="X-Auth-Token" style="header" type="xsd:string" required="true"/>
+ <param name="userId" style="template" type="xsd:string"/>
+ <method href="#getUser"/>
+ <method href="#updateUser"/>
+ <method href="#deleteUser"/>
+ <resource id="enabled" path="enabled">
+ <method href="#setUserEnabled"/>
+ </resource>
+ <resource id="password" path="password">
+ <method href="#setUserPassword"/>
+ </resource>
+ <resource id="tenant" path="tenant">
+ <method href="#setUserTenant"/>
+ </resource>
+ <resource id="roleRefs" path="roleRefs">
+ <method href="#getRoleRefs"/>
+ <method href="#addRoleRef"/>
+ <resource id="roleRef" path="{roleId}">
+ <param name="roleId" style="template" type="xsd:int"/>
+ <method href="#getRoleRef"/>
+ <method href="#deleteRoleRef"/>
+ </resource>
+ </resource>
+ </resource>
+ </resource>
+
+ <resource id="endpointTemplates" path="endpointTemplates">
+ <param name="X-Auth-Token" style="header" type="xsd:string" required="true"/>
+ <method href="#getEndpointTemplates"/>
+ <method href="#addEndpointTemplate"/>
+ <resource id="endpointTemplateId" path="{endpointTemplateId}">
+ <param name="X-Auth-Token" style="header" type="xsd:string" required="true"/>
+ <param name="endpointTemplateId" style="template" type="xsd:int"/>
+ <method href="#getEndpointTemplate"/>
+ <method href="#deleteEndpointTemplate"/>
+ </resource>
+ </resource>
+ <resource id="roles" path="roles">
+ <param name="X-Auth-Token" style="header" type="xsd:string" required="true"/>
+ <method href="#getRoles"/>
+ <method href="#addRole"/>
+ <resource id="roleId" path="{roleId}">
+ <param name="X-Auth-Token" style="header" type="xsd:string" required="true"/>
+ <param name="roleId" style="template" type="xsd:int"/>
+ <method href="#getRole"/>
+ <method href="#deleteRole"/>
+ </resource>
+ </resource>
+
+ <resource id="services" path="services">
+ <param name="X-Auth-Token" style="header" type="xsd:string" required="true"/>
+ <method href="#getServices"/>
+ <method href="#addService"/>
+ <resource id="serviceId" path="{serviceId}">
+ <param name="X-Auth-Token" style="header" type="xsd:string" required="true"/>
+ <param name="serviceId" style="template" type="xsd:int"/>
+ <method href="#getService"/>
+ <method href="#deleteService"/>
+ </resource>
+ </resource>
+ </resource>
+ </resources>
+
+
+ <!--*******************************************************-->
+ <!-- Resource Types -->
+ <!--*******************************************************-->
+
+ <resource_type id="VersionDetails">
+ <method href="#getVersionInfo"/>
+ </resource_type>
+
+ <resource_type id="ExtensionList">
+ <doc xml:lang="EN" title="Extension List">
+ <p xmlns="http://www.w3.org/1999/xhtml">
+ A list of supported extensions.
+ </p>
+ </doc>
+ <method href="#listExtensions"/>
+ </resource_type>
+
+
+
+ <!--*******************************************************-->
+ <!-- All Methods -->
+ <!--*******************************************************-->
+
+ <!-- Version -->
+ <method name="GET" id="versionDetails">
+ <doc xml:lang="EN" title="Version Details">
+ <p xmlns="http://www.w3.org/1999/xhtml">
+ Returns detailed information about this specific
+ version of the API.
+ </p>
+ </doc>
+ <response status="200 203">
+ <representation mediaType="application/xml" element="capi:version">
+ <param name="location" style="plain" type="xsd:anyURI" required="true" path="/capi:version/atom:link[@rel='self']/@href">
+ <link resource_type="#VersionDetails" rel="self"/>
+ </param>
+ </representation>
+ <representation mediaType="application/json"/>
+ </response>
+ <!-- Common Faults -->
+
+ <response xmlns="http://wadl.dev.java.net/2009/02">
+ <representation mediaType="application/xml" element="identity:identityFault"/>
+ <representation mediaType="application/json"/>
+ </response>
+ <response xmlns="http://wadl.dev.java.net/2009/02" status="503">
+ <representation mediaType="application/xml" element="identity:serviceUnavailable"/>
+ <representation mediaType="applicaiton/json"/>
+ </response>
+ <response xmlns="http://wadl.dev.java.net/2009/02" status="401">
+ <representation mediaType="application/xml" element="identity:unauthorized"/>
+ <representation mediaType="applicaiton/json"/>
+ </response>
+ <response xmlns="http://wadl.dev.java.net/2009/02" status="403">
+ <representation mediaType="application/xml" element="identity:forbidden"/>
+ <representation mediaType="applicaiton/json"/>
+ </response>
+ <response xmlns="http://wadl.dev.java.net/2009/02" status="400">
+ <representation mediaType="application/xml" element="identity:badRequest"/>
+ <representation mediaType="applicaiton/json"/>
+ </response>
+ <response xmlns="http://wadl.dev.java.net/2009/02" status="405">
+ <representation mediaType="application/xml" element="identity:badMethod"/>
+ <representation mediaType="applicaiton/json"/>
+ </response>
+ <response xmlns="http://wadl.dev.java.net/2009/02" status="413">
+ <representation mediaType="application/xml" element="identity:overLimit"/>
+ <representation mediaType="applicaiton/json"/>
+ </response>
+
+ </method>
+
+ <!-- Extensions -->
+ <method name="GET" id="listExtensions">
+ <doc xml:lang="EN" title="List Extensions">
+ <p xmlns="http://www.w3.org/1999/xhtml">
+ List all available extensions.
+ </p>
+ </doc>
+ <response status="200 203">
+ <representation mediaType="application/xml" element="capi:extensions">
+ <param name="next" style="plain" type="xsd:anyURI" path="/capi:extensions/atom:link[@rel='next']/@href">
+ <link resource_type="#ExtensionList" rel="next"/>
+ </param>
+ <param name="previous" style="plain" type="xsd:anyURI" path="/capi:extensions/atom:link[@rel='previous']/@href">
+ <link resource_type="#ExtensionList" rel="previous"/>
+ </param>
+ </representation>
+ <representation mediaType="application/json"/>
+ </response>
+ <!-- Common Faults -->
+
+ <response xmlns="http://wadl.dev.java.net/2009/02">
+ <representation mediaType="application/xml" element="identity:identityFault"/>
+ <representation mediaType="application/json"/>
+ </response>
+ <response xmlns="http://wadl.dev.java.net/2009/02" status="503">
+ <representation mediaType="application/xml" element="identity:serviceUnavailable"/>
+ <representation mediaType="applicaiton/json"/>
+ </response>
+ <response xmlns="http://wadl.dev.java.net/2009/02" status="401">
+ <representation mediaType="application/xml" element="identity:unauthorized"/>
+ <representation mediaType="applicaiton/json"/>
+ </response>
+ <response xmlns="http://wadl.dev.java.net/2009/02" status="403">
+ <representation mediaType="application/xml" element="identity:forbidden"/>
+ <representation mediaType="applicaiton/json"/>
+ </response>
+ <response xmlns="http://wadl.dev.java.net/2009/02" status="400">
+ <representation mediaType="application/xml" element="identity:badRequest"/>
+ <representation mediaType="applicaiton/json"/>
+ </response>
+ <response xmlns="http://wadl.dev.java.net/2009/02" status="405">
+ <representation mediaType="application/xml" element="identity:badMethod"/>
+ <representation mediaType="applicaiton/json"/>
+ </response>
+ <response xmlns="http://wadl.dev.java.net/2009/02" status="413">
+ <representation mediaType="application/xml" element="identity:overLimit"/>
+ <representation mediaType="applicaiton/json"/>
+ </response>
+
+ </method>
+
+ <method name="GET" id="getExtension">
+ <doc xml:lang="EN" title="Get Server Details">
+ <p xmlns="http://www.w3.org/1999/xhtml">
+ Get details about a specific extension.
+ </p>
+ </doc>
+ <response status="200 203">
+ <representation mediaType="application/xml" element="capi:extension"/>
+ <representation mediaType="application/json"/>
+ </response>
+ <!-- Common and GET Faults-->
+
+ <response xmlns="http://wadl.dev.java.net/2009/02">
+ <representation mediaType="application/xml" element="identity:identityFault"/>
+ <representation mediaType="application/json"/>
+ </response>
+ <response xmlns="http://wadl.dev.java.net/2009/02" status="503">
+ <representation mediaType="application/xml" element="identity:serviceUnavailable"/>
+ <representation mediaType="applicaiton/json"/>
+ </response>
+ <response xmlns="http://wadl.dev.java.net/2009/02" status="401">
+ <representation mediaType="application/xml" element="identity:unauthorized"/>
+ <representation mediaType="applicaiton/json"/>
+ </response>
+ <response xmlns="http://wadl.dev.java.net/2009/02" status="403">
+ <representation mediaType="application/xml" element="identity:forbidden"/>
+ <representation mediaType="applicaiton/json"/>
+ </response>
+ <response xmlns="http://wadl.dev.java.net/2009/02" status="400">
+ <representation mediaType="application/xml" element="identity:badRequest"/>
+ <representation mediaType="applicaiton/json"/>
+ </response>
+ <response xmlns="http://wadl.dev.java.net/2009/02" status="405">
+ <representation mediaType="application/xml" element="identity:badMethod"/>
+ <representation mediaType="applicaiton/json"/>
+ </response>
+ <response xmlns="http://wadl.dev.java.net/2009/02" status="413">
+ <representation mediaType="application/xml" element="identity:overLimit"/>
+ <representation mediaType="applicaiton/json"/>
+ </response>
+
+
+ <response xmlns="http://wadl.dev.java.net/2009/02" status="404">
+ <representation mediaType="application/xml" element="identity:itemNotFound"/>
+ <representation mediaType="applicaiton/json"/>
+ </response>
+
+ </method>
+
+
+ <!-- Token Operations -->
+ <method name="POST" id="authenticate">
+ <request>
+ <representation mediaType="application/xml" element="identity:passwordCredentials"/>
+ <representation mediaType="application/json"/>
+ </request>
+ <response status="200 203">
+ <representation mediaType="application/xml" element="identity:auth"/>
+ <representation mediaType="application/json"/>
+ </response>
+ <response status="401">
+ <representation mediaType="application/xml" element="identity:unauthorized"/>
+ </response>
+ <response status="403">
+ <representation mediaType="application/xml" element="identity:userDisabled"/>
+ </response>
+ <response status="400">
+ <representation mediaType="application/xml" element="identity:badRequest"/>
+ </response>
+ <response status="500">
+ <representation mediaType="application/xml" element="identity:identityFault"/>
+ </response>
+ <response status="503">
+ <representation mediaType="application/xml" element="identity:serviceUnavailable"/>
+ </response>
+ <response status="401 403 400 500 503">
+ <representation mediaType="application/json"/>
+ </response>
+ </method>
+
+ <method name="GET" id="validateToken">
+ <request>
+ <param name="belongsTo" style="query" required="false" type="xsd:string"/>
+ </request>
+ <response status="200 203">
+ <representation mediaType="application/xml" element="identity:auth"/>
+ <representation mediaType="application/json"/>
+ </response>
+ <response status="401">
+ <representation mediaType="application/xml" element="identity:unauthorized"/>
+ </response>
+ <response status="403">
+ <representation mediaType="application/xml" element="identity:forbidden"/>
+ <representation mediaType="application/xml" element="identity:userDisabled"/>
+ </response>
+ <response status="400">
+ <representation mediaType="application/xml" element="identity:badRequest"/>
+ </response>
+ <response status="404">
+ <representation mediaType="application/xml" element="identity:itemNotFound"/>
+ </response>
+ <response status="500">
+ <representation mediaType="application/xml" element="identity:identityFault"/>
+ </response>
+ <response status="503">
+ <representation mediaType="application/xml" element="identity:serviceUnavailable"/>
+ </response>
+ <response status="400 401 403 404 500 503">
+ <representation mediaType="application/json"/>
+ </response>
+ </method>
+
+ <method name="HEAD" id="checkToken">
+ <request>
+ </request>
+ <response status="200 203">
+ <representation mediaType="application/xml" element="identity:auth"/>
+ <representation mediaType="application/json"/>
+ </response>
+ <response status="401">
+ <representation mediaType="application/xml" element="identity:unauthorized"/>
+ </response>
+ <response status="403">
+ <representation mediaType="application/xml" element="identity:forbidden"/>
+ <representation mediaType="application/xml" element="identity:userDisabled"/>
+ </response>
+ <response status="400">
+ <representation mediaType="application/xml" element="identity:badRequest"/>
+ </response>
+ <response status="404">
+ <representation mediaType="application/xml" element="identity:itemNotFound"/>
+ </response>
+ <response status="500">
+ <representation mediaType="application/xml" element="identity:identityFault"/>
+ </response>
+ <response status="503">
+ <representation mediaType="application/xml" element="identity:serviceUnavailable"/>
+ </response>
+ <response status="400 401 403 404 500 503">
+ <representation mediaType="application/json"/>
+ </response>
+ </method>
+
+ <method name="DELETE" id="revokeToken">
+ <response status="204"/>
+ <response status="401">
+ <representation mediaType="application/xml" element="identity:unauthorized"/>
+ </response>
+ <response status="403">
+ <representation mediaType="application/xml" element="identity:forbidden"/>
+ </response>
+ <response status="400">
+ <representation mediaType="application/xml" element="identity:badRequest"/>
+ </response>
+ <response status="404">
+ <representation mediaType="application/xml" element="identity:itemNotFound"/>
+ </response>
+ <response status="500">
+ <representation mediaType="application/xml" element="identity:identityFault"/>
+ </response>
+ <response status="503">
+ <representation mediaType="application/xml" element="identity:serviceUnavailable"/>
+ </response>
+ <response status="400 401 403 404 500 503">
+ <representation mediaType="application/json"/>
+ </response>
+ </method>
+
+ <!-- Tenant Operations -->
+ <method name="GET" id="getTenants">
+ <request>
+ <param name="marker" style="query" required="false" type="xsd:string"/>
+ <param name="limit" style="query" required="false" type="xsd:int"/>
+ </request>
+ <response status="200 203">
+ <representation mediaType="application/xml" element="identity:tenants"/>
+ <representation mediaType="application/json"/>
+ </response>
+ <response status="401">
+ <representation mediaType="application/xml" element="identity:unauthorized"/>
+ </response>
+ <response status="403">
+ <representation mediaType="application/xml" element="identity:forbidden"/>
+ </response>
+ <response status="400">
+ <representation mediaType="application/xml" element="identity:badRequest"/>
+ </response>
+ <response status="404">
+ <representation mediaType="application/xml" element="identity:itemNotFound"/>
+ </response>
+ <response status="500">
+ <representation mediaType="application/xml" element="identity:identityFault"/>
+ </response>
+ <response status="503">
+ <representation mediaType="application/xml" element="identity:serviceUnavailable"/>
+ </response>
+ <response status="400 401 403 404 500 503">
+ <representation mediaType="application/json"/>
+ </response>
+ </method>
+
+ <method name="PUT" id="createTenant">
+ <request>
+ <representation mediaType="application/xml" element="identity:tenant"/>
+ <representation mediaType="application/json"/>
+ </request>
+ <response status="201">
+ <representation mediaType="application/xml" element="identity:tenant"/>
+ <representation mediaType="application/json"/>
+ </response>
+ <response status="401">
+ <representation mediaType="application/xml" element="identity:unauthorized"/>
+ </response>
+ <response status="403">
+ <representation mediaType="application/xml" element="identity:forbidden"/>
+ </response>
+ <response status="400">
+ <representation mediaType="application/xml" element="identity:badRequest"/>
+ </response>
+ <response status="409">
+ <representation mediaType="application/xml" element="identity:tenantConflict"/>
+ </response>
+ <response status="500">
+ <representation mediaType="application/xml" element="identity:identityFault"/>
+ </response>
+ <response status="503">
+ <representation mediaType="application/xml" element="identity:serviceUnavailable"/>
+ </response>
+ <response status="401 403 400 409 500 503">
+ <representation mediaType="application/json"/>
+ </response>
+ </method>
+
+ <method name="GET" id="getTenant">
+ <response status="200 203">
+ <representation mediaType="application/xml" element="identity:tenant"/>
+ <representation mediaType="application/json"/>
+ </response>
+ <response status="401">
+ <representation mediaType="application/xml" element="identity:unauthorized"/>
+ </response>
+ <response status="403">
+ <representation mediaType="application/xml" element="identity:forbidden"/>
+ </response>
+ <response status="400">
+ <representation mediaType="application/xml" element="identity:badRequest"/>
+ </response>
+ <response status="404">
+ <representation mediaType="application/xml" element="identity:itemNotFound"/>
+ </response>
+ <response status="500">
+ <representation mediaType="application/xml" element="identity:identityFault"/>
+ </response>
+ <response status="503">
+ <representation mediaType="application/xml" element="identity:serviceUnavailable"/>
+ </response>
+ <response status="400 401 403 404 500 503">
+ <representation mediaType="application/json"/>
+ </response>
+ </method>
+
+ <method name="HEAD" id="checkTenant">
+ <response status="200 203">
+ </response>
+ <response status="401">
+ </response>
+ <response status="403">
+ </response>
+ <response status="400">
+ </response>
+ <response status="404">
+ <representation mediaType="application/xml" element="identity:itemNotFound"/>
+ </response>
+ <response status="500">
+ <representation mediaType="application/xml" element="identity:identityFault"/>
+ </response>
+ <response status="503">
+ <representation mediaType="application/xml" element="identity:serviceUnavailable"/>
+ </response>
+ <response status="400 401 403 404 500 503">
+ <representation mediaType="application/json"/>
+ </response>
+ </method>
+
+ <method name="PUT" id="updateTenant">
+ <request>
+ <representation mediaType="application/xml" element="identity:tenant"/>
+ <representation mediaType="application/json"/>
+ </request>
+ <response status="200">
+ <representation mediaType="application/xml" element="identity:tenant"/>
+ <representation mediaType="application/json"/>
+ </response>
+ <response status="401">
+ <representation mediaType="application/xml" element="identity:unauthorized"/>
+ </response>
+ <response status="403">
+ <representation mediaType="application/xml" element="identity:forbidden"/>
+ </response>
+ <response status="404">
+ <representation mediaType="application/xml" element="identity:itemNotFound"/>
+ </response>
+ <response status="400">
+ <representation mediaType="application/xml" element="identity:badRequest"/>
+ </response>
+ <response status="500">
+ <representation mediaType="application/xml" element="identity:identityFault"/>
+ </response>
+ <response status="503">
+ <representation mediaType="application/xml" element="identity:serviceUnavailable"/>
+ </response>
+ <response status="401 403 404 400 500 503">
+ <representation mediaType="application/json"/>
+ </response>
+ </method>
+
+ <method name="DELETE" id="deleteTenant">
+ <response status="204"/>
+ <response status="401">
+ <representation mediaType="application/xml" element="identity:unauthorized"/>
+ </response>
+ <response status="403">
+ <representation mediaType="application/xml" element="identity:forbidden"/>
+ </response>
+ <response status="400">
+ <representation mediaType="application/xml" element="identity:badRequest"/>
+ </response>
+ <response status="404">
+ <representation mediaType="application/xml" element="identity:itemNotFound"/>
+ </response>
+ <response status="500">
+ <representation mediaType="application/xml" element="identity:identityFault"/>
+ </response>
+ <response status="503">
+ <representation mediaType="application/xml" element="identity:serviceUnavailable"/>
+ </response>
+ <response status="400 401 403 404 500 503">
+ <representation mediaType="application/json"/>
+ </response>
+ </method>
+
+ <!--User Operations-->
+ <method name="GET" id="getUsers">
+ <request>
+ <param name="marker" style="query" required="false" type="xsd:string"/>
+ <param name="limit" style="query" required="false" type="xsd:int"/>
+ </request>
+ <response status="200 203">
+ <representation mediaType="application/xml" element="identity:users"/>
+ <representation mediaType="application/json"/>
+ </response>
+ <response status="401">
+ <representation mediaType="application/xml" element="identity:unauthorized"/>
+ </response>
+ <response status="403">
+ <representation mediaType="application/xml" element="identity:forbidden"/>
+ </response>
+ <response status="400">
+ <representation mediaType="application/xml" element="identity:badRequest"/>
+ </response>
+ <response status="404">
+ <representation mediaType="application/xml" element="identity:itemNotFound"/>
+ </response>
+ <response status="500">
+ <representation mediaType="application/xml" element="identity:identityFault"/>
+ </response>
+ <response status="503">
+ <representation mediaType="application/xml" element="identity:serviceUnavailable"/>
+ </response>
+ <response status="400 401 403 404 500 503">
+ <representation mediaType="application/json"/>
+ </response>
+ </method>
+
+ <method name="PUT" id="createUser">
+ <request>
+ <representation mediaType="application/xml" element="identity:tenant"/>
+ <representation mediaType="application/json"/>
+ </request>
+ <response status="201">
+ <representation mediaType="application/xml" element="identity:tenant"/>
+ <representation mediaType="application/json"/>
+ </response>
+ <response status="401">
+ <representation mediaType="application/xml" element="identity:unauthorized"/>
+ </response>
+ <response status="403">
+ <representation mediaType="application/xml" element="identity:forbidden"/>
+ </response>
+ <response status="400">
+ <representation mediaType="application/xml" element="identity:badRequest"/>
+ </response>
+ <response status="409">
+ <representation mediaType="application/xml" element="identity:tenantConflict"/>
+ </response>
+ <response status="500">
+ <representation mediaType="application/xml" element="identity:identityFault"/>
+ </response>
+ <response status="503">
+ <representation mediaType="application/xml" element="identity:serviceUnavailable"/>
+ </response>
+ <response status="401 403 400 409 500 503">
+ <representation mediaType="application/json"/>
+ </response>
+ </method>
+
+ <method name="GET" id="getUser">
+ <response status="200 203">
+ <representation mediaType="application/xml" element="identity:user"/>
+ <representation mediaType="application/json"/>
+ </response>
+ <response status="401">
+ <representation mediaType="application/xml" element="identity:unauthorized"/>
+ </response>
+ <response status="403">
+ <representation mediaType="application/xml" element="identity:forbidden"/>
+ </response>
+ <response status="400">
+ <representation mediaType="application/xml" element="identity:badRequest"/>
+ </response>
+ <response status="404">
+ <representation mediaType="application/xml" element="identity:itemNotFound"/>
+ </response>
+ <response status="500">
+ <representation mediaType="application/xml" element="identity:identityFault"/>
+ </response>
+ <response status="503">
+ <representation mediaType="application/xml" element="identity:serviceUnavailable"/>
+ </response>
+ <response status="400 401 403 404 500 503">
+ <representation mediaType="application/json"/>
+ </response>
+ </method>
+
+ <method name="HEAD" id="checkUser">
+ <response status="200 203">
+ <representation mediaType="application/xml" element="identity:user"/>
+ <representation mediaType="application/json"/>
+ </response>
+ <response status="401">
+ <representation mediaType="application/xml" element="identity:unauthorized"/>
+ </response>
+ <response status="403">
+ <representation mediaType="application/xml" element="identity:forbidden"/>
+ </response>
+ <response status="400">
+ <representation mediaType="application/xml" element="identity:badRequest"/>
+ </response>
+ <response status="404">
+ <representation mediaType="application/xml" element="identity:itemNotFound"/>
+ </response>
+ <response status="500">
+ <representation mediaType="application/xml" element="identity:identityFault"/>
+ </response>
+ <response status="503">
+ <representation mediaType="application/xml" element="identity:serviceUnavailable"/>
+ </response>
+ <response status="400 401 403 404 500 503">
+ <representation mediaType="application/json"/>
+ </response>
+ </method>
+
+ <method name="PUT" id="updateUser">
+ <request>
+ <representation mediaType="application/xml" element="identity:tenant"/>
+ <representation mediaType="application/json"/>
+ </request>
+ <response status="200">
+ <representation mediaType="application/xml" element="identity:tenant"/>
+ <representation mediaType="application/json"/>
+ </response>
+ <response status="401">
+ <representation mediaType="application/xml" element="identity:unauthorized"/>
+ </response>
+ <response status="403">
+ <representation mediaType="application/xml" element="identity:forbidden"/>
+ </response>
+ <response status="404">
+ <representation mediaType="application/xml" element="identity:itemNotFound"/>
+ </response>
+ <response status="400">
+ <representation mediaType="application/xml" element="identity:badRequest"/>
+ </response>
+ <response status="500">
+ <representation mediaType="application/xml" element="identity:identityFault"/>
+ </response>
+ <response status="503">
+ <representation mediaType="application/xml" element="identity:serviceUnavailable"/>
+ </response>
+ <response status="401 403 404 400 500 503">
+ <representation mediaType="application/json"/>
+ </response>
+ </method>
+
+ <method name="DELETE" id="deleteUser">
+ <response status="204"/>
+ <response status="401">
+ <representation mediaType="application/xml" element="identity:unauthorized"/>
+ </response>
+ <response status="403">
+ <representation mediaType="application/xml" element="identity:forbidden"/>
+ </response>
+ <response status="400">
+ <representation mediaType="application/xml" element="identity:badRequest"/>
+ </response>
+ <response status="404">
+ <representation mediaType="application/xml" element="identity:itemNotFound"/>
+ </response>
+ <response status="500">
+ <representation mediaType="application/xml" element="identity:identityFault"/>
+ </response>
+ <response status="503">
+ <representation mediaType="application/xml" element="identity:serviceUnavailable"/>
+ </response>
+ <response status="400 401 403 404 500 503">
+ <representation mediaType="application/json"/>
+ </response>
+ </method>
+
+ <method name="PUT" id="setUserEnabled">
+ <request>
+ <representation mediaType="application/xml" element="identity:user">
+ <param name="user" style="plain" path="/" type="identity:UserWithOnlyEnabled"/>
+ </representation>
+ <representation mediaType="application/json"/>
+ </request>
+ <response status="200">
+ <representation mediaType="application/xml" element="identity:tenant"/>
+ <representation mediaType="application/json"/>
+ </response>
+ <response status="401">
+ <representation mediaType="application/xml" element="identity:unauthorized"/>
+ </response>
+ <response status="403">
+ <representation mediaType="application/xml" element="identity:forbidden"/>
+ </response>
+ <response status="404">
+ <representation mediaType="application/xml" element="identity:itemNotFound"/>
+ </response>
+ <response status="400">
+ <representation mediaType="application/xml" element="identity:badRequest"/>
+ </response>
+ <response status="500">
+ <representation mediaType="application/xml" element="identity:identityFault"/>
+ </response>
+ <response status="503">
+ <representation mediaType="application/xml" element="identity:serviceUnavailable"/>
+ </response>
+ <response status="401 403 404 400 500 503">
+ <representation mediaType="application/json"/>
+ </response>
+ </method>
+
+ <method name="PUT" id="setUserPassword">
+ <request>
+ <representation mediaType="application/xml" element="identity:user">
+ <param name="user" style="plain" path="/" type="identity:UserWithOnlyPassword"/>
+ </representation>
+ <representation mediaType="application/json"/>
+ </request>
+ <response status="200">
+ <representation mediaType="application/xml" element="identity:tenant"/>
+ <representation mediaType="application/json"/>
+ </response>
+ <response status="401">
+ <representation mediaType="application/xml" element="identity:unauthorized"/>
+ </response>
+ <response status="403">
+ <representation mediaType="application/xml" element="identity:forbidden"/>
+ </response>
+ <response status="404">
+ <representation mediaType="application/xml" element="identity:itemNotFound"/>
+ </response>
+ <response status="400">
+ <representation mediaType="application/xml" element="identity:badRequest"/>
+ </response>
+ <response status="500">
+ <representation mediaType="application/xml" element="identity:identityFault"/>
+ </response>
+ <response status="503">
+ <representation mediaType="application/xml" element="identity:serviceUnavailable"/>
+ </response>
+ <response status="401 403 404 400 500 503">
+ <representation mediaType="application/json"/>
+ </response>
+ </method>
+
+ <method name="PUT" id="setUserTenant">
+ <request>
+ <representation mediaType="application/xml" element="identity:user">
+ <param name="user" style="plain" path="/" type="identity:UserWithOnlyTenant"/>
+ </representation>
+ <representation mediaType="application/json"/>
+ </request>
+ <response status="200">
+ <representation mediaType="application/xml" element="identity:tenant"/>
+ <representation mediaType="application/json"/>
+ </response>
+ <response status="401">
+ <representation mediaType="application/xml" element="identity:unauthorized"/>
+ </response>
+ <response status="403">
+ <representation mediaType="application/xml" element="identity:forbidden"/>
+ </response>
+ <response status="404">
+ <representation mediaType="application/xml" element="identity:itemNotFound"/>
+ </response>
+ <response status="400">
+ <representation mediaType="application/xml" element="identity:badRequest"/>
+ </response>
+ <response status="500">
+ <representation mediaType="application/xml" element="identity:identityFault"/>
+ </response>
+ <response status="503">
+ <representation mediaType="application/xml" element="identity:serviceUnavailable"/>
+ </response>
+ <response status="401 403 404 400 500 503">
+ <representation mediaType="application/json"/>
+ </response>
+ </method>
+
+ <method name="GET" id="getEndpointTemplates">
+ <request>
+ <param name="serviceName" style="query" required="false" type="xsd:string"/>
+ </request>
+ <response status="200 203">
+ <representation mediaType="application/xml" element="identity:endpointTemplates"/>
+ <representation mediaType="application/json"/>
+ </response>
+ <response status="400">
+ <representation mediaType="application/xml" element="identity:badRequest"/>
+ </response>
+ <response status="401">
+ <representation mediaType="application/xml" element="identity:unauthorized"/>
+ </response>
+ <response status="403">
+ <representation mediaType="application/xml" element="identity:forbidden"/>
+ </response>
+ <response status="500">
+ <representation mediaType="application/xml" element="identity:identityFault"/>
+ </response>
+ <response status="503">
+ <representation mediaType="application/xml" element="identity:serviceUnavailable"/>
+ </response>
+ <response status="400 401 403 500 503">
+ <representation mediaType="application/json"/>
+ </response>
+ </method>
+
+ <method name="GET" id="getEndpointTemplate">
+ <response status="200 203">
+ <representation mediaType="application/xml" element="identity:endpointTemplate"/>
+ <representation mediaType="application/json"/>
+ </response>
+ <response status="400">
+ <representation mediaType="application/xml" element="identity:badRequest"/>
+ </response>
+ <response status="401">
+ <representation mediaType="application/xml" element="identity:unauthorized"/>
+ </response>
+ <response status="403">
+ <representation mediaType="application/xml" element="identity:forbidden"/>
+ </response>
+ <response status="404">
+ <representation mediaType="application/xml" element="identity:itemNotFound"/>
+ </response>
+ <response status="500">
+ <representation mediaType="application/xml" element="identity:authFault"/>
+ </response>
+ <response status="503">
+ <representation mediaType="application/xml" element="identity:serviceUnavailable"/>
+ </response>
+ <response status="400 401 403 404 500 503">
+ <representation mediaType="application/json"/>
+ </response>
+ </method>
+
+ <method name="POST" id="addEndpointTemplate">
+ <request>
+ <representation mediaType="application/xml" element="identity:role"/>
+ <representation mediaType="application/json"/>
+ </request>
+ <response status="201">
+ <representation mediaType="application/xml" element="identity:role">
+ <param name="Location" type="xsd:anyURI" style="header"/>
+ </representation>
+ <representation mediaType="application/json">
+ <param name="Location" type="xsd:anyURI" style="header"/>
+ </representation>
+ </response>
+ <response status="400">
+ <representation mediaType="application/xml" element="identity:badRequest"/>
+ </response>
+ <response status="401">
+ <representation mediaType="application/xml" element="identity:unauthorized"/>
+ </response>
+ <response status="403">
+ <representation mediaType="application/xml" element="identity:forbidden"/>
+ </response>
+ <response status="404">
+ <representation mediaType="application/xml" element="identity:itemNotFound"/>
+ </response>
+ <response status="500">
+ <representation mediaType="application/xml" element="identity:identityFault"/>
+ </response>
+ <response status="503">
+ <representation mediaType="application/xml" element="identity:serviceUnavailable"/>
+ </response>
+ <response status="400 401 403 404 500 503">
+ <representation mediaType="application/json"/>
+ </response>
+ </method>
+
+ <method name="DELETE" id="deleteEndpointTemplate">
+ <response status="204"/>
+ <response status="400">
+ <representation mediaType="application/xml" element="identity:badRequest"/>
+ </response>
+ <response status="401">
+ <representation mediaType="application/xml" element="identity:unauthorized"/>
+ </response>
+ <response status="403">
+ <representation mediaType="application/xml" element="identity:forbidden"/>
+ </response>
+ <response status="404">
+ <representation mediaType="application/xml" element="identity:itemNotFound"/>
+ </response>
+ <response status="500">
+ <representation mediaType="application/xml" element="identity:authFault"/>
+ </response>
+ <response status="503">
+ <representation mediaType="application/xml" element="identity:serviceUnavailable"/>
+ </response>
+ <response status="400 401 403 404 500 503">
+ <representation mediaType="application/json"/>
+ </response>
+ </method>
+
+ <method name="GET" id="getEndpoints">
+ <response status="200 203">
+ <representation mediaType="application/xml" element="identity:endpoints"/>
+ <representation mediaType="application/json"/>
+ </response>
+ <response status="400">
+ <representation mediaType="application/xml" element="identity:badRequest"/>
+ </response>
+ <response status="401">
+ <representation mediaType="application/xml" element="identity:unauthorized"/>
+ </response>
+ <response status="403">
+ <representation mediaType="application/xml" element="identity:forbidden"/>
+ </response>
+ <response status="500">
+ <representation mediaType="application/xml" element="identity:authFault"/>
+ </response>
+ <response status="503">
+ <representation mediaType="application/xml" element="identity:serviceUnavailable"/>
+ </response>
+ <response status="400 401 403 500 503">
+ <representation mediaType="application/json"/>
+ </response>
+ </method>
+
+ <method name="POST" id="addEndpoint">
+ <request>
+ <representation mediaType="application/xml" element="identity:endpoint"/>
+ <representation mediaType="application/json"/>
+ </request>
+ <response status="201">
+ <representation mediaType="application/xml" element="identity:endpoint">
+ <param name="Location" type="xsd:anyURI" style="header"/>
+ </representation>
+ <representation mediaType="application/json">
+ <param name="Location" type="xsd:anyURI" style="header"/>
+ </representation>
+ </response>
+ <response status="400">
+ <representation mediaType="application/xml" element="identity:badRequest"/>
+ </response>
+ <response status="401">
+ <representation mediaType="application/xml" element="identity:unauthorized"/>
+ </response>
+ <response status="403">
+ <representation mediaType="application/xml" element="identity:forbidden"/>
+ </response>
+ <response status="404">
+ <representation mediaType="application/xml" element="identity:itemNotFound"/>
+ </response>
+ <response status="500">
+ <representation mediaType="application/xml" element="identity:identityFault"/>
+ </response>
+ <response status="503">
+ <representation mediaType="application/xml" element="identity:serviceUnavailable"/>
+ </response>
+ <response status="400 401 403 404 500 503">
+ <representation mediaType="application/json"/>
+ </response>
+ </method>
+
+ <method name="GET" id="getEndpoint">
+ <response status="200 203">
+ <representation mediaType="application/xml" element="identity:endpoint"/>
+ <representation mediaType="application/json"/>
+ </response>
+ <response status="400">
+ <representation mediaType="application/xml" element="identity:badRequest"/>
+ </response>
+ <response status="401">
+ <representation mediaType="application/xml" element="identity:unauthorized"/>
+ </response>
+ <response status="403">
+ <representation mediaType="application/xml" element="identity:forbidden"/>
+ </response>
+ <response status="404">
+ <representation mediaType="application/xml" element="identity:itemNotFound"/>
+ </response>
+ <response status="500">
+ <representation mediaType="application/xml" element="identity:identityFault"/>
+ </response>
+ <response status="503">
+ <representation mediaType="application/xml" element="identity:serviceUnavailable"/>
+ </response>
+ <response status="400 401 403 404 500 503">
+ <representation mediaType="application/json"/>
+ </response>
+ </method>
+
+ <method name="DELETE" id="deleteEndpoint">
+ <response status="204"/>
+ <response status="400">
+ <representation mediaType="application/xml" element="identity:badRequest"/>
+ </response>
+ <response status="401">
+ <representation mediaType="application/xml" element="identity:unauthorized"/>
+ </response>
+ <response status="403">
+ <representation mediaType="application/xml" element="identity:forbidden"/>
+ </response>
+ <response status="404">
+ <representation mediaType="application/xml" element="identity:itemNotFound"/>
+ </response>
+ <response status="500">
+ <representation mediaType="application/xml" element="identity:authFault"/>
+ </response>
+ <response status="503">
+ <representation mediaType="application/xml" element="identity:serviceUnavailable"/>
+ </response>
+ <response status="400 401 403 404 500 503">
+ <representation mediaType="application/json"/>
+ </response>
+ </method>
+
+ <!--Roles-->
+ <method name="GET" id="getRoles">
+ <request>
+ <param name="serviceId" style="query" required="false" type="xsd:string"/>
+ </request>
+ <response status="200 203">
+ <representation mediaType="application/xml" element="identity:roles"/>
+ <representation mediaType="application/json"/>
+ </response>
+ <response status="400">
+ <representation mediaType="application/xml" element="identity:badRequest"/>
+ </response>
+ <response status="401">
+ <representation mediaType="application/xml" element="identity:unauthorized"/>
+ </response>
+ <response status="403">
+ <representation mediaType="application/xml" element="identity:forbidden"/>
+ </response>
+ <response status="500">
+ <representation mediaType="application/xml" element="identity:identityFault"/>
+ </response>
+ <response status="503">
+ <representation mediaType="application/xml" element="identity:serviceUnavailable"/>
+ </response>
+ <response status="400 401 403 500 503">
+ <representation mediaType="application/json"/>
+ </response>
+ </method>
+
+ <method name="GET" id="getRole">
+ <response status="200 203">
+ <representation mediaType="application/xml" element="identity:role"/>
+ <representation mediaType="application/json"/>
+ </response>
+ <response status="400">
+ <representation mediaType="application/xml" element="identity:badRequest"/>
+ </response>
+ <response status="401">
+ <representation mediaType="application/xml" element="identity:unauthorized"/>
+ </response>
+ <response status="403">
+ <representation mediaType="application/xml" element="identity:forbidden"/>
+ </response>
+ <response status="404">
+ <representation mediaType="application/xml" element="identity:itemNotFound"/>
+ </response>
+ <response status="500">
+ <representation mediaType="application/xml" element="identity:authFault"/>
+ </response>
+ <response status="503">
+ <representation mediaType="application/xml" element="identity:serviceUnavailable"/>
+ </response>
+ <response status="400 401 403 404 500 503">
+ <representation mediaType="application/json"/>
+ </response>
+ </method>
+
+ <method name="POST" id="addRole">
+ <request>
+ <representation mediaType="application/xml" element="identity:role"/>
+ <representation mediaType="application/json"/>
+ </request>
+ <response status="201">
+ <representation mediaType="application/xml" element="identity:role">
+ <param name="Location" type="xsd:anyURI" style="header"/>
+ </representation>
+ <representation mediaType="application/json">
+ <param name="Location" type="xsd:anyURI" style="header"/>
+ </representation>
+ </response>
+ <response status="400">
+ <representation mediaType="application/xml" element="identity:badRequest"/>
+ </response>
+ <response status="401">
+ <representation mediaType="application/xml" element="identity:unauthorized"/>
+ </response>
+ <response status="403">
+ <representation mediaType="application/xml" element="identity:forbidden"/>
+ </response>
+ <response status="404">
+ <representation mediaType="application/xml" element="identity:itemNotFound"/>
+ </response>
+ <response status="500">
+ <representation mediaType="application/xml" element="identity:identityFault"/>
+ </response>
+ <response status="503">
+ <representation mediaType="application/xml" element="identity:serviceUnavailable"/>
+ </response>
+ <response status="400 401 403 404 500 503">
+ <representation mediaType="application/json"/>
+ </response>
+ </method>
+
+ <method name="DELETE" id="deleteRole">
+ <response status="204"/>
+ <response status="400">
+ <representation mediaType="application/xml" element="identity:badRequest"/>
+ </response>
+ <response status="401">
+ <representation mediaType="application/xml" element="identity:unauthorized"/>
+ </response>
+ <response status="403">
+ <representation mediaType="application/xml" element="identity:forbidden"/>
+ </response>
+ <response status="404">
+ <representation mediaType="application/xml" element="identity:itemNotFound"/>
+ </response>
+ <response status="500">
+ <representation mediaType="application/xml" element="identity:authFault"/>
+ </response>
+ <response status="503">
+ <representation mediaType="application/xml" element="identity:serviceUnavailable"/>
+ </response>
+ <response status="400 401 403 404 500 503">
+ <representation mediaType="application/json"/>
+ </response>
+ </method>
+
+ <method name="GET" id="getRoleRefs">
+ <response status="200 203">
+ <representation mediaType="application/xml" element="identity:roleRefs"/>
+ <representation mediaType="application/json"/>
+ </response>
+ <response status="400">
+ <representation mediaType="application/xml" element="identity:badRequest"/>
+ </response>
+ <response status="401">
+ <representation mediaType="application/xml" element="identity:unauthorized"/>
+ </response>
+ <response status="403">
+ <representation mediaType="application/xml" element="identity:forbidden"/>
+ </response>
+ <response status="500">
+ <representation mediaType="application/xml" element="identity:authFault"/>
+ </response>
+ <response status="503">
+ <representation mediaType="application/xml" element="identity:serviceUnavailable"/>
+ </response>
+ <response status="400 401 403 500 503">
+ <representation mediaType="application/json"/>
+ </response>
+ </method>
+
+ <method name="POST" id="addRoleRef">
+ <request>
+ <representation mediaType="application/xml" element="identity:roleRef"/>
+ <representation mediaType="application/json"/>
+ </request>
+ <response status="201">
+ <representation mediaType="application/xml" element="identity:roleRef">
+ <param name="Location" type="xsd:anyURI" style="header"/>
+ </representation>
+ <representation mediaType="application/json">
+ <param name="Location" type="xsd:anyURI" style="header"/>
+ </representation>
+ </response>
+ <response status="400">
+ <representation mediaType="application/xml" element="identity:badRequest"/>
+ </response>
+ <response status="401">
+ <representation mediaType="application/xml" element="identity:unauthorized"/>
+ </response>
+ <response status="403">
+ <representation mediaType="application/xml" element="identity:forbidden"/>
+ </response>
+ <response status="404">
+ <representation mediaType="application/xml" element="identity:itemNotFound"/>
+ </response>
+ <response status="500">
+ <representation mediaType="application/xml" element="identity:identityFault"/>
+ </response>
+ <response status="503">
+ <representation mediaType="application/xml" element="identity:serviceUnavailable"/>
+ </response>
+ <response status="400 401 403 404 500 503">
+ <representation mediaType="application/json"/>
+ </response>
+ </method>
+
+ <method name="GET" id="getRoleRef">
+ <response status="200 203">
+ <representation mediaType="application/xml" element="identity:roleRef"/>
+ <representation mediaType="application/json"/>
+ </response>
+ <response status="400">
+ <representation mediaType="application/xml" element="identity:badRequest"/>
+ </response>
+ <response status="401">
+ <representation mediaType="application/xml" element="identity:unauthorized"/>
+ </response>
+ <response status="403">
+ <representation mediaType="application/xml" element="identity:forbidden"/>
+ </response>
+ <response status="404">
+ <representation mediaType="application/xml" element="identity:itemNotFound"/>
+ </response>
+ <response status="500">
+ <representation mediaType="application/xml" element="identity:identityFault"/>
+ </response>
+ <response status="503">
+ <representation mediaType="application/xml" element="identity:serviceUnavailable"/>
+ </response>
+ <response status="400 401 403 404 500 503">
+ <representation mediaType="application/json"/>
+ </response>
+ </method>
+
+ <method name="DELETE" id="deleteRoleRef">
+ <response status="204"/>
+ <response status="400">
+ <representation mediaType="application/xml" element="identity:badRequest"/>
+ </response>
+ <response status="401">
+ <representation mediaType="application/xml" element="identity:unauthorized"/>
+ </response>
+ <response status="403">
+ <representation mediaType="application/xml" element="identity:forbidden"/>
+ </response>
+ <response status="404">
+ <representation mediaType="application/xml" element="identity:itemNotFound"/>
+ </response>
+ <response status="500">
+ <representation mediaType="application/xml" element="identity:authFault"/>
+ </response>
+ <response status="503">
+ <representation mediaType="application/xml" element="identity:serviceUnavailable"/>
+ </response>
+ <response status="400 401 403 404 500 503">
+ <representation mediaType="application/json"/>
+ </response>
+ </method>
+
+ <method name="GET" id="getServices">
+ <request>
+ <param name="serviceId" style="query" required="false" type="xsd:string"/>
+ </request>
+ <response status="200 203">
+ <representation mediaType="application/xml" element="identity:services"/>
+ <representation mediaType="application/json"/>
+ </response>
+ <response status="400">
+ <representation mediaType="application/xml" element="identity:badRequest"/>
+ </response>
+ <response status="401">
+ <representation mediaType="application/xml" element="identity:unauthorized"/>
+ </response>
+ <response status="403">
+ <representation mediaType="application/xml" element="identity:forbidden"/>
+ </response>
+ <response status="500">
+ <representation mediaType="application/xml" element="identity:identityFault"/>
+ </response>
+ <response status="503">
+ <representation mediaType="application/xml" element="identity:serviceUnavailable"/>
+ </response>
+ <response status="400 401 403 500 503">
+ <representation mediaType="application/json"/>
+ </response>
+ </method>
+
+ <method name="GET" id="getService">
+ <response status="200 203">
+ <representation mediaType="application/xml" element="identity:service"/>
+ <representation mediaType="application/json"/>
+ </response>
+ <response status="400">
+ <representation mediaType="application/xml" element="identity:badRequest"/>
+ </response>
+ <response status="401">
+ <representation mediaType="application/xml" element="identity:unauthorized"/>
+ </response>
+ <response status="403">
+ <representation mediaType="application/xml" element="identity:forbidden"/>
+ </response>
+ <response status="404">
+ <representation mediaType="application/xml" element="identity:itemNotFound"/>
+ </response>
+ <response status="500">
+ <representation mediaType="application/xml" element="identity:authFault"/>
+ </response>
+ <response status="503">
+ <representation mediaType="application/xml" element="identity:serviceUnavailable"/>
+ </response>
+ <response status="400 401 403 404 500 503">
+ <representation mediaType="application/json"/>
+ </response>
+ </method>
+
+ <method name="POST" id="addService">
+ <request>
+ <representation mediaType="application/xml" element="identity:service"/>
+ <representation mediaType="application/json"/>
+ </request>
+ <response status="201">
+ <representation mediaType="application/xml" element="identity:service">
+ <param name="Location" type="xsd:anyURI" style="header"/>
+ </representation>
+ <representation mediaType="application/json">
+ <param name="Location" type="xsd:anyURI" style="header"/>
+ </representation>
+ </response>
+ <response status="400">
+ <representation mediaType="application/xml" element="identity:badRequest"/>
+ </response>
+ <response status="401">
+ <representation mediaType="application/xml" element="identity:unauthorized"/>
+ </response>
+ <response status="403">
+ <representation mediaType="application/xml" element="identity:forbidden"/>
+ </response>
+ <response status="404">
+ <representation mediaType="application/xml" element="identity:itemNotFound"/>
+ </response>
+ <response status="500">
+ <representation mediaType="application/xml" element="identity:identityFault"/>
+ </response>
+ <response status="503">
+ <representation mediaType="application/xml" element="identity:serviceUnavailable"/>
+ </response>
+ <response status="400 401 403 404 500 503">
+ <representation mediaType="application/json"/>
+ </response>
+ </method>
+
+ <method name="DELETE" id="deleteService">
+ <response status="204"/>
+ <response status="400">
+ <representation mediaType="application/xml" element="identity:badRequest"/>
+ </response>
+ <response status="401">
+ <representation mediaType="application/xml" element="identity:unauthorized"/>
+ </response>
+ <response status="403">
+ <representation mediaType="application/xml" element="identity:forbidden"/>
+ </response>
+ <response status="404">
+ <representation mediaType="application/xml" element="identity:itemNotFound"/>
+ </response>
+ <response status="500">
+ <representation mediaType="application/xml" element="identity:authFault"/>
+ </response>
+ <response status="503">
+ <representation mediaType="application/xml" element="identity:serviceUnavailable"/>
+ </response>
+ <response status="400 401 403 404 500 503">
+ <representation mediaType="application/json"/>
+ </response>
+ </method>
+</application>
diff --git a/keystone/content/identity.wadl b/keystone/content/identity.wadl
index ce7216c3..c38a7435 100644
--- a/keystone/content/identity.wadl
+++ b/keystone/content/identity.wadl
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-
+<!-- (C) 2011 OpenStack LLC., All Rights Reserved -->
<application xmlns="http://wadl.dev.java.net/2009/02"
xmlns:identity="http://docs.openstack.org/identity/api/v2.0"
xmlns:capi="http://docs.openstack.org/common/api/v2.0"
@@ -16,1304 +16,252 @@
<include href="xsd/api-common.xsd"/>
</grammars>
+
+ <!--*******************************************************-->
+ <!-- All Resoruces -->
+ <!--*******************************************************-->
+
<!-- We should use SSL in production -->
<resources base="http://localhost:5000">
- <resource id="version" path="v2.0">
- <method href="#getVersionInfo"/>
- <resource id="extensions" path="extensions">
- <method href="#getExtensions"/>
- <resource id="alias" path="{alias}">
+ <resource id="version" type="#VersionDetails" path="v2.0/">
+ <resource id="extensions" type="#ExtensionList" path="extensions">
+ <resource id="extension" path="{alias}">
<param name="alias" style="template" type="xsd:string"/>
<method href="#getExtension"/>
</resource>
</resource>
<resource id="tokens" path="tokens">
- <method href="#authenticate" />
- <resource id="tokenId" path="{tokenId}">
- <param name="X-Auth-Token" style="header" type="xsd:string" required="true">
- <doc>
- You need an admin token to execute this operation. The token must be valid...
- </doc>
- </param>
- <param name="tokenId" style="template" type="xsd:string"/>
- <method href="#validateToken"/>
- <method href="#revokeToken"/>
- </resource>
+ <method href="#authenticate"/>
</resource>
<resource id="tenants" path="tenants">
- <param name="X-Auth-Token" style="header" type="xsd:string" required="true"/>
- <method href="#getTenants" />
- <method href="#createTenant" />
- <resource id="tenantId" path="{tenantId}">
- <param name="tenantId" style="template" type="xsd:string"/>
- <method href="#getTenant" />
- <method href="#updateTenant" />
- <method href="#deleteTenant" />
- <resource id="endpoints" path="endpoints">
- <method href="#getEndpoints"/>
- <method href="#addEndpoint"/>
- <resource id="endpoint" path="{endpointId}">
- <param name="endpointId" style="template" type="xsd:int"/>
- <method href="#getEndpoint"/>
- <method href="#deleteEndpoint"/>
- </resource>
- </resource>
- </resource>
- </resource>
-
- <resource id="users" path="users">
- <param name="X-Auth-Token" style="header" type="xsd:string" required="true"/>
- <method href="#getUsers" />
- <method href="#createUser" />
- <resource id="userId" path="{userId}">
- <param name="X-Auth-Token" style="header" type="xsd:string" required="true"/>
- <param name="userId" style="template" type="xsd:string"/>
- <method href="#getUser" />
- <method href="#updateUser" />
- <method href="#deleteUser" />
- <resource id="enabled" path="enabled">
- <method href="#setUserEnabled"/>
- </resource>
- <resource id="password" path="password">
- <method href="#setUserPassword"/>
- </resource>
- <resource id="tenant" path="tenant">
- <method href="#setUserTenant"/>
- </resource>
- <resource id="roleRefs" path="roleRefs">
- <method href="#getRoleRefs"/>
- <method href="#addRoleRef"/>
- <resource id="roleRef" path="{roleId}">
- <param name="roleId" style="template" type="xsd:int"/>
- <method href="#getRoleRef"/>
- <method href="#deleteRoleRef"/>
- </resource>
- </resource>
- </resource>
- </resource>
-
- <resource id="endpointTemplates" path="endpointTemplates">
- <param name="X-Auth-Token" style="header" type="xsd:string" required="true"/>
- <method href="#getEndpointTemplates"/>
- <method href="#addEndpointTemplate"/>
- <resource id="endpointTemplateId" path="{endpointTemplateId}">
- <param name="X-Auth-Token" style="header" type="xsd:string" required="true"/>
- <param name="endpointTemplateId" style="template" type="xsd:int"/>
- <method href="#getEndpointTemplate"/>
- <method href="#deleteEndpointTemplate"/>
- </resource>
- </resource>
- <resource id="roles" path="roles">
- <param name="X-Auth-Token" style="header" type="xsd:string" required="true"/>
- <method href="#getRoles"/>
- <method href="#addRole"/>
- <resource id="roleId" path="{roleId}">
- <param name="X-Auth-Token" style="header" type="xsd:string" required="true"/>
- <param name="roleId" style="template" type="xsd:int"/>
- <method href="#getRole"/>
- <method href="#deleteRole"/>
- </resource>
- </resource>
-
- <resource id="services" path="services">
- <param name="X-Auth-Token" style="header" type="xsd:string" required="true"/>
- <method href="#getServices"/>
- <method href="#addService"/>
- <resource id="serviceId" path="{serviceId}">
- <param name="X-Auth-Token" style="header" type="xsd:string" required="true"/>
- <param name="serviceId" style="template" type="xsd:int"/>
- <method href="#getService"/>
- <method href="#deleteService"/>
- </resource>
+ <param name="X-Auth-Token" style="header" type="xsd:string" required="true"/>
+ <method href="#getTenants"/>
</resource>
</resource>
</resources>
- <!-- Extensions -->
- <method name="GET" id="getExtensions">
- <response status="200 203">
- <representation mediaType="application/xml" element="capi:extensions"/>
- <representation mediaType="application/json"/>
- </response>
- <response status="400">
- <representation mediaType="application/xml" element="identity:badRequest"/>
- </response>
- <response status="500">
- <representation mediaType="application/xml" element="identity:identityFault"/>
- </response>
- <response status="503">
- <representation mediaType="application/xml" element="identity:serviceUnavailable"/>
- </response>
- <response status="400 500 503">
- <representation mediaType="application/json"/>
- </response>
- </method>
- <method name="GET" id="getExtension">
- <response status="200 203">
- <representation mediaType="application/xml" element="capi:extension"/>
- <representation mediaType="application/json"/>
- </response>
- <response status="400">
- <representation mediaType="application/xml" element="identity:badRequest"/>
- </response>
- <response status="404">
- <representation mediaType="application/xml" element="identity:itemNotFound"/>
- </response>
- <response status="500">
- <representation mediaType="application/xml" element="identity:identityFault"/>
- </response>
- <response status="503">
- <representation mediaType="application/xml" element="identity:serviceUnavailable"/>
- </response>
- <response status="400 404 500 503">
- <representation mediaType="application/json"/>
- </response>
- </method>
+ <!--***************************************************-->
+ <!-- Resource Types -->
+ <!--*******************************************************-->
- <!-- Version Info -->
- <method name="GET" id="getVersionInfo">
- <response status="200 203">
- <representation mediaType="application/xml" element="capi:version"/>
- <representation mediaType="application/json"/>
- </response>
- <response status="400">
- <representation mediaType="application/xml" element="identity:badRequest"/>
- </response>
- <response status="500">
- <representation mediaType="application/xml" element="identity:identityFault"/>
- </response>
- <response status="503">
- <representation mediaType="application/xml" element="identity:serviceUnavailable"/>
- </response>
- <response status="400 500 503">
- <representation mediaType="application/json"/>
- </response>
- </method>
+ <resource_type id="VersionDetails">
+ <method href="#getVersionInfo"/>
+ </resource_type>
- <!-- Token Operations -->
- <method name="POST" id="authenticate">
- <request>
- <representation mediaType="application/xml" element="identity:passwordCredentials"/>
- <representation mediaType="application/json"/>
- </request>
- <response status="200 203">
- <representation mediaType="application/xml" element="identity:auth"/>
- <representation mediaType="application/json"/>
- </response>
- <response status="401">
- <representation mediaType="application/xml" element="identity:unauthorized"/>
- </response>
- <response status="403">
- <representation mediaType="application/xml" element="identity:userDisabled"/>
- </response>
- <response status="400">
- <representation mediaType="application/xml" element="identity:badRequest"/>
- </response>
- <response status="500">
- <representation mediaType="application/xml" element="identity:identityFault"/>
- </response>
- <response status="503">
- <representation mediaType="application/xml" element="identity:serviceUnavailable"/>
- </response>
- <response status="401 403 400 500 503">
- <representation mediaType="application/json"/>
- </response>
- </method>
+ <resource_type id="ExtensionList">
+ <doc xml:lang="EN" title="Extension List">
+ <p xmlns="http://www.w3.org/1999/xhtml">
+ A list of supported extensions.
+ </p>
+ </doc>
+ <method href="#listExtensions"/>
+ </resource_type>
- <method name="GET" id="validateToken">
- <request>
- <param name="belongsTo" style="query"
- required="false" type="xsd:string"/>
- </request>
- <response status="200 203">
- <representation mediaType="application/xml" element="identity:auth"/>
- <representation mediaType="application/json"/>
- </response>
- <response status="401">
- <representation mediaType="application/xml" element="identity:unauthorized"/>
- </response>
- <response status="403">
- <representation mediaType="application/xml" element="identity:forbidden"/>
- <representation mediaType="application/xml" element="identity:userDisabled"/>
- </response>
- <response status="400">
- <representation mediaType="application/xml" element="identity:badRequest"/>
- </response>
- <response status="404">
- <representation mediaType="application/xml" element="identity:itemNotFound"/>
- </response>
- <response status="500">
- <representation mediaType="application/xml" element="identity:identityFault"/>
- </response>
- <response status="503">
- <representation mediaType="application/xml" element="identity:serviceUnavailable"/>
- </response>
- <response status="400 401 403 404 500 503">
- <representation mediaType="application/json"/>
- </response>
- </method>
-
- <method name="HEAD" id="checkToken">
- <request>
- </request>
- <response status="200 203">
- <representation mediaType="application/xml" element="identity:auth"/>
- <representation mediaType="application/json"/>
- </response>
- <response status="401">
- <representation mediaType="application/xml" element="identity:unauthorized"/>
- </response>
- <response status="403">
- <representation mediaType="application/xml" element="identity:forbidden"/>
- <representation mediaType="application/xml" element="identity:userDisabled"/>
- </response>
- <response status="400">
- <representation mediaType="application/xml" element="identity:badRequest"/>
- </response>
- <response status="404">
- <representation mediaType="application/xml" element="identity:itemNotFound"/>
- </response>
- <response status="500">
- <representation mediaType="application/xml" element="identity:identityFault"/>
- </response>
- <response status="503">
- <representation mediaType="application/xml" element="identity:serviceUnavailable"/>
- </response>
- <response status="400 401 403 404 500 503">
- <representation mediaType="application/json"/>
- </response>
- </method>
-
- <method name="DELETE" id="revokeToken">
- <response status="204"/>
- <response status="401">
- <representation mediaType="application/xml" element="identity:unauthorized"/>
- </response>
- <response status="403">
- <representation mediaType="application/xml" element="identity:forbidden"/>
- </response>
- <response status="400">
- <representation mediaType="application/xml" element="identity:badRequest"/>
- </response>
- <response status="404">
- <representation mediaType="application/xml" element="identity:itemNotFound"/>
- </response>
- <response status="500">
- <representation mediaType="application/xml" element="identity:identityFault"/>
- </response>
- <response status="503">
- <representation mediaType="application/xml" element="identity:serviceUnavailable"/>
- </response>
- <response status="400 401 403 404 500 503">
- <representation mediaType="application/json"/>
- </response>
- </method>
-
- <!-- Tenant Operations -->
- <method name="GET" id="getTenants">
- <request>
- <param name="marker" style="query"
- required="false" type="xsd:string"/>
- <param name="limit" style="query"
- required="false" type="xsd:int"/>
- </request>
- <response status="200 203">
- <representation mediaType="application/xml" element="identity:tenants"/>
- <representation mediaType="application/json"/>
- </response>
- <response status="401">
- <representation mediaType="application/xml" element="identity:unauthorized"/>
- </response>
- <response status="403">
- <representation mediaType="application/xml" element="identity:forbidden"/>
- </response>
- <response status="400">
- <representation mediaType="application/xml" element="identity:badRequest"/>
- </response>
- <response status="404">
- <representation mediaType="application/xml" element="identity:itemNotFound"/>
- </response>
- <response status="500">
- <representation mediaType="application/xml" element="identity:identityFault"/>
- </response>
- <response status="503">
- <representation mediaType="application/xml" element="identity:serviceUnavailable"/>
- </response>
- <response status="400 401 403 404 500 503">
- <representation mediaType="application/json"/>
- </response>
- </method>
-
- <method name="PUT" id="createTenant">
- <request>
- <representation mediaType="application/xml" element="identity:tenant"/>
- <representation mediaType="application/json"/>
- </request>
- <response status="201">
- <representation mediaType="application/xml" element="identity:tenant"/>
- <representation mediaType="application/json"/>
- </response>
- <response status="401">
- <representation mediaType="application/xml" element="identity:unauthorized"/>
- </response>
- <response status="403">
- <representation mediaType="application/xml" element="identity:forbidden"/>
- </response>
- <response status="400">
- <representation mediaType="application/xml" element="identity:badRequest"/>
- </response>
- <response status="409">
- <representation mediaType="application/xml" element="identity:tenantConflict"/>
- </response>
- <response status="500">
- <representation mediaType="application/xml" element="identity:identityFault"/>
- </response>
- <response status="503">
- <representation mediaType="application/xml" element="identity:serviceUnavailable"/>
- </response>
- <response status="401 403 400 409 500 503">
- <representation mediaType="application/json"/>
- </response>
- </method>
-
- <method name="GET" id="getTenant">
- <response status="200 203">
- <representation mediaType="application/xml" element="identity:tenant"/>
- <representation mediaType="application/json"/>
- </response>
- <response status="401">
- <representation mediaType="application/xml" element="identity:unauthorized"/>
- </response>
- <response status="403">
- <representation mediaType="application/xml" element="identity:forbidden"/>
- </response>
- <response status="400">
- <representation mediaType="application/xml" element="identity:badRequest"/>
- </response>
- <response status="404">
- <representation mediaType="application/xml" element="identity:itemNotFound"/>
- </response>
- <response status="500">
- <representation mediaType="application/xml" element="identity:identityFault"/>
- </response>
- <response status="503">
- <representation mediaType="application/xml" element="identity:serviceUnavailable"/>
- </response>
- <response status="400 401 403 404 500 503">
- <representation mediaType="application/json"/>
- </response>
- </method>
- <method name="HEAD" id="checkTenant">
- <response status="200 203">
- </response>
- <response status="401">
- </response>
- <response status="403">
- </response>
- <response status="400">
- </response>
- <response status="404">
- <representation mediaType="application/xml" element="identity:itemNotFound"/>
- </response>
- <response status="500">
- <representation mediaType="application/xml" element="identity:identityFault"/>
- </response>
- <response status="503">
- <representation mediaType="application/xml" element="identity:serviceUnavailable"/>
- </response>
- <response status="400 401 403 404 500 503">
- <representation mediaType="application/json"/>
- </response>
- </method>
- <method name="PUT" id="updateTenant">
- <request>
- <representation mediaType="application/xml" element="identity:tenant"/>
- <representation mediaType="application/json"/>
- </request>
- <response status="200">
- <representation mediaType="application/xml" element="identity:tenant"/>
- <representation mediaType="application/json"/>
- </response>
- <response status="401">
- <representation mediaType="application/xml" element="identity:unauthorized"/>
- </response>
- <response status="403">
- <representation mediaType="application/xml" element="identity:forbidden"/>
- </response>
- <response status="404">
- <representation mediaType="application/xml" element="identity:itemNotFound"/>
- </response>
- <response status="400">
- <representation mediaType="application/xml" element="identity:badRequest"/>
- </response>
- <response status="500">
- <representation mediaType="application/xml" element="identity:identityFault"/>
- </response>
- <response status="503">
- <representation mediaType="application/xml" element="identity:serviceUnavailable"/>
- </response>
- <response status="401 403 404 400 500 503">
- <representation mediaType="application/json"/>
- </response>
- </method>
+ <!--*******************************************************-->
+ <!-- All Methods -->
+ <!--*******************************************************-->
- <method name="DELETE" id="deleteTenant">
- <response status="204"/>
- <response status="401">
- <representation mediaType="application/xml" element="identity:unauthorized"/>
- </response>
- <response status="403">
- <representation mediaType="application/xml" element="identity:forbidden"/>
- </response>
- <response status="400">
- <representation mediaType="application/xml" element="identity:badRequest"/>
- </response>
- <response status="404">
- <representation mediaType="application/xml" element="identity:itemNotFound"/>
- </response>
- <response status="500">
- <representation mediaType="application/xml" element="identity:identityFault"/>
- </response>
- <response status="503">
- <representation mediaType="application/xml" element="identity:serviceUnavailable"/>
- </response>
- <response status="400 401 403 404 500 503">
- <representation mediaType="application/json"/>
- </response>
- </method>
-
- <!--User Operations-->
- <method name="GET" id="getUsers">
- <request>
- <param name="marker" style="query"
- required="false" type="xsd:string"/>
- <param name="limit" style="query"
- required="false" type="xsd:int"/>
- </request>
+ <!-- Version -->
+ <method name="GET" id="versionDetails">
+ <doc xml:lang="EN" title="Version Details">
+ <p xmlns="http://www.w3.org/1999/xhtml">
+ Returns detailed information about this specific
+ version of the API.
+ </p>
+ </doc>
<response status="200 203">
- <representation mediaType="application/xml" element="identity:users"/>
+ <representation mediaType="application/xml" element="capi:version">
+ <param name="location" style="plain" type="xsd:anyURI" required="true" path="/capi:version/atom:link[@rel='self']/@href">
+ <link resource_type="#VersionDetails" rel="self"/>
+ </param>
+ </representation>
<representation mediaType="application/json"/>
</response>
- <response status="401">
- <representation mediaType="application/xml" element="identity:unauthorized"/>
- </response>
- <response status="403">
- <representation mediaType="application/xml" element="identity:forbidden"/>
- </response>
- <response status="400">
- <representation mediaType="application/xml" element="identity:badRequest"/>
- </response>
- <response status="404">
- <representation mediaType="application/xml" element="identity:itemNotFound"/>
- </response>
- <response status="500">
+ <!-- Common Faults -->
+
+ <response xmlns="http://wadl.dev.java.net/2009/02">
<representation mediaType="application/xml" element="identity:identityFault"/>
- </response>
- <response status="503">
- <representation mediaType="application/xml" element="identity:serviceUnavailable"/>
- </response>
- <response status="400 401 403 404 500 503">
- <representation mediaType="application/json"/>
- </response>
- </method>
-
- <method name="PUT" id="createUser">
- <request>
- <representation mediaType="application/xml" element="identity:tenant"/>
- <representation mediaType="application/json"/>
- </request>
- <response status="201">
- <representation mediaType="application/xml" element="identity:tenant"/>
<representation mediaType="application/json"/>
</response>
- <response status="401">
- <representation mediaType="application/xml" element="identity:unauthorized"/>
- </response>
- <response status="403">
- <representation mediaType="application/xml" element="identity:forbidden"/>
- </response>
- <response status="400">
- <representation mediaType="application/xml" element="identity:badRequest"/>
- </response>
- <response status="409">
- <representation mediaType="application/xml" element="identity:tenantConflict"/>
- </response>
- <response status="500">
- <representation mediaType="application/xml" element="identity:identityFault"/>
- </response>
- <response status="503">
+ <response xmlns="http://wadl.dev.java.net/2009/02" status="503">
<representation mediaType="application/xml" element="identity:serviceUnavailable"/>
+ <representation mediaType="applicaiton/json"/>
</response>
- <response status="401 403 400 409 500 503">
- <representation mediaType="application/json"/>
- </response>
- </method>
-
- <method name="GET" id="getUser">
- <response status="200 203">
- <representation mediaType="application/xml" element="identity:user"/>
- <representation mediaType="application/json"/>
- </response>
- <response status="401">
+ <response xmlns="http://wadl.dev.java.net/2009/02" status="401">
<representation mediaType="application/xml" element="identity:unauthorized"/>
+ <representation mediaType="applicaiton/json"/>
</response>
- <response status="403">
+ <response xmlns="http://wadl.dev.java.net/2009/02" status="403">
<representation mediaType="application/xml" element="identity:forbidden"/>
+ <representation mediaType="applicaiton/json"/>
</response>
- <response status="400">
+ <response xmlns="http://wadl.dev.java.net/2009/02" status="400">
<representation mediaType="application/xml" element="identity:badRequest"/>
+ <representation mediaType="applicaiton/json"/>
</response>
- <response status="404">
- <representation mediaType="application/xml" element="identity:itemNotFound"/>
+ <response xmlns="http://wadl.dev.java.net/2009/02" status="405">
+ <representation mediaType="application/xml" element="identity:badMethod"/>
+ <representation mediaType="applicaiton/json"/>
</response>
- <response status="500">
- <representation mediaType="application/xml" element="identity:identityFault"/>
- </response>
- <response status="503">
- <representation mediaType="application/xml" element="identity:serviceUnavailable"/>
- </response>
- <response status="400 401 403 404 500 503">
- <representation mediaType="application/json"/>
+ <response xmlns="http://wadl.dev.java.net/2009/02" status="413">
+ <representation mediaType="application/xml" element="identity:overLimit"/>
+ <representation mediaType="applicaiton/json"/>
</response>
+
</method>
-
- <method name="HEAD" id="checkUser">
+
+ <!-- Extensions -->
+ <method name="GET" id="listExtensions">
+ <doc xml:lang="EN" title="List Extensions">
+ <p xmlns="http://www.w3.org/1999/xhtml">
+ List all available extensions.
+ </p>
+ </doc>
<response status="200 203">
- <representation mediaType="application/xml" element="identity:user"/>
- <representation mediaType="application/json"/>
- </response>
- <response status="401">
- <representation mediaType="application/xml" element="identity:unauthorized"/>
- </response>
- <response status="403">
- <representation mediaType="application/xml" element="identity:forbidden"/>
- </response>
- <response status="400">
- <representation mediaType="application/xml" element="identity:badRequest"/>
- </response>
- <response status="404">
- <representation mediaType="application/xml" element="identity:itemNotFound"/>
- </response>
- <response status="500">
- <representation mediaType="application/xml" element="identity:identityFault"/>
- </response>
- <response status="503">
- <representation mediaType="application/xml" element="identity:serviceUnavailable"/>
- </response>
- <response status="400 401 403 404 500 503">
- <representation mediaType="application/json"/>
- </response>
- </method>
-
- <method name="PUT" id="updateUser">
- <request>
- <representation mediaType="application/xml" element="identity:tenant"/>
- <representation mediaType="application/json"/>
- </request>
- <response status="200">
- <representation mediaType="application/xml" element="identity:tenant"/>
- <representation mediaType="application/json"/>
- </response>
- <response status="401">
- <representation mediaType="application/xml" element="identity:unauthorized"/>
- </response>
- <response status="403">
- <representation mediaType="application/xml" element="identity:forbidden"/>
- </response>
- <response status="404">
- <representation mediaType="application/xml" element="identity:itemNotFound"/>
- </response>
- <response status="400">
- <representation mediaType="application/xml" element="identity:badRequest"/>
- </response>
- <response status="500">
- <representation mediaType="application/xml" element="identity:identityFault"/>
- </response>
- <response status="503">
- <representation mediaType="application/xml" element="identity:serviceUnavailable"/>
- </response>
- <response status="401 403 404 400 500 503">
- <representation mediaType="application/json"/>
- </response>
- </method>
-
- <method name="DELETE" id="deleteUser">
- <response status="204"/>
- <response status="401">
- <representation mediaType="application/xml" element="identity:unauthorized"/>
- </response>
- <response status="403">
- <representation mediaType="application/xml" element="identity:forbidden"/>
- </response>
- <response status="400">
- <representation mediaType="application/xml" element="identity:badRequest"/>
- </response>
- <response status="404">
- <representation mediaType="application/xml" element="identity:itemNotFound"/>
- </response>
- <response status="500">
- <representation mediaType="application/xml" element="identity:identityFault"/>
- </response>
- <response status="503">
- <representation mediaType="application/xml" element="identity:serviceUnavailable"/>
- </response>
- <response status="400 401 403 404 500 503">
- <representation mediaType="application/json"/>
- </response>
- </method>
-
- <method name="PUT" id="setUserEnabled">
- <request>
- <representation mediaType="application/xml" element="identity:user">
- <param name="user" style="plain"
- path="/" type="identity:UserWithOnlyEnabled"/>
+ <representation mediaType="application/xml" element="capi:extensions">
+ <param name="next" style="plain" type="xsd:anyURI" path="/capi:extensions/atom:link[@rel='next']/@href">
+ <link resource_type="#ExtensionList" rel="next"/>
+ </param>
+ <param name="previous" style="plain" type="xsd:anyURI" path="/capi:extensions/atom:link[@rel='previous']/@href">
+ <link resource_type="#ExtensionList" rel="previous"/>
+ </param>
</representation>
<representation mediaType="application/json"/>
- </request>
- <response status="200">
- <representation mediaType="application/xml" element="identity:tenant"/>
- <representation mediaType="application/json"/>
- </response>
- <response status="401">
- <representation mediaType="application/xml" element="identity:unauthorized"/>
</response>
- <response status="403">
- <representation mediaType="application/xml" element="identity:forbidden"/>
- </response>
- <response status="404">
- <representation mediaType="application/xml" element="identity:itemNotFound"/>
- </response>
- <response status="400">
- <representation mediaType="application/xml" element="identity:badRequest"/>
- </response>
- <response status="500">
+ <!-- Common Faults -->
+
+ <response xmlns="http://wadl.dev.java.net/2009/02">
<representation mediaType="application/xml" element="identity:identityFault"/>
- </response>
- <response status="503">
- <representation mediaType="application/xml" element="identity:serviceUnavailable"/>
- </response>
- <response status="401 403 404 400 500 503">
- <representation mediaType="application/json"/>
- </response>
- </method>
-
- <method name="PUT" id="setUserPassword">
- <request>
- <representation mediaType="application/xml" element="identity:user">
- <param name="user" style="plain"
- path="/" type="identity:UserWithOnlyPassword"/>
- </representation>
<representation mediaType="application/json"/>
- </request>
- <response status="200">
- <representation mediaType="application/xml" element="identity:tenant"/>
- <representation mediaType="application/json"/>
- </response>
- <response status="401">
- <representation mediaType="application/xml" element="identity:unauthorized"/>
- </response>
- <response status="403">
- <representation mediaType="application/xml" element="identity:forbidden"/>
- </response>
- <response status="404">
- <representation mediaType="application/xml" element="identity:itemNotFound"/>
- </response>
- <response status="400">
- <representation mediaType="application/xml" element="identity:badRequest"/>
- </response>
- <response status="500">
- <representation mediaType="application/xml" element="identity:identityFault"/>
</response>
- <response status="503">
+ <response xmlns="http://wadl.dev.java.net/2009/02" status="503">
<representation mediaType="application/xml" element="identity:serviceUnavailable"/>
+ <representation mediaType="applicaiton/json"/>
</response>
- <response status="401 403 404 400 500 503">
- <representation mediaType="application/json"/>
- </response>
- </method>
-
- <method name="PUT" id="setUserTenant">
- <request>
- <representation mediaType="application/xml" element="identity:user">
- <param name="user" style="plain"
- path="/" type="identity:UserWithOnlyTenant"/>
- </representation>
- <representation mediaType="application/json"/>
- </request>
- <response status="200">
- <representation mediaType="application/xml" element="identity:tenant"/>
- <representation mediaType="application/json"/>
- </response>
- <response status="401">
+ <response xmlns="http://wadl.dev.java.net/2009/02" status="401">
<representation mediaType="application/xml" element="identity:unauthorized"/>
+ <representation mediaType="applicaiton/json"/>
</response>
- <response status="403">
+ <response xmlns="http://wadl.dev.java.net/2009/02" status="403">
<representation mediaType="application/xml" element="identity:forbidden"/>
+ <representation mediaType="applicaiton/json"/>
</response>
- <response status="404">
- <representation mediaType="application/xml" element="identity:itemNotFound"/>
- </response>
- <response status="400">
+ <response xmlns="http://wadl.dev.java.net/2009/02" status="400">
<representation mediaType="application/xml" element="identity:badRequest"/>
+ <representation mediaType="applicaiton/json"/>
</response>
- <response status="500">
- <representation mediaType="application/xml" element="identity:identityFault"/>
- </response>
- <response status="503">
- <representation mediaType="application/xml" element="identity:serviceUnavailable"/>
+ <response xmlns="http://wadl.dev.java.net/2009/02" status="405">
+ <representation mediaType="application/xml" element="identity:badMethod"/>
+ <representation mediaType="applicaiton/json"/>
</response>
- <response status="401 403 404 400 500 503">
- <representation mediaType="application/json"/>
- </response>
- </method>
-
- <method name="GET" id="getEndpointTemplates">
- <request>
- <param name="serviceName" style="query"
- required="false" type="xsd:string"/>
- </request>
- <response status="200 203">
- <representation mediaType="application/xml" element="identity:endpointTemplates"/>
- <representation mediaType="application/json"/>
- </response>
- <response status="400">
- <representation mediaType="application/xml" element="identity:badRequest"/>
- </response>
- <response status="401">
- <representation mediaType="application/xml" element="identity:unauthorized"/>
- </response>
- <response status="403">
- <representation mediaType="application/xml" element="identity:forbidden"/>
- </response>
- <response status="500">
- <representation mediaType="application/xml" element="identity:identityFault"/>
- </response>
- <response status="503">
- <representation mediaType="application/xml" element="identity:serviceUnavailable"/>
- </response>
- <response status="400 401 403 500 503">
- <representation mediaType="application/json"/>
+ <response xmlns="http://wadl.dev.java.net/2009/02" status="413">
+ <representation mediaType="application/xml" element="identity:overLimit"/>
+ <representation mediaType="applicaiton/json"/>
</response>
</method>
- <method name="GET" id="getEndpointTemplate">
+ <method name="GET" id="getExtension">
+ <doc xml:lang="EN" title="Get Server Details">
+ <p xmlns="http://www.w3.org/1999/xhtml">
+ Get details about a specific extension.
+ </p>
+ </doc>
<response status="200 203">
- <representation mediaType="application/xml" element="identity:endpointTemplate"/>
- <representation mediaType="application/json"/>
- </response>
- <response status="400">
- <representation mediaType="application/xml" element="identity:badRequest"/>
- </response>
- <response status="401">
- <representation mediaType="application/xml" element="identity:unauthorized"/>
- </response>
- <response status="403">
- <representation mediaType="application/xml" element="identity:forbidden"/>
- </response>
- <response status="404">
- <representation mediaType="application/xml" element="identity:itemNotFound"/>
- </response>
- <response status="500">
- <representation mediaType="application/xml" element="identity:authFault"/>
- </response>
- <response status="503">
- <representation mediaType="application/xml" element="identity:serviceUnavailable"/>
- </response>
- <response status="400 401 403 404 500 503">
- <representation mediaType="application/json"/>
- </response>
- </method>
-
- <method name="POST" id="addEndpointTemplate">
- <request>
- <representation mediaType="application/xml" element="identity:role"/>
+ <representation mediaType="application/xml" element="capi:extension"/>
<representation mediaType="application/json"/>
- </request>
- <response status="201">
- <representation mediaType="application/xml" element="identity:role">
- <param name="Location" type="xsd:anyURI" style="header"/>
- </representation>
- <representation mediaType="application/json">
- <param name="Location" type="xsd:anyURI" style="header"/>
- </representation>
</response>
- <response status="400">
- <representation mediaType="application/xml" element="identity:badRequest"/>
- </response>
- <response status="401">
- <representation mediaType="application/xml" element="identity:unauthorized"/>
- </response>
- <response status="403">
- <representation mediaType="application/xml" element="identity:forbidden"/>
- </response>
- <response status="404">
- <representation mediaType="application/xml" element="identity:itemNotFound"/>
- </response>
- <response status="500">
+ <!-- Common and GET Faults-->
+ <response xmlns="http://wadl.dev.java.net/2009/02">
<representation mediaType="application/xml" element="identity:identityFault"/>
- </response>
- <response status="503">
- <representation mediaType="application/xml" element="identity:serviceUnavailable"/>
- </response>
- <response status="400 401 403 404 500 503">
<representation mediaType="application/json"/>
</response>
- </method>
-
- <method name="DELETE" id="deleteEndpointTemplate">
- <response status="204"/>
- <response status="400">
- <representation mediaType="application/xml" element="identity:badRequest"/>
- </response>
- <response status="401">
- <representation mediaType="application/xml" element="identity:unauthorized"/>
- </response>
- <response status="403">
- <representation mediaType="application/xml" element="identity:forbidden"/>
- </response>
- <response status="404">
- <representation mediaType="application/xml" element="identity:itemNotFound"/>
- </response>
- <response status="500">
- <representation mediaType="application/xml" element="identity:authFault"/>
- </response>
- <response status="503">
+ <response xmlns="http://wadl.dev.java.net/2009/02" status="503">
<representation mediaType="application/xml" element="identity:serviceUnavailable"/>
+ <representation mediaType="applicaiton/json"/>
</response>
- <response status="400 401 403 404 500 503">
- <representation mediaType="application/json"/>
- </response>
- </method>
-
- <method name="GET" id="getEndpoints">
- <response status="200 203">
- <representation mediaType="application/xml" element="identity:endpoints"/>
- <representation mediaType="application/json"/>
- </response>
- <response status="400">
- <representation mediaType="application/xml" element="identity:badRequest"/>
- </response>
- <response status="401">
+ <response xmlns="http://wadl.dev.java.net/2009/02" status="401">
<representation mediaType="application/xml" element="identity:unauthorized"/>
+ <representation mediaType="applicaiton/json"/>
</response>
- <response status="403">
+ <response xmlns="http://wadl.dev.java.net/2009/02" status="403">
<representation mediaType="application/xml" element="identity:forbidden"/>
+ <representation mediaType="applicaiton/json"/>
</response>
- <response status="500">
- <representation mediaType="application/xml" element="identity:authFault"/>
- </response>
- <response status="503">
- <representation mediaType="application/xml" element="identity:serviceUnavailable"/>
- </response>
- <response status="400 401 403 500 503">
- <representation mediaType="application/json"/>
- </response>
- </method>
-
- <method name="POST" id="addEndpoint">
- <request>
- <representation mediaType="application/xml" element="identity:endpoint"/>
- <representation mediaType="application/json"/>
- </request>
- <response status="201">
- <representation mediaType="application/xml" element="identity:endpoint">
- <param name="Location" type="xsd:anyURI" style="header"/>
- </representation>
- <representation mediaType="application/json">
- <param name="Location" type="xsd:anyURI" style="header"/>
- </representation>
- </response>
- <response status="400">
+ <response xmlns="http://wadl.dev.java.net/2009/02" status="400">
<representation mediaType="application/xml" element="identity:badRequest"/>
+ <representation mediaType="applicaiton/json"/>
</response>
- <response status="401">
- <representation mediaType="application/xml" element="identity:unauthorized"/>
+ <response xmlns="http://wadl.dev.java.net/2009/02" status="405">
+ <representation mediaType="application/xml" element="identity:badMethod"/>
+ <representation mediaType="applicaiton/json"/>
</response>
- <response status="403">
- <representation mediaType="application/xml" element="identity:forbidden"/>
+ <response xmlns="http://wadl.dev.java.net/2009/02" status="413">
+ <representation mediaType="application/xml" element="identity:overLimit"/>
+ <representation mediaType="applicaiton/json"/>
</response>
- <response status="404">
+
+
+ <response xmlns="http://wadl.dev.java.net/2009/02" status="404">
<representation mediaType="application/xml" element="identity:itemNotFound"/>
+ <representation mediaType="applicaiton/json"/>
</response>
- <response status="500">
- <representation mediaType="application/xml" element="identity:identityFault"/>
- </response>
- <response status="503">
- <representation mediaType="application/xml" element="identity:serviceUnavailable"/>
- </response>
- <response status="400 401 403 404 500 503">
- <representation mediaType="application/json"/>
- </response>
+
</method>
- <method name="GET" id="getEndpoint">
- <response status="200 203">
- <representation mediaType="application/xml" element="identity:endpoint"/>
- <representation mediaType="application/json"/>
- </response>
- <response status="400">
- <representation mediaType="application/xml" element="identity:badRequest"/>
- </response>
- <response status="401">
- <representation mediaType="application/xml" element="identity:unauthorized"/>
- </response>
- <response status="403">
- <representation mediaType="application/xml" element="identity:forbidden"/>
- </response>
- <response status="404">
- <representation mediaType="application/xml" element="identity:itemNotFound"/>
- </response>
- <response status="500">
- <representation mediaType="application/xml" element="identity:identityFault"/>
- </response>
- <response status="503">
- <representation mediaType="application/xml" element="identity:serviceUnavailable"/>
- </response>
- <response status="400 401 403 404 500 503">
- <representation mediaType="application/json"/>
- </response>
- </method>
- <method name="DELETE" id="deleteEndpoint">
- <response status="204"/>
- <response status="400">
- <representation mediaType="application/xml" element="identity:badRequest"/>
- </response>
- <response status="401">
- <representation mediaType="application/xml" element="identity:unauthorized"/>
- </response>
- <response status="403">
- <representation mediaType="application/xml" element="identity:forbidden"/>
- </response>
- <response status="404">
- <representation mediaType="application/xml" element="identity:itemNotFound"/>
- </response>
- <response status="500">
- <representation mediaType="application/xml" element="identity:authFault"/>
- </response>
- <response status="503">
- <representation mediaType="application/xml" element="identity:serviceUnavailable"/>
- </response>
- <response status="400 401 403 404 500 503">
- <representation mediaType="application/json"/>
- </response>
- </method>
-
- <!--Roles-->
- <method name="GET" id="getRoles">
+ <!-- Token Operations -->
+ <method name="POST" id="authenticate">
<request>
- <param name="serviceId" style="query"
- required="false" type="xsd:string"/>
- </request>
- <response status="200 203">
- <representation mediaType="application/xml" element="identity:roles"/>
- <representation mediaType="application/json"/>
- </response>
- <response status="400">
- <representation mediaType="application/xml" element="identity:badRequest"/>
- </response>
- <response status="401">
- <representation mediaType="application/xml" element="identity:unauthorized"/>
- </response>
- <response status="403">
- <representation mediaType="application/xml" element="identity:forbidden"/>
- </response>
- <response status="500">
- <representation mediaType="application/xml" element="identity:identityFault"/>
- </response>
- <response status="503">
- <representation mediaType="application/xml" element="identity:serviceUnavailable"/>
- </response>
- <response status="400 401 403 500 503">
- <representation mediaType="application/json"/>
- </response>
- </method>
-
- <method name="GET" id="getRole">
- <response status="200 203">
- <representation mediaType="application/xml" element="identity:role"/>
- <representation mediaType="application/json"/>
- </response>
- <response status="400">
- <representation mediaType="application/xml" element="identity:badRequest"/>
- </response>
- <response status="401">
- <representation mediaType="application/xml" element="identity:unauthorized"/>
- </response>
- <response status="403">
- <representation mediaType="application/xml" element="identity:forbidden"/>
- </response>
- <response status="404">
- <representation mediaType="application/xml" element="identity:itemNotFound"/>
- </response>
- <response status="500">
- <representation mediaType="application/xml" element="identity:authFault"/>
- </response>
- <response status="503">
- <representation mediaType="application/xml" element="identity:serviceUnavailable"/>
- </response>
- <response status="400 401 403 404 500 503">
- <representation mediaType="application/json"/>
- </response>
- </method>
-
- <method name="POST" id="addRole">
- <request>
- <representation mediaType="application/xml" element="identity:role"/>
+ <representation mediaType="application/xml" element="identity:passwordCredentials"/>
<representation mediaType="application/json"/>
</request>
- <response status="201">
- <representation mediaType="application/xml" element="identity:role">
- <param name="Location" type="xsd:anyURI" style="header"/>
- </representation>
- <representation mediaType="application/json">
- <param name="Location" type="xsd:anyURI" style="header"/>
- </representation>
- </response>
- <response status="400">
- <representation mediaType="application/xml" element="identity:badRequest"/>
- </response>
- <response status="401">
- <representation mediaType="application/xml" element="identity:unauthorized"/>
- </response>
- <response status="403">
- <representation mediaType="application/xml" element="identity:forbidden"/>
- </response>
- <response status="404">
- <representation mediaType="application/xml" element="identity:itemNotFound"/>
- </response>
- <response status="500">
- <representation mediaType="application/xml" element="identity:identityFault"/>
- </response>
- <response status="503">
- <representation mediaType="application/xml" element="identity:serviceUnavailable"/>
- </response>
- <response status="400 401 403 404 500 503">
- <representation mediaType="application/json"/>
- </response>
- </method>
-
- <method name="DELETE" id="deleteRole">
- <response status="204"/>
- <response status="400">
- <representation mediaType="application/xml" element="identity:badRequest"/>
- </response>
- <response status="401">
- <representation mediaType="application/xml" element="identity:unauthorized"/>
- </response>
- <response status="403">
- <representation mediaType="application/xml" element="identity:forbidden"/>
- </response>
- <response status="404">
- <representation mediaType="application/xml" element="identity:itemNotFound"/>
- </response>
- <response status="500">
- <representation mediaType="application/xml" element="identity:authFault"/>
- </response>
- <response status="503">
- <representation mediaType="application/xml" element="identity:serviceUnavailable"/>
- </response>
- <response status="400 401 403 404 500 503">
- <representation mediaType="application/json"/>
- </response>
- </method>
-
- <method name="GET" id="getRoleRefs">
<response status="200 203">
- <representation mediaType="application/xml" element="identity:roleRefs"/>
+ <representation mediaType="application/xml" element="identity:auth"/>
<representation mediaType="application/json"/>
</response>
- <response status="400">
- <representation mediaType="application/xml" element="identity:badRequest"/>
- </response>
<response status="401">
<representation mediaType="application/xml" element="identity:unauthorized"/>
</response>
<response status="403">
- <representation mediaType="application/xml" element="identity:forbidden"/>
- </response>
- <response status="500">
- <representation mediaType="application/xml" element="identity:authFault"/>
- </response>
- <response status="503">
- <representation mediaType="application/xml" element="identity:serviceUnavailable"/>
- </response>
- <response status="400 401 403 500 503">
- <representation mediaType="application/json"/>
- </response>
- </method>
-
- <method name="POST" id="addRoleRef">
- <request>
- <representation mediaType="application/xml" element="identity:roleRef"/>
- <representation mediaType="application/json"/>
- </request>
- <response status="201">
- <representation mediaType="application/xml" element="identity:roleRef">
- <param name="Location" type="xsd:anyURI" style="header"/>
- </representation>
- <representation mediaType="application/json">
- <param name="Location" type="xsd:anyURI" style="header"/>
- </representation>
+ <representation mediaType="application/xml" element="identity:userDisabled"/>
</response>
<response status="400">
<representation mediaType="application/xml" element="identity:badRequest"/>
</response>
- <response status="401">
- <representation mediaType="application/xml" element="identity:unauthorized"/>
- </response>
- <response status="403">
- <representation mediaType="application/xml" element="identity:forbidden"/>
- </response>
- <response status="404">
- <representation mediaType="application/xml" element="identity:itemNotFound"/>
- </response>
<response status="500">
<representation mediaType="application/xml" element="identity:identityFault"/>
</response>
<response status="503">
<representation mediaType="application/xml" element="identity:serviceUnavailable"/>
</response>
- <response status="400 401 403 404 500 503">
+ <response status="401 403 400 500 503">
<representation mediaType="application/json"/>
</response>
</method>
- <method name="GET" id="getRoleRef">
- <response status="200 203">
- <representation mediaType="application/xml" element="identity:roleRef"/>
- <representation mediaType="application/json"/>
- </response>
- <response status="400">
- <representation mediaType="application/xml" element="identity:badRequest"/>
- </response>
- <response status="401">
- <representation mediaType="application/xml" element="identity:unauthorized"/>
- </response>
- <response status="403">
- <representation mediaType="application/xml" element="identity:forbidden"/>
- </response>
- <response status="404">
- <representation mediaType="application/xml" element="identity:itemNotFound"/>
- </response>
- <response status="500">
- <representation mediaType="application/xml" element="identity:identityFault"/>
- </response>
- <response status="503">
- <representation mediaType="application/xml" element="identity:serviceUnavailable"/>
- </response>
- <response status="400 401 403 404 500 503">
- <representation mediaType="application/json"/>
- </response>
- </method>
- <method name="DELETE" id="deleteRoleRef">
- <response status="204"/>
- <response status="400">
- <representation mediaType="application/xml" element="identity:badRequest"/>
- </response>
- <response status="401">
- <representation mediaType="application/xml" element="identity:unauthorized"/>
- </response>
- <response status="403">
- <representation mediaType="application/xml" element="identity:forbidden"/>
- </response>
- <response status="404">
- <representation mediaType="application/xml" element="identity:itemNotFound"/>
- </response>
- <response status="500">
- <representation mediaType="application/xml" element="identity:authFault"/>
- </response>
- <response status="503">
- <representation mediaType="application/xml" element="identity:serviceUnavailable"/>
- </response>
- <response status="400 401 403 404 500 503">
- <representation mediaType="application/json"/>
- </response>
- </method>
-
- <method name="GET" id="getServices">
+ <!-- Tenant Operations -->
+ <method name="GET" id="getTenants">
<request>
- <param name="serviceId" style="query"
- required="false" type="xsd:string"/>
+ <param name="marker" style="query" required="false" type="xsd:string"/>
+ <param name="limit" style="query" required="false" type="xsd:int"/>
</request>
<response status="200 203">
- <representation mediaType="application/xml" element="identity:services"/>
- <representation mediaType="application/json"/>
- </response>
- <response status="400">
- <representation mediaType="application/xml" element="identity:badRequest"/>
- </response>
- <response status="401">
- <representation mediaType="application/xml" element="identity:unauthorized"/>
- </response>
- <response status="403">
- <representation mediaType="application/xml" element="identity:forbidden"/>
- </response>
- <response status="500">
- <representation mediaType="application/xml" element="identity:identityFault"/>
- </response>
- <response status="503">
- <representation mediaType="application/xml" element="identity:serviceUnavailable"/>
- </response>
- <response status="400 401 403 500 503">
- <representation mediaType="application/json"/>
- </response>
- </method>
-
- <method name="GET" id="getService">
- <response status="200 203">
- <representation mediaType="application/xml" element="identity:service"/>
+ <representation mediaType="application/xml" element="identity:tenants"/>
<representation mediaType="application/json"/>
</response>
- <response status="400">
- <representation mediaType="application/xml" element="identity:badRequest"/>
- </response>
<response status="401">
<representation mediaType="application/xml" element="identity:unauthorized"/>
</response>
<response status="403">
<representation mediaType="application/xml" element="identity:forbidden"/>
</response>
- <response status="404">
- <representation mediaType="application/xml" element="identity:itemNotFound"/>
- </response>
- <response status="500">
- <representation mediaType="application/xml" element="identity:authFault"/>
- </response>
- <response status="503">
- <representation mediaType="application/xml" element="identity:serviceUnavailable"/>
- </response>
- <response status="400 401 403 404 500 503">
- <representation mediaType="application/json"/>
- </response>
- </method>
-
- <method name="POST" id="addService">
- <request>
- <representation mediaType="application/xml" element="identity:service"/>
- <representation mediaType="application/json"/>
- </request>
- <response status="201">
- <representation mediaType="application/xml" element="identity:service">
- <param name="Location" type="xsd:anyURI" style="header"/>
- </representation>
- <representation mediaType="application/json">
- <param name="Location" type="xsd:anyURI" style="header"/>
- </representation>
- </response>
<response status="400">
<representation mediaType="application/xml" element="identity:badRequest"/>
</response>
- <response status="401">
- <representation mediaType="application/xml" element="identity:unauthorized"/>
- </response>
- <response status="403">
- <representation mediaType="application/xml" element="identity:forbidden"/>
- </response>
<response status="404">
<representation mediaType="application/xml" element="identity:itemNotFound"/>
</response>
@@ -1326,30 +274,6 @@
<response status="400 401 403 404 500 503">
<representation mediaType="application/json"/>
</response>
- </method>
-
- <method name="DELETE" id="deleteService">
- <response status="204"/>
- <response status="400">
- <representation mediaType="application/xml" element="identity:badRequest"/>
- </response>
- <response status="401">
- <representation mediaType="application/xml" element="identity:unauthorized"/>
- </response>
- <response status="403">
- <representation mediaType="application/xml" element="identity:forbidden"/>
- </response>
- <response status="404">
- <representation mediaType="application/xml" element="identity:itemNotFound"/>
- </response>
- <response status="500">
- <representation mediaType="application/xml" element="identity:authFault"/>
- </response>
- <response status="503">
- <representation mediaType="application/xml" element="identity:serviceUnavailable"/>
- </response>
- <response status="400 401 403 404 500 503">
- <representation mediaType="application/json"/>
- </response>
- </method>
+ </method>
+
</application>
diff --git a/keystone/content/identityadminguide.pdf b/keystone/content/identityadminguide.pdf
new file mode 100644
index 00000000..f2ab9251
--- /dev/null
+++ b/keystone/content/identityadminguide.pdf
Binary files differ
diff --git a/keystone/content/samples/auth.json b/keystone/content/samples/auth.json
index c74dcb2b..7dae26da 100644
--- a/keystone/content/samples/auth.json
+++ b/keystone/content/samples/auth.json
@@ -4,34 +4,44 @@
"id":"asdasdasd-adsasdads-asdasdasd-adsadsasd",
"expires":"2010-11-01T03:32:15-05:00"
},
- "serviceCatalog":{
- "service1":[
- {
- "region":"DFW",
- "publicURL":"https://service1-public/v1/blah-blah",
- "internalURL":"https://service1-internal/v1/blah-blah"
- },
- {
- "region":"ORD",
- "publicURL":"https://service1-public-ord/v1/blah-blah",
- "internalURL":"https://service1-internal-ord/v1/blah-blah"
- }
- ],
- "service2":[
- {
- "region":"DFW",
- "publicURL":"https://service2-public-dfw/v1/blah-blah"
- },
- {
- "region":"ORD",
- "publicURL":"https://service2-public-orf/v1/blah-blah"
- }
- ],
- "service3":[
- {
- "publicURL":"https://service3-public/v1/blah-blah"
- }
- ]
+ "serviceCatalog": [{
+ "name": "Cloud Servers",
+ "type": "compute",
+ "endpoints": [{
+ "publicURL": "https://compute.north.host/v1/blah-blah",
+ "internalURL": "https://compute.north.host/v1/blah-blah",
+ "region": "North",
+ "versionId": "1.0",
+ "versionInfo": "uri",
+ "versionList": "uri"
+ }, {
+ "publicURL": "https://compute.north.host/v1.1/blah-blah",
+ "internalURL": "https://compute.north.host/v1.1/blah-blah",
+ "region": "North",
+ "versionId": "1.1",
+ "versionInfo": "https://compute.north.host/v1.1/",
+ "versionList": "https://compute.north.host/"
+ }]
+ }, {
+ "name": "Cloud Files",
+ "type": "object store",
+ "endpoints": [{
+ "publicURL": "https://compute.north.host/v1/blah-blah",
+ "internalURL": "https://compute.north.host/v1/blah-blah",
+ "region": "South",
+ "versionId": "1.0",
+ "versionInfo": "uri",
+ "versionList": "uri"
+ }, {
+ "publicURL": "https://compute.north.host/v1.1/blah-blah",
+ "internalURL": "https://compute.north.host/v1.1/blah-blah",
+ "region": "South",
+ "versionId": "1.1",
+ "versionInfo": "https://compute.north.host/v1.1/",
+ "versionList": "https://compute.north.host/"
+ }],
+ "endpoint_links": [{"rel": "next", "href": "https://identity.north.host/v2.0/endpoints?marker=2"}]
+ }],
+ "serviceCatalog_links": [{"rel": "next", "href": "uri"}]
}
}
-}
diff --git a/keystone/content/samples/auth.xml b/keystone/content/samples/auth.xml
index 6d90c064..728d33cf 100644
--- a/keystone/content/samples/auth.xml
+++ b/keystone/content/samples/auth.xml
@@ -3,27 +3,54 @@
<token expires="2010-11-01T03:32:15-05:00"
id="ab48a9efdfedb23ty3494"/>
<serviceCatalog>
- <service name="service1">
+ <service type="compute" name="Computers in the Cloud">
<endpoint
- region="DFW"
- publicURL="https://service1.public.com/v2.0/blah-blah"
- internalURL="https://service1.internal.com/v2.0/blah-blah"/>
+ region="North"
+ publicURL="https://north.compute.public.com/v2.0/account1"
+ internalURL="https://north.compute.internal.com/v2.0/account1">
+ <version
+ id="2.0"
+ info="https://north.compute.public.com/v2.0/"
+ list="https://north.compute.public.com/" />
+ </endpoint>
<endpoint
- region="ORD"
- publicURL="https://service1.public.com/v2.0/blah-blah"
- internalURL="https://service1.internal.com/v2.0/blah-blah"/>
+ region="South"
+ publicURL="https://south.compute.public.com/v2.0/account1"
+ internalURL="https://south.compute.internal.com/v2.0/account1">
+ <version
+ id="2.0"
+ info="https://south.compute.public.com/v2.0/"
+ list="https://south.compute.public.com/" />
+ </endpoint>
</service>
- <service name="service2">
+ <service type="object-store" name="HTTP Object Store">
<endpoint
- region="DFW"
- publicURL="https://service2.public.com/v2.0/blah-blah"/>
+ region="North"
+ publicURL="https://north.object-store.public.com/v1/account1"
+ internalURL="https://north.object-store.internal.com/v1/account1">
+ <version
+ id="1"
+ info="https://north.object-store.public.com/v1/"
+ list="https://north.object-store.public.com/" />
+ </endpoint>
<endpoint
- region="ORD"
- publicURL="https://service2.public.com/v2.0/blah-blah"/>
+ region="South"
+ publicURL="https://south.object-store.public.com/v2.0/account1"
+ internalURL="https://south.object-store.internal.com/v2.0/account1">
+ <version
+ id="2.0"
+ info="https://south.object-store.public.com/v1/"
+ list="https://south.object-store.public.com/" />
+ </endpoint>
</service>
- <service name="service3">
+ <service type="dns" name="DNS-as-a-Service">
<endpoint
- publicURL="https://service3.public.com/v2.0/blah-blah"/>
+ publicURL="https://dns.public.com/v2.0/blah-blah">
+ <version
+ id="2.0"
+ info="https://dns.public.com/v2.0/"
+ list="https://dns.public.com/" />
+ </endpoint>
</service>
</serviceCatalog>
</auth>
diff --git a/keystone/content/version-admin.json.tpl b/keystone/content/version-admin.json.tpl
new file mode 100644
index 00000000..651e3dd8
--- /dev/null
+++ b/keystone/content/version-admin.json.tpl
@@ -0,0 +1,33 @@
+{
+ "version" : {
+ "id" : "v2.0",
+ "status" : "{{VERSION_STATUS}}",
+ "updated" : "{{VERSION_DATE}}",
+ "links": [
+ {
+ "rel" : "self",
+ "href" : "http://{{HOST}}:{{PORT}}/v2.0/"
+ },
+ {
+ "rel" : "describedby",
+ "type" : "application/pdf",
+ "href" : "http://{{HOST}}:{{PORT}}/v2.0/identityadminguide.pdf"
+ },
+ {
+ "rel" : "describedby",
+ "type" : "application/vnd.sun.wadl+xml",
+ "href" : "http://{{HOST}}:{{PORT}}/v2.0/identity-admin.wadl"
+ }
+ ],
+ "media-types": [
+ {
+ "base" : "application/xml",
+ "type" : "application/vnd.openstack.identity-v2.0+xml"
+ },
+ {
+ "base" : "application/json",
+ "type" : "application/vnd.openstack.identity-v2.0+json"
+ }
+ ]
+ }
+}
diff --git a/keystone/content/version-admin.xml.tpl b/keystone/content/version-admin.xml.tpl
new file mode 100644
index 00000000..4098a232
--- /dev/null
+++ b/keystone/content/version-admin.xml.tpl
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<version xmlns="http://docs.openstack.org/common/api/v2.0"
+ xmlns:atom="http://www.w3.org/2005/Atom"
+ id="v2.0" status="{{VERSION_STATUS}}" updated="{{VERSION_DATE}}">
+
+ <media-types>
+ <media-type base="application/xml"
+ type="application/vnd.openstack.identity-v2.0+xml"/>
+ <media-type base="application/json"
+ type="application/vnd.openstack.identity-v2.0+json"/>
+ </media-types>
+
+ <atom:link rel="self"
+ href="http://{{HOST}}:{{PORT}}/v2.0/"/>
+
+ <atom:link rel="describedby"
+ type="application/pdf"
+ href="http://{{HOST}}:{{PORT}}/v2.0/identitydevguide.pdf" />
+
+ <atom:link rel="describedby"
+ type="application/vnd.sun.wadl+xml"
+ href="http://{{HOST}}:{{PORT}}/v2.0/identity-admin.wadl" />
+</version>
diff --git a/keystone/content/xsd/services.xsd b/keystone/content/xsd/services.xsd
index 3c1f254c..ec0192d4 100644
--- a/keystone/content/xsd/services.xsd
+++ b/keystone/content/xsd/services.xsd
@@ -18,25 +18,25 @@
<!-- Elements -->
<element name="services" type="identity:ServiceList">
<annotation>
- <documentation
+ <xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
A list of services.
</p>
- </documentation>
+ </xsd:documentation>
</annotation>
</element>
<element name="service" type="identity:Service" >
<annotation>
- <documentation
+ <xsd:documentation
xml:lang="EN"
xmlns="http://www.w3.org/1999/xhtml">
<p>
A service.
</p>
- </documentation>
+ </xsd:documentation>
</annotation>
</element>
diff --git a/keystone/content/xsd/tenant.xsd b/keystone/content/xsd/tenant.xsd
index 4acd1a8d..ec88c22e 100644
--- a/keystone/content/xsd/tenant.xsd
+++ b/keystone/content/xsd/tenant.xsd
@@ -7,6 +7,7 @@
xmlns:identity="http://docs.openstack.org/identity/api/v2.0"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:vc="http://www.w3.org/2007/XMLSchema-versioning"
+ xmlns:xsdxt="http://docs.rackspacecloud.com/xsd-ext/v1.0"
xmlns:atom="http://www.w3.org/2005/Atom"
targetNamespace="http://docs.openstack.org/identity/api/v2.0"
>
@@ -17,13 +18,13 @@
<!-- Elements -->
<element name="tenant" type="identity:Tenant">
<annotation>
- <documentation xml:lang="EN" xmlns="http://www.w3.org/1999/xhtml">
+ <xsd:documentation xml:lang="EN" xmlns="http://www.w3.org/1999/xhtml">
<p>
A container used to group or isolate resources and/or identity
objects. Depending on the service operator, a tenant may map to a customer,
account, organization, or project.
</p>
- </documentation>
+ </xsd:documentation>
<xsd:appinfo>
<xsdxt:samples>
         <xsdxt:sample>
@@ -51,7 +52,7 @@
<!-- Complex Types -->
<complexType name="Tenants">
<sequence>
- <element name="tenant" type="identity:Tenant" maxOccurs="1000"/>
+ <element name="tenant" type="identity:Tenant" maxOccurs="100"/>
<element vc:minVersion="1.1" ref="atom:link" minOccurs="0" maxOccurs="unbounded" />
<any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
</sequence>
diff --git a/keystone/controllers/staticfiles.py b/keystone/controllers/staticfiles.py
index 4057956c..a6631199 100644
--- a/keystone/controllers/staticfiles.py
+++ b/keystone/controllers/staticfiles.py
@@ -28,15 +28,15 @@ class StaticFilesController(wsgi.Controller):
self.options = options
@utils.wrap_error
- def get_pdf_contract(self, req):
+ def get_pdf_contract(self, req, pdf):
resp = Response()
- return template.static_file(resp, req, "content/identitydevguide.pdf",
+ return template.static_file(resp, req, "content/" + pdf,
root=utils.get_app_root(), mimetype="application/pdf")
@utils.wrap_error
- def get_wadl_contract(self, req):
+ def get_wadl_contract(self, req, wadl):
resp = Response()
- return template.static_file(resp, req, "content/identity.wadl",
+ return template.static_file(resp, req, "content/" + wadl,
root=utils.get_app_root(), mimetype="application/vnd.sun.wadl+xml")
@utils.wrap_error
diff --git a/keystone/controllers/version.py b/keystone/controllers/version.py
index da3bbde6..d969a1ab 100644
--- a/keystone/controllers/version.py
+++ b/keystone/controllers/version.py
@@ -20,17 +20,16 @@ class VersionController(wsgi.Controller):
self.options = options
@utils.wrap_error
- def get_version_info(self, req):
-
+ def get_version_info(self, req, file="version"):
resp = Response()
resp.charset = 'UTF-8'
if utils.is_xml_response(req):
resp_file = os.path.join(possible_topdir,
- "keystone/content/version.xml.tpl")
+ "keystone/content/%s.xml.tpl" % file)
resp.content_type = "application/xml"
else:
resp_file = os.path.join(possible_topdir,
- "keystone/content/version.json.tpl")
+ "keystone/content/%s.json.tpl" % file)
resp.content_type = "application/json"
hostname = req.environ.get("SERVER_NAME")
diff --git a/keystone/routers/admin.py b/keystone/routers/admin.py
index c1a02455..f707eba3 100755
--- a/keystone/routers/admin.py
+++ b/keystone/routers/admin.py
@@ -159,18 +159,22 @@ class AdminApi(wsgi.Router):
# Miscellaneous Operations
version_controller = VersionController(options)
mapper.connect("/", controller=version_controller,
- action="get_version_info",
+ action="get_version_info", file="version-admin",
conditions=dict(method=["GET"]))
# Static Files Controller
static_files_controller = StaticFilesController(options)
- mapper.connect("/identitydevguide.pdf",
+ mapper.connect("/identityadminguide.pdf",
controller=static_files_controller,
- action="get_pdf_contract",
+ action="get_pdf_contract", pdf="identityadminguide.pdf",
conditions=dict(method=["GET"]))
- mapper.connect("/identity.wadl",
+ mapper.connect("/identity-admin.wadl",
controller=static_files_controller,
- action="get_wadl_contract",
+ action="get_wadl_contract", wadl="identity-admin.wadl",
+ conditions=dict(method=["GET"]))
+ mapper.connect("/common.ent",
+ controller=static_files_controller,
+ action="get_wadl_contract", wadl="common.ent",
conditions=dict(method=["GET"]))
mapper.connect("/xsd/{xsd}",
controller=static_files_controller,
@@ -183,15 +187,20 @@ class AdminApi(wsgi.Router):
# Services Controller
services_controller = ServicesController(options)
- mapper.connect("/services", controller=services_controller,
- action="get_services", conditions=dict(method=["GET"]))
- mapper.connect("/services", controller=services_controller,
- action="create_service", conditions=dict(method=["POST"]))
- mapper.connect("/services/{service_id}", \
- controller=services_controller,
- action="delete_service", conditions=dict(method=["DELETE"]))
+ mapper.connect("/services",
+ controller=services_controller,
+ action="get_services",
+ conditions=dict(method=["GET"]))
+ mapper.connect("/services",
+ controller=services_controller,
+ action="create_service",
+ conditions=dict(method=["POST"]))
mapper.connect("/services/{service_id}",
- controller=services_controller,
- action="get_service",
- conditions=dict(method=["GET"]))
+ controller=services_controller,
+ action="delete_service",
+ conditions=dict(method=["DELETE"]))
+ mapper.connect("/services/{service_id}",
+ controller=services_controller,
+ action="get_service",
+ conditions=dict(method=["GET"]))
super(AdminApi, self).__init__(mapper)
diff --git a/keystone/routers/service.py b/keystone/routers/service.py
index 2683581f..e851cc0e 100644
--- a/keystone/routers/service.py
+++ b/keystone/routers/service.py
@@ -42,35 +42,40 @@ class ServiceApi(wsgi.Router):
mapper.connect("/ec2tokens", controller=auth_controller,
action="authenticate_ec2",
conditions=dict(method=["POST"]))
-
- # Tenant Operations
tenant_controller = TenantController(options)
- mapper.connect("/tenants", controller=tenant_controller,
- action="get_tenants", conditions=dict(method=["GET"]))
+ mapper.connect("/tenants",
+ controller=tenant_controller,
+ action="get_tenants",
+ conditions=dict(method=["GET"]))
# Miscellaneous Operations
version_controller = VersionController(options)
- mapper.connect("/", controller=version_controller,
- action="get_version_info",
- conditions=dict(method=["GET"]))
+ mapper.connect("/",
+ controller=version_controller,
+ action="get_version_info",
+ conditions=dict(method=["GET"]))
# Static Files Controller
static_files_controller = StaticFilesController(options)
mapper.connect("/identitydevguide.pdf",
- controller=static_files_controller,
- action="get_pdf_contract",
- conditions=dict(method=["GET"]))
+ controller=static_files_controller,
+ action="get_pdf_contract", pdf="identitydevguide.pdf",
+ conditions=dict(method=["GET"]))
mapper.connect("/identity.wadl",
+ controller=static_files_controller,
+ action="get_wadl_contract", wadl="identity.wadl",
+ conditions=dict(method=["GET"]))
+ mapper.connect("/common.ent",
controller=static_files_controller,
- action="get_wadl_contract",
+ action="get_wadl_contract", wadl="common.ent",
conditions=dict(method=["GET"]))
mapper.connect("/xsd/{xsd}",
- controller=static_files_controller,
- action="get_xsd_contract",
- conditions=dict(method=["GET"]))
+ controller=static_files_controller,
+ action="get_xsd_contract",
+ conditions=dict(method=["GET"]))
mapper.connect("/xsd/atom/{xsd}",
- controller=static_files_controller,
- action="get_xsd_atom_contract",
- conditions=dict(method=["GET"]))
+ controller=static_files_controller,
+ action="get_xsd_atom_contract",
+ conditions=dict(method=["GET"]))
super(ServiceApi, self).__init__(mapper)
diff --git a/keystone/test/functional/test_static_files.py b/keystone/test/functional/test_static_files.py
index 092fd85a..bc4fedc7 100644
--- a/keystone/test/functional/test_static_files.py
+++ b/keystone/test/functional/test_static_files.py
@@ -4,11 +4,29 @@ from common import KeystoneTestCase
class TestStaticFiles(KeystoneTestCase):
def test_pdf_contract(self):
- r = self.admin_request(path='/identitydevguide.pdf')
+ r = self.service_request(path='/identitydevguide.pdf')
self.assertTrue('pdf' in r.getheader('Content-Type'))
def test_wadl_contract(self):
- r = self.admin_request(path='/identity.wadl')
+ r = self.service_request(path='/identity.wadl')
+ self.assertTrue('xml' in r.getheader('Content-Type'))
+
+ def test_xsd_contract(self):
+ r = self.service_request(path='/xsd/api.xsd')
+ self.assertTrue('xml' in r.getheader('Content-Type'))
+
+ def test_xsd_atom_contract(self):
+ r = self.service_request(path='/xsd/atom/atom.xsd')
+ self.assertTrue('xml' in r.getheader('Content-Type'))
+
+
+class TestAdminStaticFiles(KeystoneTestCase):
+ def test_pdf_contract(self):
+ r = self.admin_request(path='/identityadminguide.pdf')
+ self.assertTrue('pdf' in r.getheader('Content-Type'))
+
+ def test_wadl_contract(self):
+ r = self.admin_request(path='/identity-admin.wadl')
self.assertTrue('xml' in r.getheader('Content-Type'))
def test_xsd_contract(self):
@@ -19,6 +37,5 @@ class TestStaticFiles(KeystoneTestCase):
r = self.admin_request(path='/xsd/atom/atom.xsd')
self.assertTrue('xml' in r.getheader('Content-Type'))
-
if __name__ == '__main__':
unittest.main()