diff options
| author | Yogeshwar Srikrishnan <yoga80@yahoo.com> | 2011-08-14 02:30:06 -0500 |
|---|---|---|
| committer | Ziad Sawalha <github@highbridgellc.com> | 2011-08-14 10:39:50 -0500 |
| commit | dd346967e1cd9e9c55e901cd2b03f4dc8f058b09 (patch) | |
| tree | 1356a1b869663af81eaa008959b5c1fae54c9ebf | |
| parent | a9d5441ac83a4478cc7f0631d4d983d04a2737e9 (diff) | |
Ziads changes and fixes for them.
Change-Id: I86f3dc08ffb602c74491821d37adab0088fe3948
PEP8
Change-Id: Ia4db15cbcf6bdcd8e5537943d94b371c7260a9dc
| -rw-r--r-- | keystone/content/common.ent | 56 | ||||
| -rw-r--r-- | keystone/content/identity-admin.wadl | 1448 | ||||
| -rw-r--r-- | keystone/content/identity.wadl | 1342 | ||||
| -rw-r--r-- | keystone/content/identityadminguide.pdf | bin | 0 -> 305127 bytes | |||
| -rw-r--r-- | keystone/content/samples/auth.json | 68 | ||||
| -rw-r--r-- | keystone/content/samples/auth.xml | 55 | ||||
| -rw-r--r-- | keystone/content/version-admin.json.tpl | 33 | ||||
| -rw-r--r-- | keystone/content/version-admin.xml.tpl | 23 | ||||
| -rw-r--r-- | keystone/content/xsd/services.xsd | 8 | ||||
| -rw-r--r-- | keystone/content/xsd/tenant.xsd | 7 | ||||
| -rw-r--r-- | keystone/controllers/staticfiles.py | 8 | ||||
| -rw-r--r-- | keystone/controllers/version.py | 7 | ||||
| -rwxr-xr-x | keystone/routers/admin.py | 39 | ||||
| -rw-r--r-- | keystone/routers/service.py | 39 | ||||
| -rw-r--r-- | keystone/test/functional/test_static_files.py | 23 |
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 Binary files differnew file mode 100644 index 00000000..f2ab9251 --- /dev/null +++ b/keystone/content/identityadminguide.pdf 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() |
