diff --git a/README b/README new file mode 100644 index 00000000..817fd48c --- /dev/null +++ b/README @@ -0,0 +1,9 @@ +This repository contains the RESTful API information for the OpenStack Identity Service, also known as the Keystone project. The Keystone project provides authentication for OpenStack services, with plans to also provide authorization. + +Contributing +============ +Our community welcomes all people interested in open source cloud computing, and there are no formal membership requirements. The best way to join the community is to talk with others online or at a meetup and offer contributions through Launchpad, the OpenStack wiki, or blogs. We welcome all types of contributions, from blueprint designs to documentation to testing to deployment scripts. + +Installing +========== +Refer to http://keystone.openstack.org to learn more about installing an OpenStack Identity Service server that can respond to these API commands. \ No newline at end of file diff --git a/openstack-identity-api/pom.xml b/openstack-identity-api/pom.xml new file mode 100644 index 00000000..f7a3c8b2 --- /dev/null +++ b/openstack-identity-api/pom.xml @@ -0,0 +1,201 @@ + + + 4.0.0 + + org.openstack.identity + docs + 1.0.0-SNAPSHOT + jar + Keystone Dev Guide + + + Rackspace Research Repositories + + true + + + + rackspace-research + Rackspace Research Repository + http://maven.research.rackspacecloud.com/content/groups/public/ + + + + + rackspace-research + Rackspace Research Repository + http://maven.research.rackspacecloud.com/content/groups/public/ + + + + + + UTF-8 + 1.0.5-SNAPSHOT + + + + + junit + junit + 3.8.1 + test + + + com.sun.xml.bind + jaxb-impl + 2.1.12 + + + com.thoughtworks.xstream + xstream + 1.3.1 + + + org.codehaus.jettison + jettison + 1.1 + + + + net.sourceforge.saxon + saxon + 9.1.0.8 + + + com.rackspace.cloud.api + clouddocs-maven-plugin + ${doctools.version} + + + + + + target/docbkx/pdf + + **/*.fo + + + + + + + org.apache.maven.plugins + maven-dependency-plugin + + + unpack-shared-resources + + unpack-dependencies + + generate-sources + + ${project.build.directory}/generated-resources + com.rackspace.cloud.api + clouddocs-maven-plugin + + true + **/normalizeWadl/*.xsl + + + + + + + org.apache.maven.plugins + maven-antrun-plugin + 1.5 + + + ant + generate-sources + + + + + + + + + + + + run + + + + + + com.rackspace.cloud.api + clouddocs-maven-plugin + ${doctools.version} + + + g1 + + generate-pdf + + generate-sources + + false + + + + g2 + + generate-webhelp + + generate-sources + + + 1 + os-identitydevguide + 1 + UA-17511903-6 + + appendix toc,title + article/appendix nop + article toc,title + book title,figure,table,example,equation + chapter toc,title + part toc,title + preface toc,title + qandadiv toc + qandaset toc + reference toc,title + set toc,title + + + + + + + + + + + + + + + + + + true + src/docbkx + + identity-dev-guide.xml + + reviewer + openstack + + + + + diff --git a/openstack-identity-api/src/docbkx/identity-client-api.xml b/openstack-identity-api/src/docbkx/identity-client-api.xml new file mode 100644 index 00000000..78b18146 --- /dev/null +++ b/openstack-identity-api/src/docbkx/identity-client-api.xml @@ -0,0 +1,175 @@ + + + + + + + +GET'> +PUT'> +POST'> +DELETE'> +HEAD'> + + + + + + +'> + + + +This operation does not require a request body.'> + + +Verb +URI +Description + +'> + + +Verb +URI +Description + +'> +]> + + Service API (Client Operations) + The operations described in this chapter allow clients to authenticate and get + access tokens and service endpoints. +
+ Core Service API + The following calls are core Keystone Service APIs in version 2.0 + + &URI_REFHEAD; + + + &POST; + /tokens + Authenticate to generate a token. + + + &GET; + /tenants + Get a list of tenants accessible with supplied token. + + + +
+ +
+ Available Operations +
+ Authenticate for Service API + + &URI_REFHEAD; + + + &POST; + /tokens + Authenticate to generate a token. + + + + &CODES;200, 203 + &ERROR_CODES; unauthorized (401), userDisabled + (403), badRequest (400), identityFault + (500), serviceUnavailable(503) + + This call will return a token if successful. Each ReST request against other services (or other + calls on Keystone such as the GET /tenants call) + requires the inclusion of a specific authorization token HTTP x-header, defined as X-Auth-Token. + Clients obtain + this token, along with the URL to other service APIs, by first authenticating against the + Keystone Service and supplying valid credentials. + + + Client authentication is provided via a ReST interface using the POST method, + with v2.0/tokens supplied as the path. A payload of credentials must be included + in the body. + + + The Keystone Service is a ReSTful web service. It is the entry point to all service APIs. + To access the Keystone Service, you must know URL of the Keystone service. + + + XML Auth Request + + + + + + JSON Auth Request + + + + + + XML Auth Response + + + + + + JSON Auth Response + + + + +
+
+ Get Tenants + + &LONG_URI_REFHEAD; + + + &GET; + /tenants + Get a list of tenants. + + + + &CODES;200, 203 + &ERROR_CODES; unauthorized (401), + forbidden(403), overLimit(413), + badRequest (400), identityFault (500), + serviceUnavailable(503) + + The operation returns a list of tenants which the supplied token provides + access to. This call must be authenticated, so a valid token must + be passed in as a header. + + + Tenants Request with Auth Token + + + + + &NO_REQUEST; + + JSON Tenants Response + + + + + + XML Tenants Response + + + + +
+
+
+ diff --git a/openstack-identity-api/src/docbkx/identity-concepts.xml b/openstack-identity-api/src/docbkx/identity-concepts.xml new file mode 100644 index 00000000..5be7226f --- /dev/null +++ b/openstack-identity-api/src/docbkx/identity-concepts.xml @@ -0,0 +1,99 @@ + + + Identity Service Concepts + + The Keystone Identity Service has several key concepts which are + important to understand: + + + + User + A digital representation of a person, system, or service who uses OpenStack cloud services. + Keystone authentication services will validate that incoming request are being made by the user + who claims to be making the call. Users have a login and may be assigned tokens to access + resources. Users may be directly assigned to a particular tenant and + behave as if they are contained in that tenant. + + + Credentials + + Data that belongs to, is owned by, and generally only known by a user that the user can present + to prove they are who they are (since nobody else should know that data). + Examples are: + + a matching username and password + a matching username and API key + yourself and a driver's license with a picture of you + a token that was issued to you that nobody else knows of + + + + + Authentication + + In the context of Keystone, authentication is the act of confirming the identity of a + user or the truth of a claim. + Keystone will confirm that incoming request are being made by the user + who claims to be making the call by validating a set of claims that the user is making. + These claims are initially in the form of a set of credentials (username & password, + or username and API key). After initial confirmation, Keystone will issue the user a token + which the user can then provide to demonstrate that their identity has been authenticated + when making subsequent requests. + + + + Token + + A token is an arbitrary bit of text that is used to access + resources. Each token has a scope which describes which + resources are accessible with it. A token may be + revoked at anytime and is valid for a finite duration. + + + While Keystone supports token-based authentication in this release, + the intention is for it to support additional protocols in the + future. The intent is for it to be an integration service foremost, and not + a aspire to be a full-fledged identity store and management solution. + + + + Tenant + + 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. + + + + Service + + An OpenStack service, such as Compute (Nova), Object Storage (Swift), or Image Service (Glance). A service provides + one or more endpoints through which users can access resources and perform + (presumably useful) operations. + + + + Endpoint + + An network-accessible address, usually described by URL, where a service may be accessed. If using an extension for templates, you can create an endpoint template, which represents the templates of all the consumable services that are available across the regions. + + + + Role + A personality that a user assumes when performing a specific set of operations. + A role includes a set of right and privileges. A user assuming that role inherits + those rights and privileges. + + In Keystone, a token that is issued to a user includes the list of roles that user + can assume. Services that are being called by that user determine how they interpret the set + of roles a user has and which operations or resources each roles grants access to. + + + + + + + diff --git a/openstack-identity-api/src/docbkx/identity-dev-guide.xml b/openstack-identity-api/src/docbkx/identity-dev-guide.xml new file mode 100755 index 00000000..adc64a6e --- /dev/null +++ b/openstack-identity-api/src/docbkx/identity-dev-guide.xml @@ -0,0 +1,49 @@ + + + + Keystone Developer Guide + + + + + + + + OpenStack + + + + 2010 + 2011 + OpenStack + + API v2.0 + Keystone - OpenStack Identity + 2011-08-29 + + + Copyright details are filled in by the template. + + + + This document is intended for software developers interested in developing + applications that utilize the Keystone Identity Service for authentication. This + document also includes details on how to integrate services with the Keystone + Identity Service. + + + + + + + + diff --git a/openstack-identity-api/src/docbkx/identity-general-api-info.xml b/openstack-identity-api/src/docbkx/identity-general-api-info.xml new file mode 100644 index 00000000..bf52f438 --- /dev/null +++ b/openstack-identity-api/src/docbkx/identity-general-api-info.xml @@ -0,0 +1,645 @@ + + + + + + + +GET'> +PUT'> +POST'> +DELETE'> +HEAD'> + + + + + + +'> + + + +This operation does not require a request body.'> + + +Verb +URI +Description + +'> + + +Verb +URI +Description + +'> +]> + + Overview of Keystone API + The Keystone Identity Service allows clients to obtain tokens that can be used to access + OpenStack cloud services. This document is intended for software developers interested in + developing applications that utilize the Keystone Identity Service API for authentication. + + This Guide assumes the reader is familiar with RESTful web services, HTTP/1.1, and JSON + and/or XML serialization formats. +
+ General API Information + The Keystone API is implemented using a RESTful web service interface. All requests to + authenticate and operate against the Keystone API should be performed using SSL over HTTP + (HTTPS) on TCP port 443. +
+
+ Request/Response Types + The Keystone API supports both the JSON and XML data serialization formats. The request + format is specified using the Content-Type header and is required for + operations that have a request body. The response format can be specified in requests using + either the Accept header or adding an .xml or .json + extension to the request URI. Note that it is possible for a response to be serialized using + a format different from the request (see example below). If no response format is specified, + JSON is the default. If conflicting formats are specified using both an Accept + header and a query extension, the query extension takes precedence. + + + + + + + + + + + + + + + + + + + + + + + + +
Response Types
FormatAccept HeaderQuery ExtensionDefault
JSONapplication/json.jsonYes
XMLapplication/xml.xmlNo
+ + JSON Request with Headers + + + + + + + + + XML Response with Headers + + + + + + + +
+
+ Content Compression + Request and response body data my be encoded with gzip compression in order to + accelerate interactive performance of API calls and responses. This is controlled using the + Accept-Encoding header on the request from the client and indicated by the + Content-Encoding header in the server response. Unless the header is + explicitly set, encoding defaults to disabled. + + + + + + + + + + + + + + + + + + + + + +
Compression Headers
Header TypeNameValue
HTTP/1.1 RequestAccept-Encodinggzip
HTTP/1.1 ResponseContent-Encodinggzip
+
+
+ Paginated Collections + + To reduce load on the service, list operations will + return a maximum number of items at a time. The + maximum number of items returned is determined by the + Identity provider. To navigate the collection, the + parameters limit and + marker can be set in the URI + (e.g.?limit=100&marker=1234). + The marker parameter is the ID + of the last item in the previous list. Items are + sorted by update time. When an update time is not + available they are sorted by ID. The + limit parameter sets the page + size. Both parameters are optional. If the client + requests a limit beyond that + which is supported by the deployment an overLimit + (413) fault may be thrown. A + marker with an invalid ID will return an itemNotFound + (404) fault. + + + + Paginated collections never return itemNotFound + (404) faults when the + collection is empty — clients should expect + an empty collection. + + + + For convenience, collections contain atom "next" and + "previous" links. The first page in the list will not + contain a "previous" link, the last page in the list + will not contain a "next" link. The following examples + illustrate three pages in a collection of tenants. The + first page was retrieved via a &GET; to + http://identity.api.openstack.org/v2.0/1234/tenants?limit=1. + In these examples, the limit + parameter sets the page size to a single item. + Subsequent "next" and "previous" links will honor the + initial page size. Thus, a client may follow links to + traverse a paginated collection without having to + input the marker parameter. + + + Tenant Collection, First Page: XML + + + + + + Tenant Collection, First Page: JSON + + + + Tenant Collection, Second Page: XML + + + + + + Tenant Collection, Second Page: JSON + + + + Tenant Collection, Last Page: XML + + + + + + Tenant Collection, Last Page: JSON + + + + In the JSON representation, paginated collections contain + a values property that contains the + items in the collections. Links are accessed via the + links property. The approach allows + for extensibility of both the collection members and of + the paginated collection itself. It also allows + collections to be embedded in other objects as illustrated + below. Here, a subset of groups are presented within a + user. Clients must follow the "next" link to continue to + retrieve additional groups belonging to a user. + + + Paginated Roles in a User: XML + + + + + + Paginated Roles in an User: JSON + + +
+
+ Versions + + The OpenStack Identity API uses both a URI and a MIME + type versioning scheme. In the URI scheme, the first + element of the path contains the target version + identifier (e.g. https://identity.api.openstack.org/ + v2.0/…). The MIME type versioning scheme uses + HTTP content negotiation where the Accept + or Content-Type headers contains a MIME + type that includes the version ID as a parameter + (application/vnd.openstack.identity+xml;version=1.1). A + version MIME type is always linked to a base MIME type + (application/xml or application/json). If conflicting + versions are specified using both an HTTP header and a + URI, the URI takes precedence. + + + Request with MIME type versioning + +GET /tenants HTTP/1.1 +Host: identity.api.openstack.org +Accept: application/vnd.openstack.identity+xml;version=1.1 +X-Auth-Token: eaaafd18-0fed-4b3a-81b4-663c99ec1cbb + + + + Request with URI versioning + +GET /v1.1/tenants HTTP/1.1 +Host: identity.api.openstack.org +Accept: application/xml +X-Auth-Token: eaaafd18-0fed-4b3a-81b4-663c99ec1cbb + + + + + The MIME type versioning approach allows for the + creating of permanent links, because the version + scheme is not specified in the URI path: + https://api.identity.openstack.org/tenants/12234. + + + + If a request is made without a version specified in + the URI or via HTTP headers, then a multiple-choices + response (300) will follow + providing links and MIME types to available versions. + + + Multiple Choices Response: XML + + + + + + Multiple Choices Response: JSON + + + + New features and functionality that do not break + API-compatibility will be introduced in the current + version of the API as extensions (see below) and the + URI and MIME types will remain unchanged. Features or + functionality changes that would necessitate a break + in API-compatibility will require a new version, which + will result in URI and MIME type version being updated + accordingly. When new API versions are released, older + versions will be marked as + DEPRECATED. Providers should work with + developers and partners to ensure there is adequate + time to migrate to the new version before deprecated + versions are discontinued. + + + Your application can programmatically determine + available API versions by performing a &GET; on the + root URL (i.e. with the version and everything to the + right of it truncated) returned from the + authentication system. Note that an Atom + representation of the versions resources is supported + when issuing a request with the Accept + header containing application/atom+xml or by adding a + .atom to the request URI. This allows standard Atom + clients to track version changes. + + + Versions List Request + +GET HTTP/1.1 +Host: identity.api.openstack.org + + + &CODES;200, 203 + &ERROR_CODES; badRequest + (400), identityFault + (500), + serviceUnavailable(503) + &NO_REQUEST; + + Versions List Response: XML + + + + + + Versions List Response: Atom + + + + + + Versions List Response: JSON + + + + You can also obtain additional information about a + specific version by performing a &GET; on the base + version URL + (e.g. https://identity.api.openstack.org/v1.1/). + Version request URLs should always end with a trailing + slash (/). If the slash is omitted, the server may + respond with a 302 + redirection request. Format extensions may be placed + after the slash + (e.g. https://identity.api.openstack.org/v1.1/.xml). Note + that this is a special case that does not hold true + for other API requests. In general, requests such as + /tenants.xml and /tenants/.xml are handled + equivalently. + + + Version Details Request + +GET HTTP/1.1 +Host: identity.api.openstack.org/v1.1/ + + + &CODES;200, 203 + &ERROR_CODES; badRequest + (400), identityFault + (500), + serviceUnavailable(503) + &NO_REQUEST; + + Version Details Response: XML + + + + + + Version Details Response: Atom + + + + + + Version Details Response: JSON + + + + The detailed version response contains pointers to + both a human-readable and a machine-processable + description of the API service. The machine-processable description is written in the Web + Application Description Language (WADL). + + + If there is a discrepancy between the two specifications, the WADL is + authoritative as it contains the most accurate and up-to-date description of the + API service. + +
+
+ Extensions + + The OpenStack Identity API is extensible. Extensions + serve two purposes: They allow the introduction of new + features in the API without requiring a version change + and they allow the introduction of vendor specific + niche functionality. Applications can programmatically + determine what extensions are available by performing + a &GET; on the /extensions URI. Note that this is a + versioned request — that is, an extension + available in one API version may not be available in + another. + + + + + Verb + URI + Description + + + + + &GET; + /extensions + Returns a list of available extensions + + + + &CODES;200, 203 + &ERROR_CODES; badRequest + (400), identityFault (500), + serviceUnavailable(503) + &NO_REQUEST; + + Each extension is identified by two unique identifiers, a + namespace and an + alias. Additionally an extension + contains documentation links in various formats. + + + Extensions Response: XML + + + + + + Extensions Response: JSON + + + + Extensions may also be queried individually by their + unique alias. This provides the simplest method of + checking if an extension is available as an unavailable + extension will issue an itemNotFound + (404) response. + + + + + Verb + URI + Description + + + + + &GET; + /extensions/alias + Return details of a single extension + + + + &CODES;200, 203 + &ERROR_CODES; itemNotFound + (404), badRequest + (400), identityFault + (500), + serviceUnavailable(503) + &NO_REQUEST; + + Extension Response: xml + + + + + + Extensions Response: JSON + + + + Extensions may define new data types, parameters, actions, + headers, states, and resources. In XML, additional + elements and attributes may be defined. These elements + must be defined in the extension's namespace. In JSON, the + alias must be used. The volumes element in the and + + is defined in the RS-META namespace. Extended + headers are always prefixed with X- followed + by the alias and a dash: (X-RS-META-HEADER1). + Parameters must be prefixed with the extension alias + followed by a colon. + + + + Applications should be prepared to ignore response + data that contains extension elements. Also, + applications should also verify that an extension is + available before submitting an extended request. + + + + Extended User Response: XML + + + + + + Extended User Response: JSON + + +
+
+ Faults + When an error occurs the system will return an HTTP error response code denoting the + type of error. The system will also return additional information about the fault in the + body of the response. + + XML Fault Response + + + + + + JSON Fault Response + + + + + The error code is returned in the body of the response for convenience. The message + section returns a human readable message. The details section is optional and may contain + useful information for tracking down an error (e.g a stack trace). + The root element of the fault (e.g. identityFault) may change depending on the type of error. + The following is an example of an itemNotFound error. + + XML Not Found Fault + + + + + + JSON Not Found Fault + + + + + The following is a list of possible fault types along with their associated error + codes. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Fault Types
Fault ElementAssociated Error CodeExpected in All Requests
identityFault500, 400 ✓
serviceUnavailable503 ✓
badRequest400 ✓
unauthorized401 ✓
overLimit413 +
userDisabled403 +
forbidden403 +
itemNotFound404 +
tenantConflict409 +
+ From an XML schema perspective, all API faults are extensions of the base fault type + identityFault. When working with a system that binds XML to actual classes (such + as JAXB), one should be capable of using identityFault as a “catch-all” if + there's no interest in distinguishing between individual fault types. +
+
diff --git a/openstack-identity-api/src/docbkx/identity-service-api.xml b/openstack-identity-api/src/docbkx/identity-service-api.xml new file mode 100644 index 00000000..3b19b23c --- /dev/null +++ b/openstack-identity-api/src/docbkx/identity-service-api.xml @@ -0,0 +1,591 @@ + + + + + + + +GET'> +PUT'> +POST'> +DELETE'> +HEAD'> + + + + + + +'> + + + +This operation does not require a request body.'> + + +Verb +URI +Description + +'> + + +Verb +URI +Description + +'> +]> + + Admin API (Service Developer Operations) + + + The operations described in this chapter allow service developers to get and validate + access tokens, manage users, tenants, roles, and service endpoints. + +
+ Core Admin API + The following calls are core for the Keystone Admin 2.0 APIs + +
+ Admin Access + Most calls on the Admin API require authentication. The only calls available without authentication are the calls to discover the service (getting version info, WADL contract, dev guide, help, etc…) and the call to authenticate and get a token. + +Authentication is performed by passing in a valid token in the X-Auth-Token header on the request from the client. +Keystone will verify the token has (or belongs to a user that has) the Admin role. + + + See the readme file or administrator guides for how to bootstrap Keystone and create your first administrator. + + + + + + + + + + + + + + + + + +
Authentication Header
Header TypeNameValue
HTTP/1.1 RequestX-Auth-Tokentxfa8426a08eaf
+
+
+ Tokens + + &LONG_URI_REFHEAD; + + + &POST; + /tokens + Returns a token in exchange for valid credentials. + + + &GET; + /tokens/tokenId?belongsTo=tenantId + Validate a token.If `belongsTo` is provided, validates that a token belongs to a specific tenant. + + + &HEAD; + /tokens/tokenId?belongsTo=tenantId + Validate a token.(Quick check).Returns no body. + If `belongsTo` is provided, validates that a token belongs to a specific tenant. + + + + +
+ +
+ Users + + &LONG_URI_REFHEAD; + + + &GET; + /users?username=userName + Returns detailed information about a specific user, by user name. + + + &GET; + /users/userId + Returns detailed information about a specific user, by user id. + + + &GET; + + /users/userId/roles + + + Get a list of global roles for a specific user (excludes tenant roles). + + + + +
+ +
+ Tenants + + &LONG_URI_REFHEAD; + + + &GET; + /tenants + Get a list of tenants. + + + &GET; + /tenants/?tenantname=tenantName + Returns detailed information about a tenant, by name. + + + &GET; + /tenants/tenantId + Returns detailed information about a tenant, by id. + + + &GET; + /tenants/tenantId/roles + Get roles of a tenant. + + + &GET; + + /tenants/tenantId/endpoints + + + Get a list of endpoints for a tenant. + + + + &GET; + + /tenants/tenantId/users/userId/roles + + + Returns a list of roles for a user on a specific tenant. + + + + +
+
+
+ Token Operations +
+ Authenticate + + &URI_REFHEAD; + + + &POST; + /tokens + Authenticate to generate a token. + + + + &CODES;200, 203 + &ERROR_CODES; unauthorized (401), userDisabled + (403), badRequest (400), identityFault + (500), serviceUnavailable(503) + + TenantID is optional and may be used to specify that a + token should be returned that has access to the resources + of that particular tenant. + + + XML Auth Request + + + + + + JSON Auth Request + + + + + + XML Auth Response + + + + + + JSON Auth Response + + + + +
+ +
+ Validate Token + + &LONG_URI_REFHEAD; + + + &GET; + /tokens/tokenId?belongsTo=tenantId + Check that a token is valid and that it belongs to a particular user + and return the permissions relevant to a particular client. + + + + &CODES;200, 203 + &ERROR_CODES; unauthorized (401), forbidden + (403), userDisabled(403), + badRequest (400), itemNotFound (404), + identityFault(500), + serviceUnavailable(503) + &NO_REQUEST; + + Valid tokens will exist in the + /tokens/tokenId path and invalid + tokens will not. In other words, a user should expect an + itemNotFound (404) fault for an + invalid token. + + + XML Validate Token Response + + + + + + JSON Validate Token Response + + + + +
+
+ Validate Token + + &LONG_URI_REFHEAD; + + + &HEAD; + /tokens/tokenId?belongsTo=tenantId + Check that a token is valid and that it belongs to a particular user + (For perfromance). + + + + &CODES;200, 203 + &ERROR_CODES; unauthorized (401), forbidden + (403), userDisabled(403), + badRequest (400), itemNotFound (404), + identityFault(500), + serviceUnavailable(503) + &NO_REQUEST; + + Valid tokens will exist in the + /tokens/tokenId path and invalid + tokens will not. In other words, a user should expect an + itemNotFound (404) fault for an + invalid token. + + + XML Validate Token Response + + No Response body is returned. + + + + JSON Validate Token Response + + No Response body is returned. + + +
+
+ +
+ User Operations +
+ Get a User + + &LONG_URI_REFHEAD; + + + &GET; + /users/userId + Get a user by user id. + + + + &CODES;200, 203 + &ERROR_CODES; unauthorized (401), + forbidden(403), itemNotFound(404), + badRequest (400), identityFault (500), + serviceUnavailable(503) + &NO_REQUEST; + + XML User Response + + + + + + JSON User Response + + + + +
+ +
+ Get a User + + &LONG_URI_REFHEAD; + + + &GET; + /users?username=userName + Get a user by user name. + + + + &CODES;200, 203 + &ERROR_CODES; unauthorized (401), + forbidden(403), itemNotFound(404), + badRequest (400), identityFault (500), + serviceUnavailable(503) + &NO_REQUEST; + + XML User Response + + + + + + JSON User Response + + + + +
+ +
+ Get list of User Roles + + &LONG_URI_REFHEAD; + + + &GET; + /users/user_id/roles + Returns a list of global roles associated with a specific user (excludes tenant roles). + + + + &CODES;200, 203 + &ERROR_CODES; unauthorized (401), + forbidden(403), itemNotFound(404), + badRequest (400), identityFault (500), + serviceUnavailable(503) + &NO_REQUEST; + + XML User Role Response + + + + + + JSON User Role Response + + + + +
+
+ +
+ Tenant Operations +
+ Get Tenants + + &LONG_URI_REFHEAD; + + + &GET; + /tenants + Get a list of tenants. + + + + &CODES;200, 203 + &ERROR_CODES; unauthorized (401), + forbidden(403), overLimit(413), + badRequest (400), identityFault (500), + serviceUnavailable(503) + + The operation returns a list of tenants which the caller has + access to. This call must be authenticated, so a valid token must + be passed in as a header. + + + Tenants Request with Auth Token + + + + + &NO_REQUEST; + + JSON Tenants Response + + + + + + XML Tenants Response + + + + +
+ +
+ Get a Tenant + + &LONG_URI_REFHEAD; + + + &GET; + /tenants/tenantId + Get a tenant. + + + + &CODES;200, 203 + &ERROR_CODES; unauthorized (401), + forbidden(403), itemNotFound(404), + badRequest (400), identityFault (500), + serviceUnavailable(503) + &NO_REQUEST; + + XML Tenant Response + + + + + + JSON Tenant Response + + + + +
+ +
+ Get a Tenant by Name + + &LONG_URI_REFHEAD; + + + &GET; + /tenants?name=tenant_name + Get a tenant by name. + + + + &CODES;200, 203 + &ERROR_CODES; unauthorized (401), + forbidden(403), itemNotFound(404), + badRequest (400), identityFault (500), + serviceUnavailable(503) + &NO_REQUEST; + + XML Tenant Response + + + + + + JSON Tenant Response + + + + +
+ +
+ Get list of Tenant Endpoints + + &LONG_URI_REFHEAD; + + + &GET; + /tenants/tenantId/endpoints + Returns a list of roles for a user on a specific tenant. + + + + &CODES;200, 203 + &ERROR_CODES; unauthorized (401), + forbidden(403), itemNotFound(404), + badRequest (400), identityFault (500), + serviceUnavailable(503) + &NO_REQUEST; + + XML Tenant Response + + + + + + JSON Tenant Response + + + + +
+ +
+ Get list of Roles assigned for a User on a Tenant + + &LONG_URI_REFHEAD; + + + &GET; + /tenants/tenant_id/users/user_id/roles + Returns a list of roles assigned to a user for a specific tenant. + + + + &CODES;200, 203 + &ERROR_CODES; unauthorized (401), + forbidden(403), itemNotFound(404), + badRequest (400), identityFault (500), + serviceUnavailable(503) + &NO_REQUEST; + + XML Tenant Response + + + + + + JSON Tenant Response + + + + +
+
+
diff --git a/openstack-identity-api/src/docbkx/img/Check_mark_23x20_02.svg b/openstack-identity-api/src/docbkx/img/Check_mark_23x20_02.svg new file mode 100644 index 00000000..3051a2f9 --- /dev/null +++ b/openstack-identity-api/src/docbkx/img/Check_mark_23x20_02.svg @@ -0,0 +1,60 @@ + + + + + + + + + image/svg+xml + + + + + + + + diff --git a/openstack-identity-api/src/docbkx/samples/auth.json b/openstack-identity-api/src/docbkx/samples/auth.json new file mode 100644 index 00000000..76583b02 --- /dev/null +++ b/openstack-identity-api/src/docbkx/samples/auth.json @@ -0,0 +1,67 @@ +{ + "auth": { + "token": { + "id": "asdasdasd-adsasdads-asdasdasd-adsadsasd", + "expires": "2010-11-01T03:32:15-05:00" + }, + "serviceCatalog": [ + { + "name": "Cloud Servers", + "type": "compute", + "endpoints": [ + { + "publicURL": "https://compute.north.host/v1/1234", + "internalURL": "https://compute.north.host/v1/1234", + "region": "North", + "tenantId": "1234", + "versionId": "1.0", + "versionInfo": "https://compute.north.host/v1.0/", + "versionList": "https://compute.north.host/" + }, { + "publicURL": "https://compute.north.host/v1.1/3456", + "internalURL": "https://compute.north.host/v1.1/3456", + "region": "North", + "tenantId": "3456", + "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", + "tenantId": "1234", + "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", + "tenantId": "3456", + "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": "https://identity.host/v2.0/endpoints?session=2hfh8Ar&marker=2" + } + ] + } +} \ No newline at end of file diff --git a/openstack-identity-api/src/docbkx/samples/auth.xml b/openstack-identity-api/src/docbkx/samples/auth.xml new file mode 100644 index 00000000..01f3036b --- /dev/null +++ b/openstack-identity-api/src/docbkx/samples/auth.xml @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/openstack-identity-api/src/docbkx/samples/auth_credentials-OS-EC2.json b/openstack-identity-api/src/docbkx/samples/auth_credentials-OS-EC2.json new file mode 100644 index 00000000..93461cea --- /dev/null +++ b/openstack-identity-api/src/docbkx/samples/auth_credentials-OS-EC2.json @@ -0,0 +1,10 @@ +{ + "auth": { + "OS-EC2-ec2Credentials": { + "username": "test_user", + "secret": "aaaaa", + "signature": "bbb", + }, + "tenantId": "77654" + } +} \ No newline at end of file diff --git a/openstack-identity-api/src/docbkx/samples/auth_credentials-OS-EC2.xml b/openstack-identity-api/src/docbkx/samples/auth_credentials-OS-EC2.xml new file mode 100644 index 00000000..b3c6abb0 --- /dev/null +++ b/openstack-identity-api/src/docbkx/samples/auth_credentials-OS-EC2.xml @@ -0,0 +1,11 @@ + + + + \ No newline at end of file diff --git a/openstack-identity-api/src/docbkx/samples/auth_credentials-RAX-KEY.json b/openstack-identity-api/src/docbkx/samples/auth_credentials-RAX-KEY.json new file mode 100644 index 00000000..adc7507c --- /dev/null +++ b/openstack-identity-api/src/docbkx/samples/auth_credentials-RAX-KEY.json @@ -0,0 +1,8 @@ +{ + "auth": { + "RAX-KEY:apikeyCredentials": { + "username": "test_user", + "apikey": "aaaaa-bbbbb-ccccc-12345678" + } + } +} \ No newline at end of file diff --git a/openstack-identity-api/src/docbkx/samples/auth_credentials-RAX-KEY.xml b/openstack-identity-api/src/docbkx/samples/auth_credentials-RAX-KEY.xml new file mode 100644 index 00000000..d8529896 --- /dev/null +++ b/openstack-identity-api/src/docbkx/samples/auth_credentials-RAX-KEY.xml @@ -0,0 +1,7 @@ + + + + diff --git a/openstack-identity-api/src/docbkx/samples/auth_credentials.json b/openstack-identity-api/src/docbkx/samples/auth_credentials.json new file mode 100644 index 00000000..282f321d --- /dev/null +++ b/openstack-identity-api/src/docbkx/samples/auth_credentials.json @@ -0,0 +1,9 @@ +{ + "auth": { + "passwordCredentials": { + "username": "test_user", + "password": "mypass" + }, + "tenantId": "1234" + } +} \ No newline at end of file diff --git a/openstack-identity-api/src/docbkx/samples/auth_credentials.xml b/openstack-identity-api/src/docbkx/samples/auth_credentials.xml new file mode 100644 index 00000000..a02c7c8e --- /dev/null +++ b/openstack-identity-api/src/docbkx/samples/auth_credentials.xml @@ -0,0 +1,8 @@ + + + + \ No newline at end of file diff --git a/openstack-identity-api/src/docbkx/samples/choices.json b/openstack-identity-api/src/docbkx/samples/choices.json new file mode 100644 index 00000000..9f1783c1 --- /dev/null +++ b/openstack-identity-api/src/docbkx/samples/choices.json @@ -0,0 +1,67 @@ +{ + "choices": { + "values": [ + { + "id": "v1.0", + "status": "DEPRECATED", + "links": [ + { + "rel": "self", + "href": "http://identity.api.openstack.org/v1.0" + } + ], + "media-types": { + "values": [ + { + "base": "application/xml", + "type": "application/vnd.openstack.identity+xml;version=1.0" + }, { + "base": "application/json", + "type": "application/vnd.openstack.identity+json;version=1.0" + } + ] + } + }, { + "id": "v1.1", + "status": "CURRENT", + "links": [ + { + "rel": "self", + "href": "http://identity.api.openstack.org/v1.1" + } + ], + "media-types": { + "values": [ + { + "base": "application/xml", + "type": "application/vnd.openstack.identity+xml;version=1.1" + }, { + "base": "application/json", + "type": "application/vnd.openstack.identity+json;version=1.1" + } + ] + } + }, { + "id": "v2.0", + "status": "BETA", + "links": [ + { + "rel": "self", + "href": "http://identity.api.openstack.org/v2.0" + } + ], + "media-types": { + "values": [ + { + "base": "application/xml", + "type": "application/vnd.openstack.identity+xml;version=2.0" + }, { + "base": "application/json", + "type": "application/vnd.openstack.identity+json;version=2.0" + } + ] + } + } + ] + } +} diff --git a/openstack-identity-api/src/docbkx/samples/choices.xml b/openstack-identity-api/src/docbkx/samples/choices.xml new file mode 100644 index 00000000..229b4868 --- /dev/null +++ b/openstack-identity-api/src/docbkx/samples/choices.xml @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/openstack-identity-api/src/docbkx/samples/endpoint.json b/openstack-identity-api/src/docbkx/samples/endpoint.json new file mode 100644 index 00000000..e3b2bb21 --- /dev/null +++ b/openstack-identity-api/src/docbkx/samples/endpoint.json @@ -0,0 +1,6 @@ +{ + "endpoint": { + "id": 3, + "href": "https://auth.keystone.com/v2.0/endpoints/3" + } +} diff --git a/openstack-identity-api/src/docbkx/samples/endpoint.xml b/openstack-identity-api/src/docbkx/samples/endpoint.xml new file mode 100644 index 00000000..6fabeaff --- /dev/null +++ b/openstack-identity-api/src/docbkx/samples/endpoint.xml @@ -0,0 +1,6 @@ + + + diff --git a/openstack-identity-api/src/docbkx/samples/endpointTemplate.json b/openstack-identity-api/src/docbkx/samples/endpointTemplate.json new file mode 100644 index 00000000..fc75a0a1 --- /dev/null +++ b/openstack-identity-api/src/docbkx/samples/endpointTemplate.json @@ -0,0 +1,14 @@ +{ + "endpointTemplate": { + "id": 1, + "region": "North", + "global": true, + "type": "compute", + "publicURL": "https://compute.north.public.com/v1", + "internalURL": "https://compute.north.internal.com/v1", + "versionId": "1", + "versionInfo": "https://compute.north.public.com/v1/", + "versionList": "https://compute.north.public.com/", + "enabled": true + } +} diff --git a/openstack-identity-api/src/docbkx/samples/endpointTemplate.xml b/openstack-identity-api/src/docbkx/samples/endpointTemplate.xml new file mode 100644 index 00000000..1c4c6e90 --- /dev/null +++ b/openstack-identity-api/src/docbkx/samples/endpointTemplate.xml @@ -0,0 +1,17 @@ + + + + + \ No newline at end of file diff --git a/openstack-identity-api/src/docbkx/samples/endpointTemplates.json b/openstack-identity-api/src/docbkx/samples/endpointTemplates.json new file mode 100644 index 00000000..77f96ef9 --- /dev/null +++ b/openstack-identity-api/src/docbkx/samples/endpointTemplates.json @@ -0,0 +1,54 @@ +{ + "endpointsTemplates": [ + { + "id": 1, + "region": "North", + "global": true, + "type": "compute", + "publicURL": "https://compute.north.public.com/v1", + "internalURL": "https://compute.north.internal.com/v1", + "versionId": "1", + "versionInfo": "https://compute.north.public.com/v1/", + "versionList": "https://compute.north.public.com/", + "enabled": true + }, { + "id": 2, + "region": "South", + "serviceName": "compute", + "publicURL": "https://compute.south.public.com/v1", + "internalURL": "https://compute.south.internal.com/v1", + "versionId": "1", + "versionInfo": "https://compute.south.public.com/v1/", + "versionList": "https://compute.south.public.com/", + "enabled": false + }, { + "id": 3, + "region": "North", + "global": true, + "serviceName": "object-store", + "publicURL": "https://object-store.north.public.com/v1.0", + "versionId": "1.0", + "versionInfo": "https://object-store.north.public.com/v1.0/", + "versionList": "https://object-store.north.public.com/", + "enabled": true + }, { + "id": 4, + "region": "South", + "serviceName": "object-store", + "publicURL": "https://object-store.south.public.com/v2", + "versionId": "2", + "versionInfo": "https://object-store.south.public.com/v2/", + "versionList": "https://object-store.south.public.com/", + "enabled": true + }, { + "id": 5, + "global": true, + "serviceName": "OS-DNS:DNS", + "publicURL": "https://dns.public.com/v3.2", + "versionId": "1.0", + "versionInfo": "https://dns.public.com/v1.0/", + "versionList": "https://dns.public.com/", + "enabled": true + } + ] +} diff --git a/openstack-identity-api/src/docbkx/samples/endpointTemplates.xml b/openstack-identity-api/src/docbkx/samples/endpointTemplates.xml new file mode 100644 index 00000000..fb13a3b2 --- /dev/null +++ b/openstack-identity-api/src/docbkx/samples/endpointTemplates.xml @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + + + + + + diff --git a/openstack-identity-api/src/docbkx/samples/endpoints.json b/openstack-identity-api/src/docbkx/samples/endpoints.json new file mode 100644 index 00000000..951a6228 --- /dev/null +++ b/openstack-identity-api/src/docbkx/samples/endpoints.json @@ -0,0 +1,20 @@ +{ + "endpoints": [ + { + "id": 1, + "href": "https://auth.keystone.com/v2.0/endpoints/1" + }, { + "id": 2, + "href": "https://auth.keystone.com/v2.0/endpoints/2" + }, { + "id": 3, + "href": "https://auth.keystone.com/v2.0/endpoints/3" + }, { + "id": 4, + "href": "https://auth.keystone.com/v2.0/endpoints/4" + }, { + "id": 5, + "href": "https://auth.keystone.com/v2.0/endpoints/5" + } + ] +} diff --git a/openstack-identity-api/src/docbkx/samples/endpoints.xml b/openstack-identity-api/src/docbkx/samples/endpoints.xml new file mode 100644 index 00000000..df8480f9 --- /dev/null +++ b/openstack-identity-api/src/docbkx/samples/endpoints.xml @@ -0,0 +1,20 @@ + + + + + + + + + diff --git a/openstack-identity-api/src/docbkx/samples/ext-getuser.json b/openstack-identity-api/src/docbkx/samples/ext-getuser.json new file mode 100644 index 00000000..b1c80306 --- /dev/null +++ b/openstack-identity-api/src/docbkx/samples/ext-getuser.json @@ -0,0 +1,22 @@ +{ + "user": { + "roles": { + "values": [ + { + "tenantId": "1234", + "id": "Admin" + } + ] + }, + "id": "u1000", + "username": "jqsmith", + "email": "john.smith@example.org", + "enabled": true, + "RS-META:metadata": { + "values": { + "MetaKey1": "MetaValue1", + "MetaKey2": "MetaValue2" + } + } + } +} diff --git a/openstack-identity-api/src/docbkx/samples/ext-getuser.xml b/openstack-identity-api/src/docbkx/samples/ext-getuser.xml new file mode 100644 index 00000000..b155904a --- /dev/null +++ b/openstack-identity-api/src/docbkx/samples/ext-getuser.xml @@ -0,0 +1,13 @@ + + + + + + + MetaValue1 + MetaValue2 + + diff --git a/openstack-identity-api/src/docbkx/samples/extension.json b/openstack-identity-api/src/docbkx/samples/extension.json new file mode 100644 index 00000000..a62ea97a --- /dev/null +++ b/openstack-identity-api/src/docbkx/samples/extension.json @@ -0,0 +1,20 @@ +{ + "extension": { + "name": "User Metadata Extension", + "namespace": "http://docs.rackspacecloud.com/identity/api/ext/meta/v2.0", + "alias": "RS-META", + "updated": "2011-01-12T11:22:33-06:00", + "description": "Allows associating arbritrary metadata with a user.", + "links": [ + { + "rel": "describedby", + "type": "application/pdf", + "href": "http://docs.rackspacecloud.com/identity/api/ext/identity-meta-20111201.pdf" + }, { + "rel": "describedby", + "type": "application/vnd.sun.wadl+xml", + "href": "http://docs.rackspacecloud.com/identity/api/ext/identity-cbs.wadl" + } + ] + } +} diff --git a/openstack-identity-api/src/docbkx/samples/extension.xml b/openstack-identity-api/src/docbkx/samples/extension.xml new file mode 100644 index 00000000..056d7e96 --- /dev/null +++ b/openstack-identity-api/src/docbkx/samples/extension.xml @@ -0,0 +1,23 @@ + + + + + + Allows associating arbritrary metadata with a user. + + + + + + + + diff --git a/openstack-identity-api/src/docbkx/samples/extensions.json b/openstack-identity-api/src/docbkx/samples/extensions.json new file mode 100644 index 00000000..18803f07 --- /dev/null +++ b/openstack-identity-api/src/docbkx/samples/extensions.json @@ -0,0 +1,41 @@ +{ + "extensions": { + "values": [ + { + "name": "Reset Password Extension", + "namespace": "http://docs.rackspacecloud.com/identity/api/ext/rpe/v2.0", + "alias": "RS-RPE", + "updated": "2011-01-22T13:25:27-06:00", + "description": "Adds the capability to reset a user's password. The user is emailed when the password has been reset.", + "links": [ + { + "rel": "describedby", + "type": "application/pdf", + "href": "http://docs.rackspacecloud.com/identity/api/ext/identity-rpe-20111111.pdf" + }, { + "rel": "describedby", + "type": "application/vnd.sun.wadl+xml", + "href": "http://docs.rackspacecloud.com/identity/api/ext/identity-rpe.wadl" + } + ] + }, { + "name": "User Metadata Extension", + "namespace": "http://docs.rackspacecloud.com/identity/api/ext/meta/v2.0", + "alias": "RS-META", + "updated": "2011-01-12T11:22:33-06:00", + "description": "Allows associating arbritrary metadata with a user.", + "links": [ + { + "rel": "describedby", + "type": "application/pdf", + "href": "http://docs.rackspacecloud.com/identity/api/ext/identity-meta-20111201.pdf" + }, { + "rel": "describedby", + "type": "application/vnd.sun.wadl+xml", + "href": "http://docs.rackspacecloud.com/identity/api/ext/identity-meta.wadl" + } + ] + } + ] + } +} diff --git a/openstack-identity-api/src/docbkx/samples/extensions.xml b/openstack-identity-api/src/docbkx/samples/extensions.xml new file mode 100644 index 00000000..c11b06d7 --- /dev/null +++ b/openstack-identity-api/src/docbkx/samples/extensions.xml @@ -0,0 +1,39 @@ + + + + + + + Adds the capability to reset a user's password. The user is + emailed when the password has been reset. + + + + + + + + Allows associating arbritrary metadata with a user. + + + + + + diff --git a/openstack-identity-api/src/docbkx/samples/getuser-1.json b/openstack-identity-api/src/docbkx/samples/getuser-1.json new file mode 100644 index 00000000..1439651d --- /dev/null +++ b/openstack-identity-api/src/docbkx/samples/getuser-1.json @@ -0,0 +1,25 @@ +{ + "user": { + "roles": { + "values": [ + { + "tenantId": "1234", + "id": "Admin" + }, { + "tenantId": "1234", + "id": "DBUser" + } + ], + "links": [ + { + "rel": "next", + "href": "http://identity.api.openstack.org/v2.0/tenants/1234/users/u1000/roles?marker=Super" + } + ] + }, + "id": "u1000", + "username": "jqsmith", + "email": "john.smith@example.org", + "enabled": true + } +} diff --git a/openstack-identity-api/src/docbkx/samples/getuser-1.xml b/openstack-identity-api/src/docbkx/samples/getuser-1.xml new file mode 100644 index 00000000..531a229f --- /dev/null +++ b/openstack-identity-api/src/docbkx/samples/getuser-1.xml @@ -0,0 +1,13 @@ + + + + + + + diff --git a/openstack-identity-api/src/docbkx/samples/identity_fault.json b/openstack-identity-api/src/docbkx/samples/identity_fault.json new file mode 100644 index 00000000..9968eec2 --- /dev/null +++ b/openstack-identity-api/src/docbkx/samples/identity_fault.json @@ -0,0 +1,7 @@ +{ + "identityFault": { + "message": "Fault", + "details": "Error Details...", + "code": 500 + } +} diff --git a/openstack-identity-api/src/docbkx/samples/identity_fault.xml b/openstack-identity-api/src/docbkx/samples/identity_fault.xml new file mode 100644 index 00000000..6787af21 --- /dev/null +++ b/openstack-identity-api/src/docbkx/samples/identity_fault.xml @@ -0,0 +1,6 @@ + + + Fault +
Error Details...
+
diff --git a/openstack-identity-api/src/docbkx/samples/item_not_found.json b/openstack-identity-api/src/docbkx/samples/item_not_found.json new file mode 100644 index 00000000..8ba8c207 --- /dev/null +++ b/openstack-identity-api/src/docbkx/samples/item_not_found.json @@ -0,0 +1,7 @@ +{ + "itemNotFound": { + "message": "Item not found.", + "details": "Error Details...", + "code": 404 + } +} diff --git a/openstack-identity-api/src/docbkx/samples/item_not_found.xml b/openstack-identity-api/src/docbkx/samples/item_not_found.xml new file mode 100644 index 00000000..3f78b498 --- /dev/null +++ b/openstack-identity-api/src/docbkx/samples/item_not_found.xml @@ -0,0 +1,6 @@ + + + Item not found. +
Error Details...
+
diff --git a/openstack-identity-api/src/docbkx/samples/role.json b/openstack-identity-api/src/docbkx/samples/role.json new file mode 100644 index 00000000..b649810a --- /dev/null +++ b/openstack-identity-api/src/docbkx/samples/role.json @@ -0,0 +1,6 @@ +{ + "role": { + "id": "Guest", + "description": "Guest Access" + } +} diff --git a/openstack-identity-api/src/docbkx/samples/role.xml b/openstack-identity-api/src/docbkx/samples/role.xml new file mode 100644 index 00000000..48fe20d8 --- /dev/null +++ b/openstack-identity-api/src/docbkx/samples/role.xml @@ -0,0 +1,4 @@ + + + diff --git a/openstack-identity-api/src/docbkx/samples/roles.json b/openstack-identity-api/src/docbkx/samples/roles.json new file mode 100644 index 00000000..a55481bb --- /dev/null +++ b/openstack-identity-api/src/docbkx/samples/roles.json @@ -0,0 +1,13 @@ +{ + "roles": [ + { + "id": "Admin", + "tenantId": "1234", + "description": "All access" + }, { + "id": "Guest", + "tenantId": "3456", + "description": "Guest Access" + } + ] +} diff --git a/openstack-identity-api/src/docbkx/samples/roles.xml b/openstack-identity-api/src/docbkx/samples/roles.xml new file mode 100644 index 00000000..952c7b7c --- /dev/null +++ b/openstack-identity-api/src/docbkx/samples/roles.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/openstack-identity-api/src/docbkx/samples/samplerequestheader.txt b/openstack-identity-api/src/docbkx/samples/samplerequestheader.txt new file mode 100644 index 00000000..5641d874 --- /dev/null +++ b/openstack-identity-api/src/docbkx/samples/samplerequestheader.txt @@ -0,0 +1,4 @@ +POST /v2.0/tokens HTTP/1.1 +Host: identity.api.openstack.org +Content-Type: application/json +Accept: application/xml \ No newline at end of file diff --git a/openstack-identity-api/src/docbkx/samples/sampleresponseheader.txt b/openstack-identity-api/src/docbkx/samples/sampleresponseheader.txt new file mode 100644 index 00000000..aee1205a --- /dev/null +++ b/openstack-identity-api/src/docbkx/samples/sampleresponseheader.txt @@ -0,0 +1,4 @@ +HTTP/1.1 200 OKAY +Date: Mon, 12 Nov 2010 15:55:01 GMT +Content-Length: +Content-Type: application/xml; charset=UTF-8 \ No newline at end of file diff --git a/openstack-identity-api/src/docbkx/samples/service.json b/openstack-identity-api/src/docbkx/samples/service.json new file mode 100644 index 00000000..1b31aac4 --- /dev/null +++ b/openstack-identity-api/src/docbkx/samples/service.json @@ -0,0 +1,7 @@ +{ + "service": { + "id": "nova", + "type": "compute", + "description": "A description ..." + } +} diff --git a/openstack-identity-api/src/docbkx/samples/service.xml b/openstack-identity-api/src/docbkx/samples/service.xml new file mode 100644 index 00000000..f79a6724 --- /dev/null +++ b/openstack-identity-api/src/docbkx/samples/service.xml @@ -0,0 +1,4 @@ + + + diff --git a/openstack-identity-api/src/docbkx/samples/services.json b/openstack-identity-api/src/docbkx/samples/services.json new file mode 100644 index 00000000..6a0ac8e2 --- /dev/null +++ b/openstack-identity-api/src/docbkx/samples/services.json @@ -0,0 +1,13 @@ +{ + "services": [ + { + "id": "nova", + "type": "compute", + "description": "Computers in the Cloud" + }, { + "id": "glance", + "type": "image-service", + "description": "Server Images" + } + ] +} diff --git a/openstack-identity-api/src/docbkx/samples/services.xml b/openstack-identity-api/src/docbkx/samples/services.xml new file mode 100644 index 00000000..dd5327ef --- /dev/null +++ b/openstack-identity-api/src/docbkx/samples/services.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/openstack-identity-api/src/docbkx/samples/tenant.json b/openstack-identity-api/src/docbkx/samples/tenant.json new file mode 100644 index 00000000..794a61ce --- /dev/null +++ b/openstack-identity-api/src/docbkx/samples/tenant.json @@ -0,0 +1,8 @@ +{ + "tenant": { + "id": "1234", + "name": "ACME corp", + "description": "A description ...", + "enabled": true + } +} diff --git a/openstack-identity-api/src/docbkx/samples/tenant.xml b/openstack-identity-api/src/docbkx/samples/tenant.xml new file mode 100644 index 00000000..ce0137be --- /dev/null +++ b/openstack-identity-api/src/docbkx/samples/tenant.xml @@ -0,0 +1,5 @@ + + + A description... + diff --git a/openstack-identity-api/src/docbkx/samples/tenantlock.json b/openstack-identity-api/src/docbkx/samples/tenantlock.json new file mode 100644 index 00000000..611e4adb --- /dev/null +++ b/openstack-identity-api/src/docbkx/samples/tenantlock.json @@ -0,0 +1,5 @@ +{ + "tenant": { + "description": "A NEW description..." + } +} diff --git a/openstack-identity-api/src/docbkx/samples/tenantlock.xml b/openstack-identity-api/src/docbkx/samples/tenantlock.xml new file mode 100644 index 00000000..06a68a83 --- /dev/null +++ b/openstack-identity-api/src/docbkx/samples/tenantlock.xml @@ -0,0 +1,4 @@ + + + A NEW description... + diff --git a/openstack-identity-api/src/docbkx/samples/tenants-1.json b/openstack-identity-api/src/docbkx/samples/tenants-1.json new file mode 100644 index 00000000..4f845760 --- /dev/null +++ b/openstack-identity-api/src/docbkx/samples/tenants-1.json @@ -0,0 +1,18 @@ +{ + "tenants": { + "values": [ + { + "id": "1234", + "name": "ACME corp", + "description": "A description ...", + "enabled": true + } + ], + "links": [ + { + "rel": "next", + "href": "http://identity.api.openstack.org/v2.0/tenants?limit=1&marker=1234" + } + ] + } +} diff --git a/openstack-identity-api/src/docbkx/samples/tenants-1.xml b/openstack-identity-api/src/docbkx/samples/tenants-1.xml new file mode 100644 index 00000000..e486649e --- /dev/null +++ b/openstack-identity-api/src/docbkx/samples/tenants-1.xml @@ -0,0 +1,10 @@ + + + + A description... + + diff --git a/openstack-identity-api/src/docbkx/samples/tenants-2.json b/openstack-identity-api/src/docbkx/samples/tenants-2.json new file mode 100644 index 00000000..c966c505 --- /dev/null +++ b/openstack-identity-api/src/docbkx/samples/tenants-2.json @@ -0,0 +1,21 @@ +{ + "tenants": { + "values": [ + { + "id": "3645", + "name": "Iron Works", + "description": "A description ...", + "enabled": true + } + ], + "links": [ + { + "rel": "next", + "href": "http://identity.api.openstack.org/v2.0/tenants?limit=1&marker=3645" + }, { + "rel": "previous", + "href": "http://identity.api.openstack.org/v2.0/tenants?limit=1" + } + ] + } +} diff --git a/openstack-identity-api/src/docbkx/samples/tenants-2.xml b/openstack-identity-api/src/docbkx/samples/tenants-2.xml new file mode 100644 index 00000000..7b049c40 --- /dev/null +++ b/openstack-identity-api/src/docbkx/samples/tenants-2.xml @@ -0,0 +1,13 @@ + + + + A description... + + + diff --git a/openstack-identity-api/src/docbkx/samples/tenants-3.json b/openstack-identity-api/src/docbkx/samples/tenants-3.json new file mode 100644 index 00000000..8546234f --- /dev/null +++ b/openstack-identity-api/src/docbkx/samples/tenants-3.json @@ -0,0 +1,18 @@ +{ + "tenants": { + "values": [ + { + "id": "9999", + "name": "Bigz", + "description": "A description ...", + "enabled": true + } + ], + "links": [ + { + "rel": "previous", + "href": "http://identity.api.openstack.org/v2.0/tenants?limit=1&marker=1234" + } + ] + } +} diff --git a/openstack-identity-api/src/docbkx/samples/tenants-3.xml b/openstack-identity-api/src/docbkx/samples/tenants-3.xml new file mode 100644 index 00000000..a0edcadb --- /dev/null +++ b/openstack-identity-api/src/docbkx/samples/tenants-3.xml @@ -0,0 +1,10 @@ + + + + A description... + + + diff --git a/openstack-identity-api/src/docbkx/samples/tenants-request.txt b/openstack-identity-api/src/docbkx/samples/tenants-request.txt new file mode 100644 index 00000000..9dbf85e5 --- /dev/null +++ b/openstack-identity-api/src/docbkx/samples/tenants-request.txt @@ -0,0 +1,5 @@ +GET /v2.0/tenants HTTP/1.1 +Host: identity.api.openstack.org +Content-Type: application/json +X-Auth-Token: fa8426a0-8eaf-4d22-8e13-7c1b16a9370c +Accept: application/json \ No newline at end of file diff --git a/openstack-identity-api/src/docbkx/samples/tenants.json b/openstack-identity-api/src/docbkx/samples/tenants.json new file mode 100644 index 00000000..c0f2b5d6 --- /dev/null +++ b/openstack-identity-api/src/docbkx/samples/tenants.json @@ -0,0 +1,17 @@ +{ + "tenants": { + "values": [ + { + "id": "1234", + "name": "ACME Corp", + "description": "A description ...", + "enabled": true + }, { + "id": "3456", + "name": "Iron Works", + "description": "A description ...", + "enabled": true + } + ] + } +} \ No newline at end of file diff --git a/openstack-identity-api/src/docbkx/samples/tenants.xml b/openstack-identity-api/src/docbkx/samples/tenants.xml new file mode 100644 index 00000000..ac5fa2d9 --- /dev/null +++ b/openstack-identity-api/src/docbkx/samples/tenants.xml @@ -0,0 +1,14 @@ +HTTP/1.1 200 OK +Content-Type: application/xml; charset=UTF-8 +Content-Length: 200 +Date: Sun, 1 Jan 2011 9:00:00 GMT + + + + + A description... + + + A description... + + diff --git a/openstack-identity-api/src/docbkx/samples/updatedtenant.json b/openstack-identity-api/src/docbkx/samples/updatedtenant.json new file mode 100644 index 00000000..2acf53d1 --- /dev/null +++ b/openstack-identity-api/src/docbkx/samples/updatedtenant.json @@ -0,0 +1,8 @@ +{ + "tenant": { + "id": "1234", + "name": "ACME Corp", + "description": "A NEW description...", + "enabled": true + } +} diff --git a/openstack-identity-api/src/docbkx/samples/updatedtenant.xml b/openstack-identity-api/src/docbkx/samples/updatedtenant.xml new file mode 100644 index 00000000..5b36701a --- /dev/null +++ b/openstack-identity-api/src/docbkx/samples/updatedtenant.xml @@ -0,0 +1,5 @@ + + + A NEW description... + diff --git a/openstack-identity-api/src/docbkx/samples/user.json b/openstack-identity-api/src/docbkx/samples/user.json new file mode 100644 index 00000000..1623e95d --- /dev/null +++ b/openstack-identity-api/src/docbkx/samples/user.json @@ -0,0 +1,8 @@ +{ + "user": { + "id": "u1000", + "username": "jqsmith", + "email": "john.smith@example.org", + "enabled": true + } +} diff --git a/openstack-identity-api/src/docbkx/samples/user.xml b/openstack-identity-api/src/docbkx/samples/user.xml new file mode 100644 index 00000000..af035dee --- /dev/null +++ b/openstack-identity-api/src/docbkx/samples/user.xml @@ -0,0 +1,5 @@ + + + diff --git a/openstack-identity-api/src/docbkx/samples/validatetoken.json b/openstack-identity-api/src/docbkx/samples/validatetoken.json new file mode 100644 index 00000000..6f655374 --- /dev/null +++ b/openstack-identity-api/src/docbkx/samples/validatetoken.json @@ -0,0 +1,19 @@ +{ + "auth": { + "token": { + "expires": "2010-11-01T03:32:15-05:00", + "id": "ab48a9efdfedb23ty3494" + }, + "user": { + "username": "jqsmith", + "roles": [ + { + "id": "Admin", + "tenantId": "one" + }, { + "id": "compute:cloud_admin" + } + ] + } + } +} diff --git a/openstack-identity-api/src/docbkx/samples/validatetoken.xml b/openstack-identity-api/src/docbkx/samples/validatetoken.xml new file mode 100644 index 00000000..5987ff46 --- /dev/null +++ b/openstack-identity-api/src/docbkx/samples/validatetoken.xml @@ -0,0 +1,13 @@ + + + + + + + + + + diff --git a/openstack-identity-api/src/docbkx/samples/version-atom.xml b/openstack-identity-api/src/docbkx/samples/version-atom.xml new file mode 100644 index 00000000..3d78a4a3 --- /dev/null +++ b/openstack-identity-api/src/docbkx/samples/version-atom.xml @@ -0,0 +1,19 @@ + + + About This Version + 2011-01-21T11:33:21-06:00 + http://identity.api.openstack.org/v2.0/ + OpenStackhttp://www.openstack.org/ + + + http://identity.api.openstack.org/v2.0/ + Version v2.0 + 2011-01-21T11:33:21-06:00 + + + + Version v2.0 CURRENT (2011-01-21T11:33:21-06:00) + + diff --git a/openstack-identity-api/src/docbkx/samples/version.json b/openstack-identity-api/src/docbkx/samples/version.json new file mode 100644 index 00000000..db42ac80 --- /dev/null +++ b/openstack-identity-api/src/docbkx/samples/version.json @@ -0,0 +1,30 @@ +{ + "version": { + "id": "v2.0", + "status": "CURRENT", + "updated": "2011-01-21T11:33:21-06:00", + "links": [ + { + "rel": "self", + "href": "http://identity.api.openstack.org/v2.0/" + }, { + "rel": "describedby", + "type": "application/pdf", + "href": "http://docs.openstack.org/identity/api/v2.0/identity-latest.pdf" + }, { + "rel": "describedby", + "type": "application/vnd.sun.wadl+xml", + "href": "http://docs.openstack.org/identity/api/v2.0/identity.wadl" + } + ], + "media-types": [ + { + "base": "application/xml", + "type": "application/vnd.openstack.identity+xml;version=2.0" + }, { + "base": "application/json", + "type": "application/vnd.openstack.identity+json;version=2.0" + } + ] + } +} diff --git a/openstack-identity-api/src/docbkx/samples/version.xml b/openstack-identity-api/src/docbkx/samples/version.xml new file mode 100644 index 00000000..d0f77e42 --- /dev/null +++ b/openstack-identity-api/src/docbkx/samples/version.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + diff --git a/openstack-identity-api/src/docbkx/samples/versions-atom.xml b/openstack-identity-api/src/docbkx/samples/versions-atom.xml new file mode 100644 index 00000000..5c864fce --- /dev/null +++ b/openstack-identity-api/src/docbkx/samples/versions-atom.xml @@ -0,0 +1,29 @@ + + + Available API Versions + 2010-12-12T18:30:02.25Z + http://identity.api.openstack.org/ + OpenStackhttp://www.openstack.org/ + + + http://identity.api.openstack.org/v2.0/ + Version v2.0 + 2011-05-27T20:22:02.25Z + + Version v2.1 CURRENT (2011-05-27T20:22:02.25Z) + + + http://identity.api.openstack.org/v1.1/ + Version v1.1 + 2010-12-12T18:30:02.25Z + + Version v1.1 CURRENT (2010-12-12T18:30:02.25Z) + + + http://identity.api.openstack.org/v1.0/ + Version v1.0 + 2009-10-09T11:30:00Z + + Version v1.0 DEPRECATED (2009-10-09T11:30:00Z) + + diff --git a/openstack-identity-api/src/docbkx/samples/versions.json b/openstack-identity-api/src/docbkx/samples/versions.json new file mode 100644 index 00000000..4c90ea05 --- /dev/null +++ b/openstack-identity-api/src/docbkx/samples/versions.json @@ -0,0 +1,37 @@ +{ + "versions": { + "values": [ + { + "id": "v1.0", + "status": "DEPRECATED", + "updated": "2009-10-09T11:30:00Z", + "links": [ + { + "rel": "self", + "href": "http://identity.api.openstack.org/v1.0/" + } + ] + }, { + "id": "v1.1", + "status": "CURRENT", + "updated": "2010-12-12T18:30:02.25Z", + "links": [ + { + "rel": "self", + "href": "http://identity.api.openstack.org/v1.1/" + } + ] + }, { + "id": "v2.0", + "status": "BETA", + "updated": "2011-05-27T20:22:02.25Z", + "links": [ + { + "rel": "self", + "href": "http://identity.api.openstack.org/v2.0/" + } + ] + } + ] + } +} diff --git a/openstack-identity-api/src/docbkx/samples/versions.xml b/openstack-identity-api/src/docbkx/samples/versions.xml new file mode 100644 index 00000000..caa9801b --- /dev/null +++ b/openstack-identity-api/src/docbkx/samples/versions.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + +