diff --git a/docs/guide/pom.xml b/docs/guide/pom.xml new file mode 100644 index 0000000000..ec944cf4d4 --- /dev/null +++ b/docs/guide/pom.xml @@ -0,0 +1,99 @@ + + 4.0.0 + + com.rackspace.idm + docs + 0.0.1-SNAPSHOT + jar + + docs + http://maven.apache.org + + + UTF-8 + + + + + 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 + + + + + + target/docbkx/pdf + + **/*.fo + + + + + + com.rackspace.cloud.api + clouddocs-maven-plugin + 1.0.4-SNAPSHOT + + + + generate-pdf + generate-webhelp + + generate-sources + + + + + org.docbook + docbook-xml + 4.4 + runtime + + + + true + + + + + + + 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/ + + + + + diff --git a/docs/guide/src/docbkx/idmdevguide.xml b/docs/guide/src/docbkx/idmdevguide.xml new file mode 100644 index 0000000000..406bbf2c20 --- /dev/null +++ b/docs/guide/src/docbkx/idmdevguide.xml @@ -0,0 +1,1853 @@ + + + + + + + + GET'> + PUT'> + POST'> + DELETE'> + + + + + + + '> + + + + This operation does not require a request body.'> + + + Verb + URI + Description + + '> + + + Verb + URI + Description + + '> +]> + + Cloud Identity Developer Guide + + + + + + + + Rackspace Cloud + + + + 2010 + 2011 + Rackspace Hosting, Inc. + + API v1.0 + Cloud Identity + 2011-04-11 + + + Copyright details are filled in by the template. + + + + This document is intended for software developers interested in developing applications + which utilizes Organization Identity Management System as the authentication engine. It includes + details on how to integrate with IdM. + + + + Overview + The IdM Service allows Rackspace Applications to obtain tokens that can be used to access + resources in the Rackspace Cloud. This document is intended for: + + + Service Developers + + Service developers are interested in writing client for Rackspace IdM service. + + + + + This Guide assumes the reader is familiar with RESTful web services, HTTP/1.1, and JSON + and/or XML serialization formats. + + + Concepts + The IdM system has several key concepts that are important to understand: +
+ 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. + +
+
+ Tenant + + Depending on the operator, a tenant may map to a customer, + account, organization, or project. Users are always placed + under a tenant. + +
+
+ User + + Individuals under a tenant. Users have a login and may be + assigned tokens to access resources. + +
+
+ Tenant Group + + A group of users under a tenant. Tenant groups are managed + by tenants. They are used to organize and assign + privileges to group of related users. For example a tenant + may add administrator privileges to users in the "admin" group. + +
+
+ Global Group + + A global group of users. Global groups are managed by + operators. They are used to organize and assign privileges + to a group of related users. For example, an operator may + create a "delinquent" group, which will assign limited + privileges to users who have past due bills. + +
+
+ + General API Information + The IdM API is implemented using a RESTful web service interface. All requests to + authenticate and operate against the IdM API are performed using SSL over HTTP (HTTPS) on TCP + port 443. +
+ Request/Response Types + The IdM 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 + IDM 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://idm.api.openstack.org/v1.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 grups are presented within a + user. Clients must follow the "next" link to continue to + retrive additonal groups belonging to a user. + + + Paginated Groups in a User: XML + + + + + + Paginated Groups in an User: JSON + + +
+
+ Versions + + The OpenStack IDM 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://idm.api.openstack.org/ + v1.0/…). The MIME type versioning scheme uses + HTTP content negotiation where the Accept + or Content-Type headers contains a MIME + type that identifies the version + (application/vnd.openstack.idm-v1.1+xml). 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: idm.api.openstack.org +Accept: application/vnd.openstack.idm-v1.1+xml +X-Auth-Token: eaaafd18-0fed-4b3a-81b4-663c99ec1cbb + + + + Request with URI versioning + +GET /v1.1/tenants HTTP/1.1 +Host: idm.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.idm.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: idm.api.openstack.org + + + &CODES;200, 203 + &ERROR_CODES; badRequest + (400), idmFault + (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://idm.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://idm.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: idm.api.openstack.org/v1.1/ + + + &CODES;200, 203 + &ERROR_CODES; badRequest + (400), idmFault + (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 IDM 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; unauthorized (401), badRequest + (400), forbidden (403), itemNotFound + (404), idmFault (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; unauthorized (401), badRequest + (400), forbidden (403), itemNotFound + (404), idmFault (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. idmFault) 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
idmFault500, 400 ✓
serviceUnavailable503 ✓
badRequest400 ✓
unauthorized401 ✓
overLimit413 +
userDisabled403 +
forbidden403 +
itemNotFound404 +
tenantConflict409 +
usernameConflict409 +
groupConflict409 +
+ From an XML schema perspective, all API faults are extensions of the base fault type + idmFault. When working with a system that binds XML to actual classes (such + as JAXB), one should be capable of using idmFault as a “catch-all” if + there's no interest in distinguishing between individual fault types. +
+
+ + Service Developer Operations +
+ Overview + The operations described in this chapter allow service developers to get and validate + access tokens, manage users, and manage tenants. +
+
+ Token Operations +
+ Authenticate + + &URI_REFHEAD; + + + &POST; + /token + Authenticate to generate a token and a service catalog. + + + + &CODES;200, 203 + &ERROR_CODES; unauthorized (401), userDisabled + (403), badRequest (400), idmFault + (500), serviceUnavailable(503) + + TenantID is optional and may be used to specify that a + token should be returned that has access for resources + that particular tenant. + + + XML Auth Request + + + + + + JSON Auth Request + + + + + + XML Auth Response + + + + + + JSON Auth Response + + + + +
+
+ Validate Token + + &LONG_URI_REFHEAD; + + + &GET; + /token/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), + idmFault(500), + serviceUnavailable(503) + &NO_REQUEST; + + XML Validate Token Response + + + + + + JSON Validate Token Response + + + + +
+
+ Revoke Token + + &LONG_URI_REFHEAD; + + + &DELETE; + /token/tokenId + Revoke an existing token. + + + + &CODES;204 + &ERROR_CODES; unauthorized (401), forbidden + (403), userDisabled(403), + badRequest (400), itemNotFound (404), + idmFault(500), + serviceUnavailable(503) + &NO_REQUEST; +
+
+
+ Tenant Operations +
+ Create a Tenant + + &LONG_URI_REFHEAD; + + + &POST; + /tenants + Create a tenant + + + + &CODES;201 + &ERROR_CODES; unauthorized (401), + forbidden(403), + badRequest (400), idmFault (500), + serviceUnavailable(503) + + XML Tenant Create Request + + + + + + JSON Tenant Create Request + + + + + + XML Tenant Create Response + + + + + + JSON Tenant Create 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), idmFault (500), + serviceUnavailable(503) + + The operation returns a list of tenants. The list may be + filtered to return only those tenants which the caller has + access to. + + &NO_REQUEST; + + XML Tenants Response + + + + + + JSON 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), idmFault (500), + serviceUnavailable(503) + &NO_REQUEST; + + XML Tenant Response + + + + + + JSON Tenant Response + + + + +
+
+ Update a Tenant + + &LONG_URI_REFHEAD; + + + &PUT; + /tenants/tenantId + Update a tenant.. + + + + &CODES;200 + &ERROR_CODES; unauthorized (401), + forbidden(403), itemNotFound(404), + badRequest (400), idmFault (500), + serviceUnavailable(503) + + XML Tenant Update Request + + + + + + JSON Tenant Update Request + + + + + + XML Tenant Update Response + + + + + + JSON Tenant Update Response + + + + +
+
+ Delete a Tenant + + &LONG_URI_REFHEAD; + + + &DELETE; + /tenants/tenantId + Delete a Tenant. + + + + &CODES;204 + &ERROR_CODES; unauthorized (401), badRequest + (400), forbidden (403), itemNotFound + (404), idmFault (500), + serviceUnavailable(503) + &NO_REQUEST; +
+
+
+ User Operations +
+ Create a User + + &LONG_URI_REFHEAD; + + + &POST; + /tenants/tenantId/users + Create a new user. If a blank password is passed in, the API generates + a random password for the user. + + + + The Id attribute and Password element are required in this request. If a + blank password is passed in the Password element, the API will generate a random password + for the user. + &CODES;201 + &ERROR_CODES; unauthorized (401), badRequest + (400), passwordValidation(400), forbidden + (403), itemNotFound (404), + usernameConflict(409), emailConflict(409), + idmFault (500), + serviceUnavailable(503) + + XML User Request + + + + + + JSON User Request + + + + + + XML User Response + + + + + + JSON User Response + + + + +
+
+ Get a User + + &LONG_URI_REFHEAD; + + + &GET; + /tenants/tenantId/users/userId + Get a user. + + + + &CODES;200, 203 + &ERROR_CODES; unauthorized (401), badRequest + (400), forbidden (403), itemNotFound + (404), idmFault (500), + serviceUnavailable(503) + &NO_REQUEST; + + XML User Response + + + + + + JSON User Response + + + + +
+
+ Update a User + + &LONG_URI_REFHEAD; + + + &PUT; + /tenants/tenantId/users/userId + Update a user. + + + + &CODES;200 + &ERROR_CODES; unauthorized (401), badRequest + (400), forbidden(403), itemNotFound + (404), emailConflict (409), idmFault + (500), serviceUnavailable(503) + + XML User Request + + + + + + JSON User Request + + + + + + XML User Response + + + + + + JSON User Response + + + + +
+
+ Delete User + + &LONG_URI_REFHEAD; + + + &DELETE; + /tenants/tenantId/users/userId + Delete a user. + + + + &CODES;204 + &ERROR_CODES; unauthorized (401), badRequest + (400), forbidden(403), itemNotFound + (404), idmFault (500), + serviceUnavailable(503) + &NO_REQUEST; +
+
+ Get Users + + &LONG_URI_REFHEAD; + + + &GET; + /tenants/tenantId/users + Gets a list of users. + + + + &CODES;200, 203 + &ERROR_CODES; unauthorized + (401), badRequest + (400), forbidden + (403), overLimit + (413), itemNotFound + (404), idmFault + (500), serviceUnavailable + (503) + &NO_REQUEST; + + XML User List Response + + + + + + JSON User List Response + + + + +
+
+ Set a User's Password + + &LONG_URI_REFHEAD; + + + &PUT; + /tenants/tenantId/users/userId/password + Set a user's password. + + + + &CODES;200 + &ERROR_CODES; unauthorized (401), badRequest + (400), forbidden(403), itemNotFound + (404), idmFault (500), + serviceUnavailable(503) + + XML Set User Password Reqeust + + + + + + JSON Set User Password Request + + + + + + XML Set User Password Response + + + + + + JSON Set User Password Response + + + + +
+
+ Enable / Disable a User + + &LONG_URI_REFHEAD; + + + &PUT; + /tenants/tenantId/users/userId/enabled + Set a user's lock + + + + &CODES;200 + &ERROR_CODES; unauthorized (401), badRequest + (400), forbidden(403), itemNotFound + (404), idmFault (500), + serviceUnavailable(503) + + XML User Enable Request + + + + + + JSON User Enable Request + + + + + + XML User Enable Response + + + + + + JSON User Enable Response + + + + +
+
+ Get Groups for a User + + &LONG_URI_REFHEAD; + + + &GET; + /tenants/tenantId/users/userId/groups + Get groups for a user. + + + + &CODES;200, 203 + &ERROR_CODES; unauthorized (401), badRequest + (400), forbidden (403), itemNotFound + (404), idmFault (500), + serviceUnavailable(503) + &NO_REQUEST; + + XML User Response + + + + + + JSON User Response + + + + +
+
+
+ Tenant Groups +
+ Create Tenant Group + + &LONG_URI_REFHEAD; + + + &POST; + /tenant/tenantId/groups + Creates a tenant group. + + + + &CODES;201 + + &ERROR_CODES; + unauthorized (401), forbidden + (403), userDisabled(403), + badRequest (400), groupConflict(409), + idmFault(500), + serviceUnavailable(503) + + + XML Tenant Group Create Request + + + + + + JSON Tenant Group Create Request + + + + + + XML Tenant Group Create Response + + + + + + JSON Tenant Group Create Response + + + + +
+
+ Get Tenant Groups + + &LONG_URI_REFHEAD; + + + &GET; + /tenant/tenantId/groups + Get a list of tenant groups. + + + + &CODES;200, 203 + + &ERROR_CODES; + unauthorized (401), forbidden + (403), overLimit + (413), userDisabled + (403), badRequest + (400), idmFault + (500), serviceUnavailable + (503) + + &NO_REQUEST; + + XML Tenant Groups Response + + + + + + JSON Tenant Groups Response + + + + +
+
+ Get a Tenant Group + + &LONG_URI_REFHEAD; + + + &GET; + /tenant/tenantId/groups/groupId + Get a tenant group. + + + + &CODES;200, 203 + + &ERROR_CODES; + unauthorized (401), forbidden + (403), userDisabled(403), + badRequest (400), itemNotFound(404), + idmFault(500), + serviceUnavailable(503) + + &NO_REQUEST; + + XML Tenant Group Response + + + + + + JSON Tenant Groups Response + + + + +
+
+ Update a Tenant Group + + &LONG_URI_REFHEAD; + + + &PUT; + /tenant/tenantId/groups/groupId + Update a tenant group. + + + + &CODES;200 + &ERROR_CODES; unauthorized (401), + forbidden(403), itemNotFound(404), + badRequest (400), idmFault (500), + serviceUnavailable(503) + + XML Tenant Group Update Request + + + + + + JSON Tenant Group Update Request + + + + + + XML Tenant Group Update Response + + + + + + JSON Tenant Group Update Response + + + + +
+
+ Delete a Tenant Group + + &LONG_URI_REFHEAD; + + + &DELETE; + /tenant/tenantId/groups/groupId + Delete a tenant group. + + + + &CODES;204 + &ERROR_CODES; unauthorized (401), badRequest + (400), forbidden (403), itemNotFound + (404), idmFault (500), + serviceUnavailable(503) + &NO_REQUEST; +
+
+ Get Users in Tenant Group + + &LONG_URI_REFHEAD; + + + &GET; + /tenants/tenantId/groups/groupId/users + Gets a list of users in a tenant group. + + + + &CODES;200, 203 + &ERROR_CODES; unauthorized + (401), badRequest + (400), forbidden + (403), overLimit + (413), itemNotFound + (404), idmFault + (500), serviceUnavailable + (503) + &NO_REQUEST; + + XML Tenant Group User List Response + + + + + + JSON Tenant Group User List Response + + + + +
+
+ Add a User to a Tenant Group + + &LONG_URI_REFHEAD; + + + &PUT; + /tenants/tenantId/groups/groupId/users + Add a user to a tenant group. + + + + &CODES;200 + &ERROR_CODES; unauthorized + (401), badRequest + (400), forbidden + (403), itemNotFound + (404), usernameConflict + (409), emailConflict + (409), idmFault + (500), serviceUnavailable + (503) + &NO_REQUEST; +
+
+ Remove a User from a Tenant Group + + &LONG_URI_REFHEAD; + + + &DELETE; + /tenants/tenantId/groups/groupId/users + Remove a user from a tenant group. + + + + &CODES;204 + &ERROR_CODES; unauthorized + (401), badRequest + (400), forbidden + (403), itemNotFound + (404), usernameConflict + (409), emailConflict + (409), idmFault + (500), serviceUnavailable + (503) + &NO_REQUEST; +
+
+
+ Global Groups +
+ Create a Group + + &LONG_URI_REFHEAD; + + + &POST; + /groups + Creates a group. + + + + &CODES;201 + + &ERROR_CODES; + unauthorized (401), forbidden + (403), userDisabled(403), + badRequest (400), groupConflict(409), + idmFault(500), + serviceUnavailable(503) + + + XML Group Create Request + + + + + + JSON Group Create Request + + + + + + XML Group Create Response + + + + + + JSON Group Create Response + + + + +
+
+ Get Groups + + &LONG_URI_REFHEAD; + + + &GET; + /groups + Get a list of groups. + + + + &CODES;200, 203 + + &ERROR_CODES; + unauthorized (401), forbidden + (403), overLimit + (413), userDisabled + (403), badRequest + (400), idmFault + (500), serviceUnavailable + (503) + + &NO_REQUEST; + + XML Groups Response + + + + + + JSON Groups Response + + + + +
+
+ Get a Group + + &LONG_URI_REFHEAD; + + + &GET; + /groups/groupId + Get a group. + + + + &CODES;200, 203 + + &ERROR_CODES; + unauthorized (401), forbidden + (403), userDisabled(403), + badRequest (400), itemNotFound(404), + idmFault(500), + serviceUnavailable(503) + + &NO_REQUEST; + + XML Group Response + + + + + + JSON Groups Response + + + + +
+
+ Update a Group + + &LONG_URI_REFHEAD; + + + &PUT; + /groups/groupId + Update a group. + + + + &CODES;200 + &ERROR_CODES; unauthorized (401), + forbidden(403), itemNotFound(404), + badRequest (400), idmFault (500), + serviceUnavailable(503) + + XML Group Update Request + + + + + + JSON Group Update Request + + + + + + XML Group Update Response + + + + + + JSON Group Update Response + + + + +
+
+ Delete a Group + + &LONG_URI_REFHEAD; + + + &DELETE; + /groups/groupId + Delete a group. + + + + &CODES;204 + &ERROR_CODES; unauthorized (401), badRequest + (400), forbidden (403), itemNotFound + (404), idmFault (500), + serviceUnavailable(503) + &NO_REQUEST; +
+
+ Get Users in a Group + + &LONG_URI_REFHEAD; + + + &GET; + /groups/groupId/users + Gets a list of users in a group. + + + + &CODES;200, 203 + &ERROR_CODES; unauthorized (401), badRequest + (400), forbidden(403), itemNotFound + (404), idmFault (500), + serviceUnavailable(503) + &NO_REQUEST; + + XML Group User List Response + + + + + + JSON Group User List Response + + + + +
+
+ Add a User to a Group + + &LONG_URI_REFHEAD; + + + &PUT; + /groups/groupId/users + Add a user to a group. + + + + &CODES;200 + &ERROR_CODES; unauthorized + (401), badRequest + (400), forbidden + (403), itemNotFound + (404), usernameConflict + (409), emailConflict + (409), idmFault + (500), serviceUnavailable + (503) + &NO_REQUEST; +
+
+ Remove a User from a Group + + &LONG_URI_REFHEAD; + + + &DELETE; + /groups/groupId/users + Remove a user from a group. + + + + &CODES;204 + &ERROR_CODES; unauthorized + (401), badRequest + (400), forbidden + (403), itemNotFound + (404), usernameConflict + (409), emailConflict + (409), idmFault + (500), serviceUnavailable + (503) + &NO_REQUEST; +
+
+
+
diff --git a/docs/guide/src/docbkx/idmdevguide.xml~ b/docs/guide/src/docbkx/idmdevguide.xml~ new file mode 100644 index 0000000000..6828a564cb --- /dev/null +++ b/docs/guide/src/docbkx/idmdevguide.xml~ @@ -0,0 +1,1853 @@ + + + + + + + + GET'> + PUT'> + POST'> + DELETE'> + + + + + + + '> + + + + This operation does not require a request body.'> + + + Verb + URI + Description + + '> + + + Verb + URI + Description + + '> +]> + + Cloud Identity Developer Guide + + + + + + + + Rackspace Cloud + + + + 2010 + 2011 + Rackspace Hosting, Inc. + + API v1.0 + Cloud Identity + 2011-04-11 + + + Copyright details are filled in by the template. + + + + This document is intended for software developers interested in developing applications + which utilizes Organization Identity Management System as the authentication engine. It includes + details on how to integrate with IdM. + + + + Overview + The IdM Service allows Rackspace Applications to obtain tokens that can be used to access + resources in the Rackspace Cloud. This document is intended for: + + + Service Developers + + Service developers are interested in writing client for Rackspace IdM service. + + + + + This Guide assumes the reader is familiar with RESTful web services, HTTP/1.1, and JSON + and/or XML serialization formats. + + + Concepts + The IdM system has several key concepts that are important to understand: +
+ 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. + +
+
+ Tenant + + Depending on the operator, a tenant may map to a customer, + account, organization, or project. Users are always placed + under a tenant. + +
+
+ User + + Individuals under a tenant. Users have a login and may be + assigned tokens to access resources. + +
+
+ Tenant Group + + A group of users under a tenant. Tenant groups are managed + by tenants. They are used to organize and assign + privileges to group of related users. For example a tenant + may add administrator privileges to users in the "admin" group. + +
+
+ Global Group + + A global group of users. Global groups are managed by + operators. They are used to organize and assign privileges + to a group of related users. For example, an operator may + create a "delinquent" group, which will assign limited + privileges to users who have past due bills. + +
+
+ + General API Information + The IdM API is implemented using a RESTful web service interface. All requests to + authenticate and operate against the IdM API are performed using SSL over HTTP (HTTPS) on TCP + port 443. +
+ Request/Response Types + The IdM 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 + IDM 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://idm.api.openstack.org/v1.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 grups are presented within a + user. Clients must follow the "next" link to continue to + retrive additonal groups belonging to a user. + + + Paginated Groups in a User: XML + + + + + + Paginated Groups in an User: JSON + + +
+
+ Versions + + The OpenStack IDM 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://idm.api.openstack.org/ + v1.0/…). The MIME type versioning scheme uses + HTTP content negotiation where the Accept + or Content-Type headers contains a MIME + type that identifies the version + (application/vnd.openstack.idm-v1.1+xml). 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: idm.api.openstack.org +Accept: application/vnd.openstack.idm-v1.1+xml +X-Auth-Token: eaaafd18-0fed-4b3a-81b4-663c99ec1cbb + + + + Request with URI versioning + +GET /v1.1/tenants HTTP/1.1 +Host: idm.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.idm.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: idm.api.openstack.org + + + &CODES;200, 203 + &ERROR_CODES; badRequest + (400), idmFault + (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://idm.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://idm.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: idm.api.openstack.org/v1.1/ + + + &CODES;200, 203 + &ERROR_CODES; badRequest + (400), idmFault + (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 IDM 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; unauthorized (401), badRequest + (400), forbidden (403), itemNotFound + (404), idmFault (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; unauthorized (401), badRequest + (400), forbidden (403), itemNotFound + (404), idmFault (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. idmFault) 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
idmFault500, 400 ✓
serviceUnavailable503 ✓
badRequest400 ✓
unauthorized401 ✓
overLimit413 +
userDisabled403 +
forbidden403 +
itemNotFound404 +
tenantConflict409 +
usernameConflict409 +
groupConflict409 +
+ From an XML schema perspective, all API faults are extensions of the base fault type + idmFault. When working with a system that binds XML to actual classes (such + as JAXB), one should be capable of using idmFault as a “catch-all” if + there's no interest in distinguishing between individual fault types. +
+
+ + Service Developer Operations +
+ Overview + The operations described in this chapter allow service developers to get and validate + access tokens, manage users, and manage tenants. +
+
+ Token Operations +
+ Authenticate + + &URI_REFHEAD; + + + &POST; + /token + Authenticate to generate a token and a service catalog. + + + + &CODES;200, 203 + &ERROR_CODES; unauthorized (401), userDisabled + (403), badRequest (400), idmFault + (500), serviceUnavailable(503) + + TenantID is optional and may be used to specify that a + token should be returned that has access for resources + that particular tenant. + + + XML Auth Request + + + + + + JSON Auth Request + + + + + + XML Auth Response + + + + + + JSON Auth Response + + + + +
+
+ Validate Token + + &LONG_URI_REFHEAD; + + + &GET; + /token/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), + idmFault(500), + serviceUnavailable(503) + &NO_REQUEST; + + XML Validate Token Response + + + + + + JSON Validate Token Response + + + + +
+
+ Revoke Token + + &LONG_URI_REFHEAD; + + + &DELETE; + /token/tokenId + Revoke an existing token. + + + + &CODES;204 + &ERROR_CODES; unauthorized (401), forbidden + (403), userDisabled(403), + badRequest (400), itemNotFound (404), + idmFault(500), + serviceUnavailable(503) + &NO_REQUEST; +
+
+
+ Tenant Operations +
+ Create a Tenant + + &LONG_URI_REFHEAD; + + + &POST; + /tenants + Create a tenant + + + + &CODES;201 + &ERROR_CODES; unauthorized (401), + forbidden(403), + badRequest (400), idmFault (500), + serviceUnavailable(503) + + XML Tenant Create Request + + + + + + JSON Tenant Create Request + + + + + + XML Tenant Create Response + + + + + + JSON Tenant Create 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), idmFault (500), + serviceUnavailable(503) + + The operation returns a list of tenants. The list may be + filtered to return only those tenants which the caller has + access to. + + &NO_REQUEST; + + XML Tenants Response + + + + + + JSON 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), idmFault (500), + serviceUnavailable(503) + &NO_REQUEST; + + XML Tenant Response + + + + + + JSON Tenant Response + + + + +
+
+ Update a Tenant + + &LONG_URI_REFHEAD; + + + &PUT; + /tenants/tenantId + Update a tenant.. + + + + &CODES;200 + &ERROR_CODES; unauthorized (401), + forbidden(403), itemNotFound(404), + badRequest (400), idmFault (500), + serviceUnavailable(503) + + XML Tenant Update Request + + + + + + JSON Tenant Update Request + + + + + + XML Tenant Update Response + + + + + + JSON Tenant Update Response + + + + +
+
+ Delete a Tenant + + &LONG_URI_REFHEAD; + + + &DELETE; + /tenants/tenantId + Delete a Tenant. + + + + &CODES;204 + &ERROR_CODES; unauthorized (401), badRequest + (400), forbidden (403), itemNotFound + (404), idmFault (500), + serviceUnavailable(503) + &NO_REQUEST; +
+
+
+ User Operations +
+ Create a User + + &LONG_URI_REFHEAD; + + + &POST; + /tenants/tenantId/users + Create a new user. If a blank password is passed in, the API generates + a random password for the user. + + + + The Id attribute and Password element are required in this request. If a + blank password is passed in the Password element, the API will generate a random password + for the user. + &CODES;201 + &ERROR_CODES; unauthorized (401), badRequest + (400), passwordValidation(400), forbidden + (403), itemNotFound (404), + usernameConflict(409), emailConflict(409), + idmFault (500), + serviceUnavailable(503) + + XML User Request + + + + + + JSON User Request + + + + + + XML User Response + + + + + + JSON User Response + + + + +
+
+ Get a User + + &LONG_URI_REFHEAD; + + + &GET; + /tenants/tenantId/users/userId + Get a user. + + + + &CODES;200, 203 + &ERROR_CODES; unauthorized (401), badRequest + (400), forbidden (403), itemNotFound + (404), idmFault (500), + serviceUnavailable(503) + &NO_REQUEST; + + XML User Response + + + + + + JSON User Response + + + + +
+
+ Update a User + + &LONG_URI_REFHEAD; + + + &PUT; + /tenants/tenantId/users/userId + Update a user. + + + + &CODES;200 + &ERROR_CODES; unauthorized (401), badRequest + (400), forbidden(403), itemNotFound + (404), emailConflict (409), idmFault + (500), serviceUnavailable(503) + + XML User Request + + + + + + JSON User Request + + + + + + XML User Response + + + + + + JSON User Response + + + + +
+
+ Delete User + + &LONG_URI_REFHEAD; + + + &DELETE; + /tenants/tenantId/users/userId + Delete a user. + + + + &CODES;204 + &ERROR_CODES; unauthorized (401), badRequest + (400), forbidden(403), itemNotFound + (404), idmFault (500), + serviceUnavailable(503) + &NO_REQUEST; +
+
+ Get Users + + &LONG_URI_REFHEAD; + + + &GET; + /tenants/tenantId/users + Gets a list of users. + + + + &CODES;200, 203 + &ERROR_CODES; unauthorized + (401), badRequest + (400), forbidden + (403), overLimit + (413), itemNotFound + (404), idmFault + (500), serviceUnavailable + (503) + &NO_REQUEST; + + XML User List Response + + + + + + JSON User List Response + + + + +
+
+ Set a User's Password + + &LONG_URI_REFHEAD; + + + &PUT; + /tenants/tenantId/users/userId/password + Set a user's password. + + + + &CODES;200 + &ERROR_CODES; unauthorized (401), badRequest + (400), forbidden(403), itemNotFound + (404), idmFault (500), + serviceUnavailable(503) + + XML Set User Password Reqeust + + + + + + JSON Set User Password Request + + + + + + XML Set User Password Response + + + + + + JSON Set User Password Response + + + + +
+
+ Enable / Disable a User + + &LONG_URI_REFHEAD; + + + &PUT; + /tenants/tenantId/users/userId/enabled + Set a user's lock + + + + &CODES;200 + &ERROR_CODES; unauthorized (401), badRequest + (400), forbidden(403), itemNotFound + (404), idmFault (500), + serviceUnavailable(503) + + XML User Enable Request + + + + + + JSON User Enable Request + + + + + + XML User Enable Response + + + + + + JSON User Enable Response + + + + +
+
+ Get Groups for a User + + &LONG_URI_REFHEAD; + + + &GET; + /tenants/tenantId/users/userId/groups + Get groups for a user. + + + + &CODES;200, 203 + &ERROR_CODES; unauthorized (401), badRequest + (400), forbidden (403), itemNotFound + (404), idmFault (500), + serviceUnavailable(503) + &NO_REQUEST; + + XML User Response + + + + + + JSON User Response + + + + +
+
+
+ Tenant Groups +
+ Create Tenant Group + + &LONG_URI_REFHEAD; + + + &POST; + /tenant/tenantId/groups + Creates a tenant group. + + + + &CODES;201 + + &ERROR_CODES; + unauthorized (401), forbidden + (403), userDisabled(403), + badRequest (400), groupConflict(409), + idmFault(500), + serviceUnavailable(503) + + + XML Tenant Group Create Request + + + + + + JSON Tenant Group Create Request + + + + + + XML Tenant Group Create Response + + + + + + JSON Tenant Group Create Response + + + + +
+
+ Get Tenant Groups + + &LONG_URI_REFHEAD; + + + &GET; + /tenant/tenantId/groups + Get a list of tenant groups. + + + + &CODES;200, 203 + + &ERROR_CODES; + unauthorized (401), forbidden + (403), overLimit + (413), userDisabled + (403), badRequest + (400), idmFault + (500), serviceUnavailable + (503) + + &NO_REQUEST; + + XML Tenant Groups Response + + + + + + JSON Tenant Groups Response + + + + +
+
+ Get a Tenant Group + + &LONG_URI_REFHEAD; + + + &GET; + /tenant/tenantId/groups/groupId + Get a tenant group. + + + + &CODES;200, 203 + + &ERROR_CODES; + unauthorized (401), forbidden + (403), userDisabled(403), + badRequest (400), itemNotFound(404), + idmFault(500), + serviceUnavailable(503) + + &NO_REQUEST; + + XML Tenant Group Response + + + + + + JSON Tenant Groups Response + + + + +
+
+ Update a Tenant Group + + &LONG_URI_REFHEAD; + + + &PUT; + /tenant/tenantId/groups/groupId + Update a tenant group. + + + + &CODES;200 + &ERROR_CODES; unauthorized (401), + forbidden(403), itemNotFound(404), + badRequest (400), idmFault (500), + serviceUnavailable(503) + + XML Tenant Group Update Request + + + + + + JSON Tenant Group Update Request + + + + + + XML Tenant Group Update Response + + + + + + JSON Tenant Group Update Response + + + + +
+
+ Delete a Tenant Group + + &LONG_URI_REFHEAD; + + + &DELETE; + /tenant/tenantId/groups/groupId + Delete a tenant group. + + + + &CODES;204 + &ERROR_CODES; unauthorized (401), badRequest + (400), forbidden (403), itemNotFound + (404), idmFault (500), + serviceUnavailable(503) + &NO_REQUEST; +
+
+ Get Users in Tenant Group + + &LONG_URI_REFHEAD; + + + &GET; + /tenants/tenantId/groups/groupId/users + Gets a list of users in a tenant group. + + + + &CODES;200, 203 + &ERROR_CODES; unauthorized + (401), badRequest + (400), forbidden + (403), overLimit + (413), itemNotFound + (404), idmFault + (500), serviceUnavailable + (503) + &NO_REQUEST; + + XML Tenant Group User List Response + + + + + + JSON Tenant Group User List Response + + + + +
+
+ Add a User to a Tenant Group + + &LONG_URI_REFHEAD; + + + &PUT; + /tenants/tenantId/groups/groupId/users + Add a user to a tenant group. + + + + &CODES;200 + &ERROR_CODES; unauthorized + (401), badRequest + (400), forbidden + (403), itemNotFound + (404), usernameConflict + (409), emailConflict + (409), idmFault + (500), serviceUnavailable + (503) + &NO_REQUEST; +
+
+ Remove a User from a Tenant Group + + &LONG_URI_REFHEAD; + + + &DELETE; + /tenants/tenantId/groups/groupId/users + Remove a user from a tenant group. + + + + &CODES;204 + &ERROR_CODES; unauthorized + (401), badRequest + (400), forbidden + (403), itemNotFound + (404), usernameConflict + (409), emailConflict + (409), idmFault + (500), serviceUnavailable + (503) + &NO_REQUEST; +
+
+
+ Global Groups +
+ Create a Group + + &LONG_URI_REFHEAD; + + + &POST; + /groups + Creates a group. + + + + &CODES;201 + + &ERROR_CODES; + unauthorized (401), forbidden + (403), userDisabled(403), + badRequest (400), groupConflict(409), + idmFault(500), + serviceUnavailable(503) + + + XML Group Create Request + + + + + + JSON Group Create Request + + + + + + XML Group Create Response + + + + + + JSON Group Create Response + + + + +
+
+ Get Groups + + &LONG_URI_REFHEAD; + + + &GET; + /groups + Get a list of groups. + + + + &CODES;200, 203 + + &ERROR_CODES; + unauthorized (401), forbidden + (403), overLimit + (413), userDisabled + (403), badRequest + (400), idmFault + (500), serviceUnavailable + (503) + + &NO_REQUEST; + + XML Groups Response + + + + + + JSON Groups Response + + + + +
+
+ Get a Group + + &LONG_URI_REFHEAD; + + + &GET; + /groups/groupId + Get a group. + + + + &CODES;200, 203 + + &ERROR_CODES; + unauthorized (401), forbidden + (403), userDisabled(403), + badRequest (400), itemNotFound(404), + idmFault(500), + serviceUnavailable(503) + + &NO_REQUEST; + + XML Group Response + + + + + + JSON Groups Response + + + + +
+
+ Update a Group + + &LONG_URI_REFHEAD; + + + &PUT; + /groups/groupId + Update a group. + + + + &CODES;200 + &ERROR_CODES; unauthorized (401), + forbidden(403), itemNotFound(404), + badRequest (400), idmFault (500), + serviceUnavailable(503) + + XML Group Update Request + + + + + + JSON Group Update Request + + + + + + XML Group Update Response + + + + + + JSON Group Update Response + + + + +
+
+ Delete a Group + + &LONG_URI_REFHEAD; + + + &DELETE; + /groups/groupId + Delete a group. + + + + &CODES;204 + &ERROR_CODES; unauthorized (401), badRequest + (400), forbidden (403), itemNotFound + (404), idmFault (500), + serviceUnavailable(503) + &NO_REQUEST; +
+
+ Get Users in a Group + + &LONG_URI_REFHEAD; + + + &GET; + /groups/groupId/users + Gets a list of users in a group. + + + + &CODES;200, 203 + &ERROR_CODES; unauthorized (401), badRequest + (400), forbidden(403), itemNotFound + (404), idmFault (500), + serviceUnavailable(503) + &NO_REQUEST; + + XML Group User List Response + + + + + + JSON Group User List Response + + + + +
+
+ Add a User to a Group + + &LONG_URI_REFHEAD; + + + &PUT; + /groups/groupId/users + Add a user to a group. + + + + &CODES;200 + &ERROR_CODES; unauthorized + (401), badRequest + (400), forbidden + (403), itemNotFound + (404), usernameConflict + (409), emailConflict + (409), idmFault + (500), serviceUnavailable + (503) + &NO_REQUEST; +
+
+ Remove a User from a Group + + &LONG_URI_REFHEAD; + + + &DELETE; + /groups/groupId/users + Remove a user from a group. + + + + &CODES;204 + &ERROR_CODES; unauthorized + (401), badRequest + (400), forbidden + (403), itemNotFound + (404), usernameConflict + (409), emailConflict + (409), idmFault + (500), serviceUnavailable + (503) + &NO_REQUEST; +
+
+
+
diff --git a/docs/guide/src/docbkx/img/Check_mark_23x20_02.svg b/docs/guide/src/docbkx/img/Check_mark_23x20_02.svg new file mode 100644 index 0000000000..3051a2f937 --- /dev/null +++ b/docs/guide/src/docbkx/img/Check_mark_23x20_02.svg @@ -0,0 +1,60 @@ + + + + + + + + + image/svg+xml + + + + + + + + diff --git a/docs/guide/src/docbkx/samples/add-baseurl-input.xml b/docs/guide/src/docbkx/samples/add-baseurl-input.xml new file mode 100644 index 0000000000..ddbe52dae8 --- /dev/null +++ b/docs/guide/src/docbkx/samples/add-baseurl-input.xml @@ -0,0 +1,11 @@ + + + diff --git a/docs/guide/src/docbkx/samples/add-baseurlRef-input.xml b/docs/guide/src/docbkx/samples/add-baseurlRef-input.xml new file mode 100644 index 0000000000..7dd65a082d --- /dev/null +++ b/docs/guide/src/docbkx/samples/add-baseurlRef-input.xml @@ -0,0 +1,6 @@ + + + diff --git a/docs/guide/src/docbkx/samples/addclient.json b/docs/guide/src/docbkx/samples/addclient.json new file mode 100644 index 0000000000..7a279e23d2 --- /dev/null +++ b/docs/guide/src/docbkx/samples/addclient.json @@ -0,0 +1,4 @@ +{ + "customerId": "RCN-000-000-000", + "name": "Test Application2" +} \ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/addclient.xml b/docs/guide/src/docbkx/samples/addclient.xml new file mode 100644 index 0000000000..85cf6b7269 --- /dev/null +++ b/docs/guide/src/docbkx/samples/addclient.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/addedclient.json b/docs/guide/src/docbkx/samples/addedclient.json new file mode 100644 index 0000000000..76555364aa --- /dev/null +++ b/docs/guide/src/docbkx/samples/addedclient.json @@ -0,0 +1,12 @@ +{ + "credentials": { + "clientSecret": "3af738fbeiwu23" + }, + "clientId": "ab4820dhcb39347", + "customerId": "RCN-000-000-000", + "name": "Test Application2", + "inum": "@FFFF.FFFF.FFFF.FFFF!EEEE.EEEE!0001", + "status": "ACTIVE", + "locked": false, + "softDeleted": false +} \ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/addedclient.xml b/docs/guide/src/docbkx/samples/addedclient.xml new file mode 100644 index 0000000000..f4631ad00d --- /dev/null +++ b/docs/guide/src/docbkx/samples/addedclient.xml @@ -0,0 +1,12 @@ + + + + + \ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/addeduser.json b/docs/guide/src/docbkx/samples/addeduser.json new file mode 100644 index 0000000000..0566f29b95 --- /dev/null +++ b/docs/guide/src/docbkx/samples/addeduser.json @@ -0,0 +1,9 @@ +{"user": + { + "password": "P@ssword1", + "id": "jqsmith", + "tenantId": "12234", + "email": "john.smith@example.org", + "enabled" : true + } +} diff --git a/docs/guide/src/docbkx/samples/addfirstuserresponse.json b/docs/guide/src/docbkx/samples/addfirstuserresponse.json new file mode 100644 index 0000000000..651152516c --- /dev/null +++ b/docs/guide/src/docbkx/samples/addfirstuserresponse.json @@ -0,0 +1,7 @@ +{ + "password": "P@ssword1", + "username": "jqsmith", + "tenantId": "12234", + "email": "john.smith@example.org", + "enabled" : true +} \ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/addfirstuserresponse.xml b/docs/guide/src/docbkx/samples/addfirstuserresponse.xml new file mode 100644 index 0000000000..0b4f225951 --- /dev/null +++ b/docs/guide/src/docbkx/samples/addfirstuserresponse.xml @@ -0,0 +1,8 @@ + + + \ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/adduser.json b/docs/guide/src/docbkx/samples/adduser.json new file mode 100644 index 0000000000..3bf8ca3b58 --- /dev/null +++ b/docs/guide/src/docbkx/samples/adduser.json @@ -0,0 +1,8 @@ +{"user": + { + "password": "P@ssword1", + "id": "jqsmith", + "tenantId": "12234", + "email": "john.smith@example.org" + } +} diff --git a/docs/guide/src/docbkx/samples/adduser.xml b/docs/guide/src/docbkx/samples/adduser.xml new file mode 100644 index 0000000000..60816acdcc --- /dev/null +++ b/docs/guide/src/docbkx/samples/adduser.xml @@ -0,0 +1,4 @@ + + diff --git a/docs/guide/src/docbkx/samples/adduserresponse.xml b/docs/guide/src/docbkx/samples/adduserresponse.xml new file mode 100644 index 0000000000..add18f5277 --- /dev/null +++ b/docs/guide/src/docbkx/samples/adduserresponse.xml @@ -0,0 +1,5 @@ + + diff --git a/docs/guide/src/docbkx/samples/auth.json b/docs/guide/src/docbkx/samples/auth.json new file mode 100644 index 0000000000..fe368811e7 --- /dev/null +++ b/docs/guide/src/docbkx/samples/auth.json @@ -0,0 +1,48 @@ +{ + "auth" : { + "token": { + "id": "ab48a9efdfedb23ty3494", + "expires": "2010-11-01T03:32:15-05:00" + }, + "user" : { + "groups": { + "group": [ + { + "tenantId" : "1234", + "name": "Admin" + } + ]}, + "username": "jqsmith", + "tenantId": "1234", + } + "serviceCatalog" : { + "cloudFiles" : [ + { + "region" : "DFW", + "publicURL" : "https://storage.clouddrive.com/v1/MossoCloudFS_blah-blah", + "internalURL" : "https://storage-snet.clouddrive.com/v1/MossoCloudFS_blah-blah" + }, + { + "region" : "ORD", + "publicURL" : "https://otherstorage.clouddrive.com/v1/MossoCloudFS_blah-blah", + "internalURL" : "https://otherstorage-snet.clouddrive.com/v1/MossoCloudFS_blah-blah" + } + ], + "cloudFilesCDN" : [ + { + "region" : "DFW", + "publicURL" : "https://cdn.clouddrive.com/v1/MossoCloudFS_blah-blah" + }, + { + "region" : "ORD", + "publicURL" : "https://othercdn.clouddrive.com/v1/MossoCloudFS_blah-blah" + } + ], + "cloudServers" : [ + { + "publicURL" : "https://servers.api.rackspacecloud.com/v1.0/322781" + } + ] + } + } +} diff --git a/docs/guide/src/docbkx/samples/auth.xml b/docs/guide/src/docbkx/samples/auth.xml new file mode 100644 index 0000000000..3558798ca1 --- /dev/null +++ b/docs/guide/src/docbkx/samples/auth.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/guide/src/docbkx/samples/auth_credentials.json b/docs/guide/src/docbkx/samples/auth_credentials.json new file mode 100644 index 0000000000..67b06304cf --- /dev/null +++ b/docs/guide/src/docbkx/samples/auth_credentials.json @@ -0,0 +1,7 @@ +{ + "passwordCredentials" : { + "username" : "test_user", + "password" : "a86850deb2742ec3cb41518e26aa2d89", + "tenantId" : "77654" + } +} diff --git a/docs/guide/src/docbkx/samples/auth_credentials.xml b/docs/guide/src/docbkx/samples/auth_credentials.xml new file mode 100644 index 0000000000..fbdf56336b --- /dev/null +++ b/docs/guide/src/docbkx/samples/auth_credentials.xml @@ -0,0 +1,5 @@ + + diff --git a/docs/guide/src/docbkx/samples/bad_request.json b/docs/guide/src/docbkx/samples/bad_request.json new file mode 100644 index 0000000000..257969914a --- /dev/null +++ b/docs/guide/src/docbkx/samples/bad_request.json @@ -0,0 +1,5 @@ +{ + "message": "Bad Request!", + "details": "Error Details...", + "code": 400 +} \ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/bad_request.xml b/docs/guide/src/docbkx/samples/bad_request.xml new file mode 100644 index 0000000000..275a40b69f --- /dev/null +++ b/docs/guide/src/docbkx/samples/bad_request.xml @@ -0,0 +1,7 @@ + + + + Bad Request! +
Error Details...
+
\ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/baseURLRefs.json b/docs/guide/src/docbkx/samples/baseURLRefs.json new file mode 100644 index 0000000000..30e56d45cf --- /dev/null +++ b/docs/guide/src/docbkx/samples/baseURLRefs.json @@ -0,0 +1,27 @@ +{ + "baseURLRefs" : [ + { + "id" : 1, + "href" : "https://auth.api.rackspacecloud.com/v1.1/baseURLs/1", + "v1Default" : true + }, + { + "id" : 2, + "href" : "https://auth.api.rackspacecloud.com/v1.1/baseURLs/2" + }, + { + "id" : 3, + "href" : "https://auth.api.rackspacecloud.com/v1.1/baseURLs/3", + "v1Default" : true + }, + { + "id" : 4, + "href" : "https://auth.api.rackspacecloud.com/v1.1/baseURLs/4" + }, + { + "id" : 5, + "href" : "https://auth.api.rackspacecloud.com/v1.1/baseURLs/5", + "v1Default" : true + } + ] +} diff --git a/docs/guide/src/docbkx/samples/baseURLRefs.xml b/docs/guide/src/docbkx/samples/baseURLRefs.xml new file mode 100644 index 0000000000..a33c34e872 --- /dev/null +++ b/docs/guide/src/docbkx/samples/baseURLRefs.xml @@ -0,0 +1,22 @@ + + + + + + + + + diff --git a/docs/guide/src/docbkx/samples/base_url_ref_response.json b/docs/guide/src/docbkx/samples/base_url_ref_response.json new file mode 100644 index 0000000000..65bc55c300 --- /dev/null +++ b/docs/guide/src/docbkx/samples/base_url_ref_response.json @@ -0,0 +1,5 @@ +{ + "id": 111111, + "href": "https://idm.rackspace.com/v1.0/baseurls/111111", + "v1Default": true +} diff --git a/docs/guide/src/docbkx/samples/base_url_ref_response.xml b/docs/guide/src/docbkx/samples/base_url_ref_response.xml new file mode 100644 index 0000000000..ab90847a15 --- /dev/null +++ b/docs/guide/src/docbkx/samples/base_url_ref_response.xml @@ -0,0 +1,6 @@ + + + diff --git a/docs/guide/src/docbkx/samples/base_url_response.json b/docs/guide/src/docbkx/samples/base_url_response.json new file mode 100644 index 0000000000..41ca4de6aa --- /dev/null +++ b/docs/guide/src/docbkx/samples/base_url_response.json @@ -0,0 +1,10 @@ +{ + "id": 111111, + "userType": "NAST", + "serviceName": "cloudFiles", + "region": "DFW", + "publicURL": "https://storage.clouddrive.com/v1", + "internalURL": "https://storage-snet.clouddrive.com/v1", + "adminURL": null, + "default": true +} diff --git a/docs/guide/src/docbkx/samples/base_url_response.xml b/docs/guide/src/docbkx/samples/base_url_response.xml new file mode 100644 index 0000000000..8310eec4bd --- /dev/null +++ b/docs/guide/src/docbkx/samples/base_url_response.xml @@ -0,0 +1,12 @@ + + + + \ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/base_urls_response.json b/docs/guide/src/docbkx/samples/base_urls_response.json new file mode 100644 index 0000000000..284bccdb2a --- /dev/null +++ b/docs/guide/src/docbkx/samples/base_urls_response.json @@ -0,0 +1,22 @@ +{"baseURL": [ + { + "id": 111111, + "userType": "NAST", + "serviceName": "cloudFiles", + "region": "DFW", + "publicURL": "https://storage.clouddrive.com/v1", + "internalURL": "https://storage-snet.clouddrive.com/v1", + "adminURL": null, + "default": true + }, + { + "id": 222222, + "userType": "MOSSO", + "serviceName": "cloudServers", + "region": null, + "publicURL": "https://servers.api.rackspacecloud.com/v1.0", + "internalURL": null, + "adminURL": null, + "default": true + } +]} diff --git a/docs/guide/src/docbkx/samples/base_urls_response.xml b/docs/guide/src/docbkx/samples/base_urls_response.xml new file mode 100644 index 0000000000..eb52f45f15 --- /dev/null +++ b/docs/guide/src/docbkx/samples/base_urls_response.xml @@ -0,0 +1,18 @@ + + + + + + diff --git a/docs/guide/src/docbkx/samples/choices.json b/docs/guide/src/docbkx/samples/choices.json new file mode 100644 index 0000000000..6b0b260785 --- /dev/null +++ b/docs/guide/src/docbkx/samples/choices.json @@ -0,0 +1,50 @@ +{ + "choices" : { + "values" : [ + { + "id" : "v1.0", + "status" : "DEPRECATED", + "links": [ + { + "rel" : "self", + "href" : "http://idm.api.openstack.org/v1.0/tenants/12" + } + ], + "media-types": { + "values" : [ + { + "base" : "application/xml", + "type" : "application/vnd.openstack.idm-v1.0+xml" + }, + { + "base" : "application/json", + "type" : "application/vnd.openstack.idm-v1.0+json" + } + ] + } + }, + { + "id" : "v1.1", + "status" : "CURRENT", + "links": [ + { + "rel" : "self", + "href" : "http://idm.api.openstack.org/v1.1/tenants/12" + } + ], + "media-types": { + "values" : [ + { + "base" : "application/xml", + "type" : "application/vnd.openstack.idm-v1.1+xml" + }, + { + "base" : "application/json", + "type" : "application/vnd.openstack.idm-v1.1+json" + } + ] + } + } + ] + } +} diff --git a/docs/guide/src/docbkx/samples/choices.xml b/docs/guide/src/docbkx/samples/choices.xml new file mode 100644 index 0000000000..a9a91ecefe --- /dev/null +++ b/docs/guide/src/docbkx/samples/choices.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/guide/src/docbkx/samples/client-credentials-response.json b/docs/guide/src/docbkx/samples/client-credentials-response.json new file mode 100644 index 0000000000..96f07aaa14 --- /dev/null +++ b/docs/guide/src/docbkx/samples/client-credentials-response.json @@ -0,0 +1,3 @@ +{ + "clientSecret" : "eca2d413a1790dc6473842ab5a49387a29996757" +} diff --git a/docs/guide/src/docbkx/samples/client-credentials-response.xml b/docs/guide/src/docbkx/samples/client-credentials-response.xml new file mode 100644 index 0000000000..dd881ca525 --- /dev/null +++ b/docs/guide/src/docbkx/samples/client-credentials-response.xml @@ -0,0 +1,4 @@ + + + diff --git a/docs/guide/src/docbkx/samples/client.json b/docs/guide/src/docbkx/samples/client.json new file mode 100644 index 0000000000..faef1dd086 --- /dev/null +++ b/docs/guide/src/docbkx/samples/client.json @@ -0,0 +1,16 @@ +{ "permissions": { + "permission": [ + { + "resourceId": "addCustomer", + "customerId": "RCN-000-000-000", + "clientId": "IDM" + } + ]}, + "clientId": "ab4820dhcb39347", + "customerId": "RCN-000-000-000", + "name": "Test Application2", + "inum": "@FFFF.FFFF.FFFF.FFFF!EEEE.EEEE!0001", + "status": "ACTIVE", + "locked": false, + "softDeleted": false +} \ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/client.xml b/docs/guide/src/docbkx/samples/client.xml new file mode 100644 index 0000000000..e2a621bcf2 --- /dev/null +++ b/docs/guide/src/docbkx/samples/client.xml @@ -0,0 +1,17 @@ + + + + + + + \ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/clientGroup.json b/docs/guide/src/docbkx/samples/clientGroup.json new file mode 100644 index 0000000000..75e8185962 --- /dev/null +++ b/docs/guide/src/docbkx/samples/clientGroup.json @@ -0,0 +1,4 @@ +{ + "tenantId" : "1234", + "name" : "Admin" +} \ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/clientGroup.xml b/docs/guide/src/docbkx/samples/clientGroup.xml new file mode 100644 index 0000000000..55ef045676 --- /dev/null +++ b/docs/guide/src/docbkx/samples/clientGroup.xml @@ -0,0 +1,5 @@ + + + \ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/clientGroups.json b/docs/guide/src/docbkx/samples/clientGroups.json new file mode 100644 index 0000000000..b8c62c93e3 --- /dev/null +++ b/docs/guide/src/docbkx/samples/clientGroups.json @@ -0,0 +1,6 @@ +{"group": [ + { + "tenantId" : "1234", + "name" : "Admin" + }] +} \ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/clientGroups.xml b/docs/guide/src/docbkx/samples/clientGroups.xml new file mode 100644 index 0000000000..e761dc94a9 --- /dev/null +++ b/docs/guide/src/docbkx/samples/clientGroups.xml @@ -0,0 +1,7 @@ + + + + + \ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/clientWithOnlySoftDeleted.json b/docs/guide/src/docbkx/samples/clientWithOnlySoftDeleted.json new file mode 100644 index 0000000000..410afe9970 --- /dev/null +++ b/docs/guide/src/docbkx/samples/clientWithOnlySoftDeleted.json @@ -0,0 +1,3 @@ +{ + "softDeleted": "true" +} \ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/clientWithOnlySoftDeleted.xml b/docs/guide/src/docbkx/samples/clientWithOnlySoftDeleted.xml new file mode 100644 index 0000000000..8c73be4845 --- /dev/null +++ b/docs/guide/src/docbkx/samples/clientWithOnlySoftDeleted.xml @@ -0,0 +1,4 @@ + + + \ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/client_credentials.json b/docs/guide/src/docbkx/samples/client_credentials.json new file mode 100644 index 0000000000..3de72a8fa2 --- /dev/null +++ b/docs/guide/src/docbkx/samples/client_credentials.json @@ -0,0 +1,3 @@ +{ + "clientSecret": "cncv9823823bfb" +} \ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/client_credentials.xml b/docs/guide/src/docbkx/samples/client_credentials.xml new file mode 100644 index 0000000000..c9eba3bd38 --- /dev/null +++ b/docs/guide/src/docbkx/samples/client_credentials.xml @@ -0,0 +1,4 @@ + + + \ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/clientname_conflict.json b/docs/guide/src/docbkx/samples/clientname_conflict.json new file mode 100644 index 0000000000..9b0640156d --- /dev/null +++ b/docs/guide/src/docbkx/samples/clientname_conflict.json @@ -0,0 +1,5 @@ +{ + "message": "Clientname already taken.", + "details": "Error Details...", + "code": 409 +} \ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/clientname_conflict.xml b/docs/guide/src/docbkx/samples/clientname_conflict.xml new file mode 100644 index 0000000000..0694d96e85 --- /dev/null +++ b/docs/guide/src/docbkx/samples/clientname_conflict.xml @@ -0,0 +1,7 @@ + + + + Clientname already taken. +
Error Details...
+
\ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/clients.json b/docs/guide/src/docbkx/samples/clients.json new file mode 100644 index 0000000000..3c5193eb2b --- /dev/null +++ b/docs/guide/src/docbkx/samples/clients.json @@ -0,0 +1,22 @@ +{ + "client": [ + { + "clientId": "ab4820dhcb39347", + "customerId": "RCN-000-000-000", + "name": "Test Application2", + "inum": "@FFFF.FFFF.FFFF.FFFF!EEEE.EEEE!0001", + "status": "ACTIVE", + "locked": false, + "softDeleted": false + }, + { + "clientId": "632h389cv902bde", + "customerId": "RCN-000-000-000", + "name": "Test Application2", + "inum": "@FFFF.FFFF.FFFF.FFFF!EEEE.EEEE!0002", + "status": "ACTIVE", + "locked": false, + "softDeleted": false + } + ] +} \ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/clients.xml b/docs/guide/src/docbkx/samples/clients.xml new file mode 100644 index 0000000000..2d870f9b20 --- /dev/null +++ b/docs/guide/src/docbkx/samples/clients.xml @@ -0,0 +1,22 @@ + + + + + + + + \ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/customer.json b/docs/guide/src/docbkx/samples/customer.json new file mode 100644 index 0000000000..7ff7ce3215 --- /dev/null +++ b/docs/guide/src/docbkx/samples/customer.json @@ -0,0 +1,7 @@ +{"tenant": + { + "id": "1234", + "description": "A description ...", + "enabled": true + } +} diff --git a/docs/guide/src/docbkx/samples/customer.xml b/docs/guide/src/docbkx/samples/customer.xml new file mode 100644 index 0000000000..ea6a63dc92 --- /dev/null +++ b/docs/guide/src/docbkx/samples/customer.xml @@ -0,0 +1,5 @@ + + + A description... + diff --git a/docs/guide/src/docbkx/samples/customer_conflict.json b/docs/guide/src/docbkx/samples/customer_conflict.json new file mode 100644 index 0000000000..4fd3a6a823 --- /dev/null +++ b/docs/guide/src/docbkx/samples/customer_conflict.json @@ -0,0 +1,5 @@ +{ + "message": "CustomerId already taken.", + "details": "Error Details...", + "code": 409 +} \ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/customer_conflict.xml b/docs/guide/src/docbkx/samples/customer_conflict.xml new file mode 100644 index 0000000000..5641ad3438 --- /dev/null +++ b/docs/guide/src/docbkx/samples/customer_conflict.xml @@ -0,0 +1,7 @@ + + + + CustomerId already taken. +
Error Details...
+
\ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/customerlock.json b/docs/guide/src/docbkx/samples/customerlock.json new file mode 100644 index 0000000000..584c21a46f --- /dev/null +++ b/docs/guide/src/docbkx/samples/customerlock.json @@ -0,0 +1,5 @@ +{"tenant": + { + "description": "A NEW description..." + } +} \ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/customerlock.xml b/docs/guide/src/docbkx/samples/customerlock.xml new file mode 100644 index 0000000000..9d7081d427 --- /dev/null +++ b/docs/guide/src/docbkx/samples/customerlock.xml @@ -0,0 +1,4 @@ + + + A NEW description... + diff --git a/docs/guide/src/docbkx/samples/customers.json b/docs/guide/src/docbkx/samples/customers.json new file mode 100644 index 0000000000..7fb848f744 --- /dev/null +++ b/docs/guide/src/docbkx/samples/customers.json @@ -0,0 +1,15 @@ +{"tenants": { + "values" : [ + { + "id": "1234", + "description": "A description ...", + "enabled": true + }, + { + "id": "3456", + "description": "A description ...", + "enabled": true + } + ] +} +} diff --git a/docs/guide/src/docbkx/samples/customers.xml b/docs/guide/src/docbkx/samples/customers.xml new file mode 100644 index 0000000000..9b503ce273 --- /dev/null +++ b/docs/guide/src/docbkx/samples/customers.xml @@ -0,0 +1,9 @@ + + + + A description... + + + A description... + + diff --git a/docs/guide/src/docbkx/samples/definedpermissions.json b/docs/guide/src/docbkx/samples/definedpermissions.json new file mode 100644 index 0000000000..f725235c9e --- /dev/null +++ b/docs/guide/src/docbkx/samples/definedpermissions.json @@ -0,0 +1,16 @@ +{ + "defined": { + "permission": [ + { + "permissionId": "addCustomer", + "customerId": "RCN-000-000-000", + "clientId": "IDM" + }, + { + "permissionId": "getCustomer", + "customerId": "RCN-000-000-000", + "clientId": "IDM" + } + ] + } +} \ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/definedpermissions.xml b/docs/guide/src/docbkx/samples/definedpermissions.xml new file mode 100644 index 0000000000..b8b28a5b3a --- /dev/null +++ b/docs/guide/src/docbkx/samples/definedpermissions.xml @@ -0,0 +1,14 @@ + + + + + + + + \ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/email_conflict.json b/docs/guide/src/docbkx/samples/email_conflict.json new file mode 100644 index 0000000000..aa9ba6efdc --- /dev/null +++ b/docs/guide/src/docbkx/samples/email_conflict.json @@ -0,0 +1,5 @@ +{ + "message": "Email Address already taken.", + "details": "Error Details...", + "code": 409 +} \ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/email_conflict.xml b/docs/guide/src/docbkx/samples/email_conflict.xml new file mode 100644 index 0000000000..c30052bc13 --- /dev/null +++ b/docs/guide/src/docbkx/samples/email_conflict.xml @@ -0,0 +1,7 @@ + + + + Email Address already taken. +
Error Details...
+
\ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/ext-getuser.json b/docs/guide/src/docbkx/samples/ext-getuser.json new file mode 100644 index 0000000000..03f74dda62 --- /dev/null +++ b/docs/guide/src/docbkx/samples/ext-getuser.json @@ -0,0 +1,21 @@ +{"user": + { + "groups": { + "values": [ + { + "tenantId" : "1234", + "id": "Admin" + } + ]}, + "id": "jqsmith", + "tenantId": "1234", + "email": "john.smith@example.org", + "enabled": true, + "RS-META:metadata" : { + "values" : { + "MetaKey1" : "MetaValue1", + "MetaKey2" : "MetaValue2" + } + }, + } +} diff --git a/docs/guide/src/docbkx/samples/ext-getuser.xml b/docs/guide/src/docbkx/samples/ext-getuser.xml new file mode 100644 index 0000000000..07c185b1fd --- /dev/null +++ b/docs/guide/src/docbkx/samples/ext-getuser.xml @@ -0,0 +1,13 @@ + + + + + + + MetaValue1 + MetaValue2 + + diff --git a/docs/guide/src/docbkx/samples/extension.json b/docs/guide/src/docbkx/samples/extension.json new file mode 100644 index 0000000000..1d7e8bb3ed --- /dev/null +++ b/docs/guide/src/docbkx/samples/extension.json @@ -0,0 +1,21 @@ +{ + "extension" : { + "name" : "User Metadata Extension", + "namespace" : "http://docs.rackspacecloud.com/idm/api/ext/meta/v1.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/idm/api/ext/idm-meta-20111201.pdf" + }, + { + "rel" : "describedby", + "type" : "application/vnd.sun.wadl+xml", + "href" : "http://docs.rackspacecloud.com/idm/api/ext/idm-cbs.wadl" + } + ] + } +} diff --git a/docs/guide/src/docbkx/samples/extension.xml b/docs/guide/src/docbkx/samples/extension.xml new file mode 100644 index 0000000000..8d932f4996 --- /dev/null +++ b/docs/guide/src/docbkx/samples/extension.xml @@ -0,0 +1,23 @@ + + + + + + Allows associating arbritrary metadata with a user. + + + + + + + + diff --git a/docs/guide/src/docbkx/samples/extensions.json b/docs/guide/src/docbkx/samples/extensions.json new file mode 100644 index 0000000000..885387706f --- /dev/null +++ b/docs/guide/src/docbkx/samples/extensions.json @@ -0,0 +1,42 @@ +{ + "extensions" : [ + { + "name" : "Reset Password Extension", + "namespace" : "http://docs.rackspacecloud.com/idm/api/ext/rpe/v1.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/idm/api/ext/idm-rpe-20111111.pdf" + }, + { + "rel" : "describedby", + "type" : "application/vnd.sun.wadl+xml", + "href" : "http://docs.rackspacecloud.com/idm/api/ext/idm-rpe.wadl" + } + ] + }, + { + "name" : "User Metadata Extension", + "namespace" : "http://docs.rackspacecloud.com/idm/api/ext/meta/v1.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/idm/api/ext/idm-meta-20111201.pdf" + }, + { + "rel" : "describedby", + "type" : "application/vnd.sun.wadl+xml", + "href" : "http://docs.rackspacecloud.com/idm/api/ext/idm-cbs.wadl" + } + ] + } + ] +} diff --git a/docs/guide/src/docbkx/samples/extensions.xml b/docs/guide/src/docbkx/samples/extensions.xml new file mode 100644 index 0000000000..ddd7e173f1 --- /dev/null +++ b/docs/guide/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/docs/guide/src/docbkx/samples/feed.xml b/docs/guide/src/docbkx/samples/feed.xml new file mode 100644 index 0000000000..15603de1b0 --- /dev/null +++ b/docs/guide/src/docbkx/samples/feed.xml @@ -0,0 +1,21 @@ + + + +User, "mkovacs" was modified.User, "mkovacs" was modified.urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a2003-12-13T18:30:02Z + +User, "hueyly" was created.User, "hueyly" was created.urn:uuid:1225c695-cfb8-4ebb-aaaa-920474efa2342003-12-13T18:29:20Z + + \ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/forbidden.json b/docs/guide/src/docbkx/samples/forbidden.json new file mode 100644 index 0000000000..48b23ea56c --- /dev/null +++ b/docs/guide/src/docbkx/samples/forbidden.json @@ -0,0 +1,5 @@ +{ + "message": "Forbidden", + "details": "Error Details...", + "code": 403 +} \ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/forbidden.xml b/docs/guide/src/docbkx/samples/forbidden.xml new file mode 100644 index 0000000000..231238058e --- /dev/null +++ b/docs/guide/src/docbkx/samples/forbidden.xml @@ -0,0 +1,7 @@ + + + + Forbidden +
Error Details...
+
\ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/forgot_password.json b/docs/guide/src/docbkx/samples/forgot_password.json new file mode 100644 index 0000000000..e8d2114aa7 --- /dev/null +++ b/docs/guide/src/docbkx/samples/forgot_password.json @@ -0,0 +1,17 @@ +{ + "customParams" : [ + { + "name": "%%FirstName%%", + "value": "Steve" + }, + { + "name": "%%LastName%%", + "value": "Smith" + } + ], + "templateUrl": "http://cp.rackspace.com/files/passwordRecovery.txt", + "callbackUrl": "http://cp.rackspace.com/passwordRecovery.html", + "from": "Rackspace Control Panel", + "replyTo": "cpsupport@rackspace.com", + "subject": "Rackspace Password Reset" +} \ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/forgot_password.xml b/docs/guide/src/docbkx/samples/forgot_password.xml new file mode 100644 index 0000000000..53a7a1a8c1 --- /dev/null +++ b/docs/guide/src/docbkx/samples/forgot_password.xml @@ -0,0 +1,13 @@ + + + + + + + + \ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/getuser-1.json b/docs/guide/src/docbkx/samples/getuser-1.json new file mode 100644 index 0000000000..544d460079 --- /dev/null +++ b/docs/guide/src/docbkx/samples/getuser-1.json @@ -0,0 +1,29 @@ +{"user": + { + "groups": { + "values": [ + { + "tenantId" : "1234", + "id": "Admin" + }, + { + "tenantId" : "1234", + "id" : "DBUser" + }, + { + "id" : "Super" + } + ], + "links" : [ + { + "rel" : "next", + "href" : "http://idm.api.openstack.org/v1.0/1234/tenants/1234/users/jqsmith/groups?marker=Super" + } + ] + }, + "id": "jqsmith", + "tenantId": "1234", + "email": "john.smith@example.org", + "enabled": true + } +} diff --git a/docs/guide/src/docbkx/samples/getuser-1.xml b/docs/guide/src/docbkx/samples/getuser-1.xml new file mode 100644 index 0000000000..2b513072ed --- /dev/null +++ b/docs/guide/src/docbkx/samples/getuser-1.xml @@ -0,0 +1,14 @@ + + + + + + + + diff --git a/docs/guide/src/docbkx/samples/getuser-with-mosso-id.json b/docs/guide/src/docbkx/samples/getuser-with-mosso-id.json new file mode 100644 index 0000000000..4ba14bbc9f --- /dev/null +++ b/docs/guide/src/docbkx/samples/getuser-with-mosso-id.json @@ -0,0 +1,20 @@ +{ + "username": "qauser", + "customerId": "RCN-QATestingCustomer", + "customerInum": "@!FFFF.FFFF.FFFF.FFFF!EEEE.999", + "email": "quauser@example.com", + "personId": "RPN-qauser-000-10001", + "firstName": "qauser", + "middleName": "none", + "lastName": "Tester", + "displayName": "qauser", + "prefLanguage": "en-us", + "inum": "@!FFFF.FFFF.FFFF.FFFF!EEEE.999!10001", + "status": "ACTIVE", + "locked": false, + "softDeleted": false, + "country": "USA", + "timeZone": "America/Chicago", + "mossoId": 999112358, + "nastId": "nastid-qauser" +} \ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/getuser-with-mosso-id.xml b/docs/guide/src/docbkx/samples/getuser-with-mosso-id.xml new file mode 100644 index 0000000000..26c12ede2b --- /dev/null +++ b/docs/guide/src/docbkx/samples/getuser-with-mosso-id.xml @@ -0,0 +1,21 @@ + + + diff --git a/docs/guide/src/docbkx/samples/getuser-with-nast-id.json b/docs/guide/src/docbkx/samples/getuser-with-nast-id.json new file mode 100644 index 0000000000..4ba14bbc9f --- /dev/null +++ b/docs/guide/src/docbkx/samples/getuser-with-nast-id.json @@ -0,0 +1,20 @@ +{ + "username": "qauser", + "customerId": "RCN-QATestingCustomer", + "customerInum": "@!FFFF.FFFF.FFFF.FFFF!EEEE.999", + "email": "quauser@example.com", + "personId": "RPN-qauser-000-10001", + "firstName": "qauser", + "middleName": "none", + "lastName": "Tester", + "displayName": "qauser", + "prefLanguage": "en-us", + "inum": "@!FFFF.FFFF.FFFF.FFFF!EEEE.999!10001", + "status": "ACTIVE", + "locked": false, + "softDeleted": false, + "country": "USA", + "timeZone": "America/Chicago", + "mossoId": 999112358, + "nastId": "nastid-qauser" +} \ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/getuser-with-nast-id.xml b/docs/guide/src/docbkx/samples/getuser-with-nast-id.xml new file mode 100644 index 0000000000..26c12ede2b --- /dev/null +++ b/docs/guide/src/docbkx/samples/getuser-with-nast-id.xml @@ -0,0 +1,21 @@ + + + diff --git a/docs/guide/src/docbkx/samples/getuser-with-username.json b/docs/guide/src/docbkx/samples/getuser-with-username.json new file mode 100644 index 0000000000..4ba14bbc9f --- /dev/null +++ b/docs/guide/src/docbkx/samples/getuser-with-username.json @@ -0,0 +1,20 @@ +{ + "username": "qauser", + "customerId": "RCN-QATestingCustomer", + "customerInum": "@!FFFF.FFFF.FFFF.FFFF!EEEE.999", + "email": "quauser@example.com", + "personId": "RPN-qauser-000-10001", + "firstName": "qauser", + "middleName": "none", + "lastName": "Tester", + "displayName": "qauser", + "prefLanguage": "en-us", + "inum": "@!FFFF.FFFF.FFFF.FFFF!EEEE.999!10001", + "status": "ACTIVE", + "locked": false, + "softDeleted": false, + "country": "USA", + "timeZone": "America/Chicago", + "mossoId": 999112358, + "nastId": "nastid-qauser" +} \ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/getuser-with-username.xml b/docs/guide/src/docbkx/samples/getuser-with-username.xml new file mode 100644 index 0000000000..5e92fb9c74 --- /dev/null +++ b/docs/guide/src/docbkx/samples/getuser-with-username.xml @@ -0,0 +1,21 @@ + + + diff --git a/docs/guide/src/docbkx/samples/getuser.json b/docs/guide/src/docbkx/samples/getuser.json new file mode 100644 index 0000000000..b9d00949d9 --- /dev/null +++ b/docs/guide/src/docbkx/samples/getuser.json @@ -0,0 +1,15 @@ +{"user": + { + "groups": { + "values": [ + { + "tenantId" : "1234", + "id": "Admin" + } + ]}, + "id": "jqsmith", + "tenantId": "1234", + "email": "john.smith@example.org", + "enabled": true + } +} diff --git a/docs/guide/src/docbkx/samples/getuser.xml b/docs/guide/src/docbkx/samples/getuser.xml new file mode 100644 index 0000000000..095db4efab --- /dev/null +++ b/docs/guide/src/docbkx/samples/getuser.xml @@ -0,0 +1,8 @@ + + + + + + diff --git a/docs/guide/src/docbkx/samples/globalgroup.json b/docs/guide/src/docbkx/samples/globalgroup.json new file mode 100644 index 0000000000..8c524d61d6 --- /dev/null +++ b/docs/guide/src/docbkx/samples/globalgroup.json @@ -0,0 +1,6 @@ +{"group": + { + "name" : "Admin", + "description" : "A description ..." + } +} \ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/globalgroup.xml b/docs/guide/src/docbkx/samples/globalgroup.xml new file mode 100644 index 0000000000..387611c9f9 --- /dev/null +++ b/docs/guide/src/docbkx/samples/globalgroup.xml @@ -0,0 +1,5 @@ + + + \ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/globalgroups.json b/docs/guide/src/docbkx/samples/globalgroups.json new file mode 100644 index 0000000000..523bb2229d --- /dev/null +++ b/docs/guide/src/docbkx/samples/globalgroups.json @@ -0,0 +1,10 @@ +{"groups": [ + { + "name" : "Admin", + "description" : "A description ..." + }, + { + "name" : "Technical", + "description" : "Another description ..." + }] +} \ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/globalgroups.xml b/docs/guide/src/docbkx/samples/globalgroups.xml new file mode 100644 index 0000000000..c272f37059 --- /dev/null +++ b/docs/guide/src/docbkx/samples/globalgroups.xml @@ -0,0 +1,10 @@ + + + + + + \ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/grantedpermissions.json b/docs/guide/src/docbkx/samples/grantedpermissions.json new file mode 100644 index 0000000000..8269646e4b --- /dev/null +++ b/docs/guide/src/docbkx/samples/grantedpermissions.json @@ -0,0 +1,16 @@ +{ + "granted": { + "permission": [ + { + "permissionId": "addCustomer", + "customerId": "RCN-000-000-000", + "clientId": "IDM" + }, + { + "permissionId": "getCustomer", + "customerId": "RCN-000-000-000", + "clientId": "IDM" + } + ] + } +} \ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/grantedpermissions.xml b/docs/guide/src/docbkx/samples/grantedpermissions.xml new file mode 100644 index 0000000000..07ca960d87 --- /dev/null +++ b/docs/guide/src/docbkx/samples/grantedpermissions.xml @@ -0,0 +1,14 @@ + + + + + + + + \ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/group-create.json b/docs/guide/src/docbkx/samples/group-create.json new file mode 100644 index 0000000000..4f5a15f75f --- /dev/null +++ b/docs/guide/src/docbkx/samples/group-create.json @@ -0,0 +1,6 @@ +{"group": + { + "id" : "Admin", + "description" : "A Description of the group..." + } +} diff --git a/docs/guide/src/docbkx/samples/group-create.xml b/docs/guide/src/docbkx/samples/group-create.xml new file mode 100644 index 0000000000..fbba3c61cb --- /dev/null +++ b/docs/guide/src/docbkx/samples/group-create.xml @@ -0,0 +1,5 @@ + + + A Description of the group... + diff --git a/docs/guide/src/docbkx/samples/group-updated-nt.json b/docs/guide/src/docbkx/samples/group-updated-nt.json new file mode 100644 index 0000000000..004fa36863 --- /dev/null +++ b/docs/guide/src/docbkx/samples/group-updated-nt.json @@ -0,0 +1,6 @@ +{"group": + { + "id" : "Admin", + "description" : "A New description of the group..." + } +} diff --git a/docs/guide/src/docbkx/samples/group-updated-nt.xml b/docs/guide/src/docbkx/samples/group-updated-nt.xml new file mode 100644 index 0000000000..1e10d24a50 --- /dev/null +++ b/docs/guide/src/docbkx/samples/group-updated-nt.xml @@ -0,0 +1,5 @@ + + + A New description of the group... + diff --git a/docs/guide/src/docbkx/samples/group-updated.json b/docs/guide/src/docbkx/samples/group-updated.json new file mode 100644 index 0000000000..da20dac5b4 --- /dev/null +++ b/docs/guide/src/docbkx/samples/group-updated.json @@ -0,0 +1,7 @@ +{"group": + { + "tenantId" : "1234", + "id" : "Admin", + "description" : "A New description of the group..." + } +} diff --git a/docs/guide/src/docbkx/samples/group-updated.xml b/docs/guide/src/docbkx/samples/group-updated.xml new file mode 100644 index 0000000000..991a6b1e8e --- /dev/null +++ b/docs/guide/src/docbkx/samples/group-updated.xml @@ -0,0 +1,5 @@ + + + A New description of the group... + diff --git a/docs/guide/src/docbkx/samples/group.json b/docs/guide/src/docbkx/samples/group.json new file mode 100644 index 0000000000..22efc41f68 --- /dev/null +++ b/docs/guide/src/docbkx/samples/group.json @@ -0,0 +1,7 @@ +{"group": + { + "tenantId" : "1234", + "id" : "Admin", + "description" : "A Description of the group..." + } +} diff --git a/docs/guide/src/docbkx/samples/group.xml b/docs/guide/src/docbkx/samples/group.xml new file mode 100644 index 0000000000..ba3063ae4f --- /dev/null +++ b/docs/guide/src/docbkx/samples/group.xml @@ -0,0 +1,5 @@ + + + A Description of the group... + diff --git a/docs/guide/src/docbkx/samples/groups-nt.json b/docs/guide/src/docbkx/samples/groups-nt.json new file mode 100644 index 0000000000..b183edac5c --- /dev/null +++ b/docs/guide/src/docbkx/samples/groups-nt.json @@ -0,0 +1,12 @@ +{"groups": { + "values" : [ + { + "id" : "Admin", + "description" : "A description ..." + }, + { + "id" : "Technical", + "description" : "Another description ..." + }] +} +} diff --git a/docs/guide/src/docbkx/samples/groups-nt.xml b/docs/guide/src/docbkx/samples/groups-nt.xml new file mode 100644 index 0000000000..7dd515aa9a --- /dev/null +++ b/docs/guide/src/docbkx/samples/groups-nt.xml @@ -0,0 +1,9 @@ + + + + A Description of the group... + + + Another description... + + diff --git a/docs/guide/src/docbkx/samples/groups.json b/docs/guide/src/docbkx/samples/groups.json new file mode 100644 index 0000000000..1c6f6c0352 --- /dev/null +++ b/docs/guide/src/docbkx/samples/groups.json @@ -0,0 +1,15 @@ +{"groups": { + "values" : [ + { + "tenantId" : "1234", + "id" : "Admin", + "description" : "A description ..." + }, + { + "tenantId" : "1234", + "id" : "Technical", + "description" : "Another description ..." + } + ] +} +} diff --git a/docs/guide/src/docbkx/samples/groups.xml b/docs/guide/src/docbkx/samples/groups.xml new file mode 100644 index 0000000000..3f5ba19aa8 --- /dev/null +++ b/docs/guide/src/docbkx/samples/groups.xml @@ -0,0 +1,9 @@ + + + + A Description of the group... + + + Another description... + + diff --git a/docs/guide/src/docbkx/samples/idm_fault.json b/docs/guide/src/docbkx/samples/idm_fault.json new file mode 100644 index 0000000000..84e3908e64 --- /dev/null +++ b/docs/guide/src/docbkx/samples/idm_fault.json @@ -0,0 +1,7 @@ +{"idmFault": + { + "message": "Fault", + "details": "Error Details...", + "code": 500 + } +} \ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/idm_fault.xml b/docs/guide/src/docbkx/samples/idm_fault.xml new file mode 100644 index 0000000000..e0f695f25b --- /dev/null +++ b/docs/guide/src/docbkx/samples/idm_fault.xml @@ -0,0 +1,6 @@ + + + Fault +
Error Details...
+
diff --git a/docs/guide/src/docbkx/samples/item_not_found.json b/docs/guide/src/docbkx/samples/item_not_found.json new file mode 100644 index 0000000000..dda88a59b7 --- /dev/null +++ b/docs/guide/src/docbkx/samples/item_not_found.json @@ -0,0 +1,7 @@ +{"itemNotFound": + { + "message": "Item not found.", + "details": "Error Details...", + "code": 404 + } +} \ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/item_not_found.xml b/docs/guide/src/docbkx/samples/item_not_found.xml new file mode 100644 index 0000000000..f967b76a69 --- /dev/null +++ b/docs/guide/src/docbkx/samples/item_not_found.xml @@ -0,0 +1,6 @@ + + + Item not found. +
Error Details...
+
diff --git a/docs/guide/src/docbkx/samples/methodnotallowedfault.json b/docs/guide/src/docbkx/samples/methodnotallowedfault.json new file mode 100644 index 0000000000..ad9cec4b2a --- /dev/null +++ b/docs/guide/src/docbkx/samples/methodnotallowedfault.json @@ -0,0 +1,5 @@ +{ + "message": "Method Not Allowed", + "details": "Error Details...", + "code": 405 +} \ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/methodnotallowedfault.xml b/docs/guide/src/docbkx/samples/methodnotallowedfault.xml new file mode 100644 index 0000000000..0106857212 --- /dev/null +++ b/docs/guide/src/docbkx/samples/methodnotallowedfault.xml @@ -0,0 +1,7 @@ + + + + Method Not Allowed +
Error Details...
+
\ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/missing_username.json b/docs/guide/src/docbkx/samples/missing_username.json new file mode 100644 index 0000000000..a257f72ea0 --- /dev/null +++ b/docs/guide/src/docbkx/samples/missing_username.json @@ -0,0 +1,5 @@ +{ + "message": "What username?", + "details": "Error Details...", + "code": 400 +} \ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/missing_username.xml b/docs/guide/src/docbkx/samples/missing_username.xml new file mode 100644 index 0000000000..9d1330fc21 --- /dev/null +++ b/docs/guide/src/docbkx/samples/missing_username.xml @@ -0,0 +1,7 @@ + + + + What username? +
Error Details...
+
\ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/mosso-id-authentication-response.json b/docs/guide/src/docbkx/samples/mosso-id-authentication-response.json new file mode 100644 index 0000000000..e071f01c46 --- /dev/null +++ b/docs/guide/src/docbkx/samples/mosso-id-authentication-response.json @@ -0,0 +1,4 @@ +{"token": { + "id": "DFW-c6dfc4456f6545f8b8265ff5b6bda775", + "expires_in": 16110 +}} diff --git a/docs/guide/src/docbkx/samples/mosso-id-authentication-response.xml b/docs/guide/src/docbkx/samples/mosso-id-authentication-response.xml new file mode 100644 index 0000000000..6bce8a033e --- /dev/null +++ b/docs/guide/src/docbkx/samples/mosso-id-authentication-response.xml @@ -0,0 +1,18 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/mossoCredentials.xml b/docs/guide/src/docbkx/samples/mossoCredentials.xml new file mode 100644 index 0000000000..1735233127 --- /dev/null +++ b/docs/guide/src/docbkx/samples/mossoCredentials.xml @@ -0,0 +1,5 @@ + + + diff --git a/docs/guide/src/docbkx/samples/nastCredentials.xml b/docs/guide/src/docbkx/samples/nastCredentials.xml new file mode 100644 index 0000000000..b478c3e651 --- /dev/null +++ b/docs/guide/src/docbkx/samples/nastCredentials.xml @@ -0,0 +1,5 @@ + + + diff --git a/docs/guide/src/docbkx/samples/password_recovery.json b/docs/guide/src/docbkx/samples/password_recovery.json new file mode 100644 index 0000000000..4650969a83 --- /dev/null +++ b/docs/guide/src/docbkx/samples/password_recovery.json @@ -0,0 +1,15 @@ +{ + "customParams": { + "param": [ + { + "name": "FirstName", + "value": "Steve" + } + ] + }, + "callbackUrl": "http://www.someurl.com", + "templateUrl": "http://www.someurl.com", + "from": "email@email.com", + "replyTo": "replay@email.com", + "subject": "Password Recovery" +} \ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/password_recovery.xml b/docs/guide/src/docbkx/samples/password_recovery.xml new file mode 100644 index 0000000000..d13922e7c1 --- /dev/null +++ b/docs/guide/src/docbkx/samples/password_recovery.xml @@ -0,0 +1,12 @@ + + + + + + + \ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/password_rule.json b/docs/guide/src/docbkx/samples/password_rule.json new file mode 100644 index 0000000000..fe03ec4a1f --- /dev/null +++ b/docs/guide/src/docbkx/samples/password_rule.json @@ -0,0 +1,5 @@ +{ + "id": 1, + "name": "Mininum Legth", + "message": "Password must be at least 7 characters long." +} \ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/password_rule.xml b/docs/guide/src/docbkx/samples/password_rule.xml new file mode 100644 index 0000000000..7803822873 --- /dev/null +++ b/docs/guide/src/docbkx/samples/password_rule.xml @@ -0,0 +1,6 @@ + + + \ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/password_rule_result.json b/docs/guide/src/docbkx/samples/password_rule_result.json new file mode 100644 index 0000000000..1c538dcebe --- /dev/null +++ b/docs/guide/src/docbkx/samples/password_rule_result.json @@ -0,0 +1,6 @@ +{ + "passed": true, + "ruleId": 1, + "ruleName": "Minimum Length", + "ruleMessage": "Password must be at least 7 characters long." +} \ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/password_rule_result.xml b/docs/guide/src/docbkx/samples/password_rule_result.xml new file mode 100644 index 0000000000..3e17ddab44 --- /dev/null +++ b/docs/guide/src/docbkx/samples/password_rule_result.xml @@ -0,0 +1,7 @@ + + + \ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/password_rule_results.json b/docs/guide/src/docbkx/samples/password_rule_results.json new file mode 100644 index 0000000000..4a811cf40a --- /dev/null +++ b/docs/guide/src/docbkx/samples/password_rule_results.json @@ -0,0 +1,16 @@ +{ + "passwordRuleResult": [ + { + "passed": true, + "ruleId": 1, + "ruleName": "Minimum Length", + "ruleMessage": "Password must be at least 7 characters long." + }, + { + "passed": true, + "ruleId": 2, + "ruleName": "Lowercase Character", + "ruleMessage": "Password must contain a lowercase character." + } + ] +} \ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/password_rule_results.xml b/docs/guide/src/docbkx/samples/password_rule_results.xml new file mode 100644 index 0000000000..8a48eb7006 --- /dev/null +++ b/docs/guide/src/docbkx/samples/password_rule_results.xml @@ -0,0 +1,15 @@ + + + + + + \ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/password_rules.json b/docs/guide/src/docbkx/samples/password_rules.json new file mode 100644 index 0000000000..d65c3f9fcc --- /dev/null +++ b/docs/guide/src/docbkx/samples/password_rules.json @@ -0,0 +1,14 @@ +{ + "passwordRule": [ + { + "id": 1, + "name": "Mininum Legth", + "message": "Password must be at least 7 characters long." + }, + { + "id": 2, + "name": "Lowercase Character", + "message": "Password must contain a lowercase character." + } + ] +} \ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/password_rules.xml b/docs/guide/src/docbkx/samples/password_rules.xml new file mode 100644 index 0000000000..e6375876c2 --- /dev/null +++ b/docs/guide/src/docbkx/samples/password_rules.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/password_validation.json b/docs/guide/src/docbkx/samples/password_validation.json new file mode 100644 index 0000000000..3d4d86be14 --- /dev/null +++ b/docs/guide/src/docbkx/samples/password_validation.json @@ -0,0 +1,17 @@ +{"passwordRuleResults":{ + "passwordRuleResults":[ + { + "passed":true, + "ruleId":1,"ruleName": + "Mininumn Length", + "ruleMessage":"The password must be at least 7 characters long" + }, + { + "passed":false, + "ruleId":2,"ruleName": + "Uppercase Rule","ruleMessage": + "The password must contain an uppercase charater" + } + ]}, + "validPassword":false +} \ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/password_validation.xml b/docs/guide/src/docbkx/samples/password_validation.xml new file mode 100644 index 0000000000..a7619130f3 --- /dev/null +++ b/docs/guide/src/docbkx/samples/password_validation.xml @@ -0,0 +1,17 @@ + + + + + + + + \ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/passwordrotation.json b/docs/guide/src/docbkx/samples/passwordrotation.json new file mode 100644 index 0000000000..828289bbab --- /dev/null +++ b/docs/guide/src/docbkx/samples/passwordrotation.json @@ -0,0 +1,4 @@ +{ + "enabled": true, + "duration": "60" +} \ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/passwordrotation.xml b/docs/guide/src/docbkx/samples/passwordrotation.xml new file mode 100644 index 0000000000..d4316dc4b7 --- /dev/null +++ b/docs/guide/src/docbkx/samples/passwordrotation.xml @@ -0,0 +1,6 @@ + + + \ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/passwordvalidationfault.json b/docs/guide/src/docbkx/samples/passwordvalidationfault.json new file mode 100644 index 0000000000..29b70594f4 --- /dev/null +++ b/docs/guide/src/docbkx/samples/passwordvalidationfault.json @@ -0,0 +1,5 @@ +{ + "message": "Password Failed Validation", + "details": "Error Details...", + "code": 409 +} \ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/passwordvalidationfault.xml b/docs/guide/src/docbkx/samples/passwordvalidationfault.xml new file mode 100644 index 0000000000..efe6c3e879 --- /dev/null +++ b/docs/guide/src/docbkx/samples/passwordvalidationfault.xml @@ -0,0 +1,7 @@ + + + + Password Failed Validation +
Error Details...
+
\ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/permission.json b/docs/guide/src/docbkx/samples/permission.json new file mode 100644 index 0000000000..cb7b261cd2 --- /dev/null +++ b/docs/guide/src/docbkx/samples/permission.json @@ -0,0 +1,7 @@ +{ + "value": "POST /customers", + "permissionId": "addCustomer", + "customerId": "RCN-000-000-000", + "clientId": "IDM", + "type": "application/text" +} \ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/permission.xml b/docs/guide/src/docbkx/samples/permission.xml new file mode 100644 index 0000000000..d8157aa1a6 --- /dev/null +++ b/docs/guide/src/docbkx/samples/permission.xml @@ -0,0 +1,7 @@ + + +POST /customers \ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/permissions.json b/docs/guide/src/docbkx/samples/permissions.json new file mode 100644 index 0000000000..aef0cd9d11 --- /dev/null +++ b/docs/guide/src/docbkx/samples/permissions.json @@ -0,0 +1,30 @@ +{ + "granted": { + "permission": [ + { + "permissionId": "addCustomer", + "customerId": "RCN-000-000-000", + "clientId": "IDM" + }, + { + "permissionId": "getCustomer", + "customerId": "RCN-000-000-000", + "clientId": "IDM" + } + ] + }, + "defined": { + "permission": [ + { + "permissionId": "addCustomer", + "customerId": "RCN-000-000-000", + "clientId": "IDM" + }, + { + "permissionId": "getCustomer", + "customerId": "RCN-000-000-000", + "clientId": "IDM" + } + ] + } +} \ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/permissions.xml b/docs/guide/src/docbkx/samples/permissions.xml new file mode 100644 index 0000000000..84c2de6066 --- /dev/null +++ b/docs/guide/src/docbkx/samples/permissions.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/reset_user_password.json b/docs/guide/src/docbkx/samples/reset_user_password.json new file mode 100644 index 0000000000..38cb9e1f0e --- /dev/null +++ b/docs/guide/src/docbkx/samples/reset_user_password.json @@ -0,0 +1,3 @@ +{ + "password": "7ud$dnF" +} \ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/reset_user_password.xml b/docs/guide/src/docbkx/samples/reset_user_password.xml new file mode 100644 index 0000000000..187b91221a --- /dev/null +++ b/docs/guide/src/docbkx/samples/reset_user_password.xml @@ -0,0 +1,4 @@ + + + \ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/resourceId_conflict.json b/docs/guide/src/docbkx/samples/resourceId_conflict.json new file mode 100644 index 0000000000..7eaf859be8 --- /dev/null +++ b/docs/guide/src/docbkx/samples/resourceId_conflict.json @@ -0,0 +1,5 @@ +{ + "message": "ResourceId already taken.", + "details": "Error Details...", + "code": 409 +} \ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/resourceId_conflict.xml b/docs/guide/src/docbkx/samples/resourceId_conflict.xml new file mode 100644 index 0000000000..1710f51ce8 --- /dev/null +++ b/docs/guide/src/docbkx/samples/resourceId_conflict.xml @@ -0,0 +1,7 @@ + + + + ResourceId already taken. +
Error Details...
+
\ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/role.json b/docs/guide/src/docbkx/samples/role.json new file mode 100644 index 0000000000..bc4bb59da1 --- /dev/null +++ b/docs/guide/src/docbkx/samples/role.json @@ -0,0 +1,4 @@ +{ + "name": "Admin", + "type": "RackspaceDefined" +} \ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/role.xml b/docs/guide/src/docbkx/samples/role.xml new file mode 100644 index 0000000000..3c91848d8c --- /dev/null +++ b/docs/guide/src/docbkx/samples/role.xml @@ -0,0 +1,4 @@ + + + \ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/roles.json b/docs/guide/src/docbkx/samples/roles.json new file mode 100644 index 0000000000..465f36b107 --- /dev/null +++ b/docs/guide/src/docbkx/samples/roles.json @@ -0,0 +1,12 @@ +{ + "role": [ + { + "name": "Admin", + "type": "RackspaceDefined" + }, + { + "name": "HR", + "type": "CustomerDefined" + } + ] +} \ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/roles.xml b/docs/guide/src/docbkx/samples/roles.xml new file mode 100644 index 0000000000..e8b57c0a04 --- /dev/null +++ b/docs/guide/src/docbkx/samples/roles.xml @@ -0,0 +1,8 @@ + + + + + + \ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/samplerequestheader.json b/docs/guide/src/docbkx/samples/samplerequestheader.json new file mode 100644 index 0000000000..a46470766a --- /dev/null +++ b/docs/guide/src/docbkx/samples/samplerequestheader.json @@ -0,0 +1,4 @@ +POST /v1.0/token HTTP/1.1 +Host: idm.api.rackspace.com +Content-Type: application/json +Accept: application/xml \ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/sampleresponseheader.json b/docs/guide/src/docbkx/samples/sampleresponseheader.json new file mode 100644 index 0000000000..0b08f684ac --- /dev/null +++ b/docs/guide/src/docbkx/samples/sampleresponseheader.json @@ -0,0 +1,5 @@ +HTTP/1.1 200 OKAY +Date: Mon, 12 Nov 2010 15:55:01 GMT +Server: Apache +Content-Length: +Content-Type: application/xml; charset=UTF-8 \ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/service-catalog-response.json b/docs/guide/src/docbkx/samples/service-catalog-response.json new file mode 100644 index 0000000000..6e6f6533a4 --- /dev/null +++ b/docs/guide/src/docbkx/samples/service-catalog-response.json @@ -0,0 +1,22 @@ +{"service": [ + { + "endpoint": [ { + "region": "DFW", + "v1Default": true, + "publicURL": "https://storage.clouddrive.com/v1/KovacsNastId", + "internalURL": "https://storage-snet.clouddrive.com/v1/KovacsNastId", + "adminURL": null + }], + "name": "cloudFiles" + }, + { + "endpoint": [ { + "region": null, + "v1Default": false, + "publicURL": "https://servers.api.rackspacecloud.com/v1.0/90000", + "internalURL": null, + "adminURL": null + }], + "name": "cloudServers" + } +]} diff --git a/docs/guide/src/docbkx/samples/service-catalog-response.xml b/docs/guide/src/docbkx/samples/service-catalog-response.xml new file mode 100644 index 0000000000..0cdb9222de --- /dev/null +++ b/docs/guide/src/docbkx/samples/service-catalog-response.xml @@ -0,0 +1,14 @@ + + + + + + + + + + diff --git a/docs/guide/src/docbkx/samples/tenants-1.json b/docs/guide/src/docbkx/samples/tenants-1.json new file mode 100644 index 0000000000..6f45f1c89b --- /dev/null +++ b/docs/guide/src/docbkx/samples/tenants-1.json @@ -0,0 +1,16 @@ +{ +"tenants": { + "values" : [ + { + "id": "1234", + "description": "A description ...", + "enabled": true + } + ], + "links" : [ + { + "rel" : "next", + "href" : "http://idm.api.openstack.org/v1.0/1234/tenants?limit=1&marker=1234" + } + ] +} diff --git a/docs/guide/src/docbkx/samples/tenants-1.xml b/docs/guide/src/docbkx/samples/tenants-1.xml new file mode 100644 index 0000000000..67101816db --- /dev/null +++ b/docs/guide/src/docbkx/samples/tenants-1.xml @@ -0,0 +1,10 @@ + + + + A description... + + diff --git a/docs/guide/src/docbkx/samples/tenants-2.json b/docs/guide/src/docbkx/samples/tenants-2.json new file mode 100644 index 0000000000..7cb3ca6be7 --- /dev/null +++ b/docs/guide/src/docbkx/samples/tenants-2.json @@ -0,0 +1,20 @@ +{ +"tenants": { + "values" : [ + { + "id": "3645", + "description": "A description ...", + "enabled": true + } + ], + "links" : [ + { + "rel" : "next", + "href" : "http://idm.api.openstack.org/v1.0/1234/tenants?limit=1&marker=3645" + }, + { + "rel" : "previous", + "href" : "http://idm.api.openstack.org/v1.0/1234/tenants?limit=1" + } + ] +} diff --git a/docs/guide/src/docbkx/samples/tenants-2.xml b/docs/guide/src/docbkx/samples/tenants-2.xml new file mode 100644 index 0000000000..7be4f537e7 --- /dev/null +++ b/docs/guide/src/docbkx/samples/tenants-2.xml @@ -0,0 +1,13 @@ + + + + A description... + + + diff --git a/docs/guide/src/docbkx/samples/tenants-3.json b/docs/guide/src/docbkx/samples/tenants-3.json new file mode 100644 index 0000000000..febcf225a1 --- /dev/null +++ b/docs/guide/src/docbkx/samples/tenants-3.json @@ -0,0 +1,16 @@ +{ +"tenants": { + "values" : [ + { + "id": "9999", + "description": "A description ...", + "enabled": true + } + ], + "links" : [ + { + "rel" : "previous", + "href" : "http://idm.api.openstack.org/v1.0/1234/tenants?limit=1&marker=1234" + } + ] +} diff --git a/docs/guide/src/docbkx/samples/tenants-3.xml b/docs/guide/src/docbkx/samples/tenants-3.xml new file mode 100644 index 0000000000..5e5b49fab1 --- /dev/null +++ b/docs/guide/src/docbkx/samples/tenants-3.xml @@ -0,0 +1,10 @@ + + + + A description... + + + diff --git a/docs/guide/src/docbkx/samples/token.json b/docs/guide/src/docbkx/samples/token.json new file mode 100644 index 0000000000..a25f1530f9 --- /dev/null +++ b/docs/guide/src/docbkx/samples/token.json @@ -0,0 +1,4 @@ +{ + "id": "309487987f0892397a9439875900b", + "expiresIn": 3600 +} \ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/token.xml b/docs/guide/src/docbkx/samples/token.xml new file mode 100644 index 0000000000..98b78611d2 --- /dev/null +++ b/docs/guide/src/docbkx/samples/token.xml @@ -0,0 +1,5 @@ + + + \ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/unauthorized.json b/docs/guide/src/docbkx/samples/unauthorized.json new file mode 100644 index 0000000000..e969fc0ec9 --- /dev/null +++ b/docs/guide/src/docbkx/samples/unauthorized.json @@ -0,0 +1,5 @@ +{ + "message": "Oh no you don't.", + "details": "Error Details...", + "code": 401 +} \ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/unauthorized.xml b/docs/guide/src/docbkx/samples/unauthorized.xml new file mode 100644 index 0000000000..6dad6bca2c --- /dev/null +++ b/docs/guide/src/docbkx/samples/unauthorized.xml @@ -0,0 +1,7 @@ + + + + Oh no you don't. +
Error Details...
+
\ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/unavailable.json b/docs/guide/src/docbkx/samples/unavailable.json new file mode 100644 index 0000000000..b91a23e7d5 --- /dev/null +++ b/docs/guide/src/docbkx/samples/unavailable.json @@ -0,0 +1,5 @@ +{ + "message": "The IdM Service is Unavailable at the moment.", + "details": "Error Details...", + "code": 503 +} \ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/unavailable.xml b/docs/guide/src/docbkx/samples/unavailable.xml new file mode 100644 index 0000000000..ebd9f106d8 --- /dev/null +++ b/docs/guide/src/docbkx/samples/unavailable.xml @@ -0,0 +1,6 @@ + + + The IdM Service is Unavailable at the moment. +
Error Details...
+
\ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/updatedcustomer.json b/docs/guide/src/docbkx/samples/updatedcustomer.json new file mode 100644 index 0000000000..05df6a3a2b --- /dev/null +++ b/docs/guide/src/docbkx/samples/updatedcustomer.json @@ -0,0 +1,7 @@ +{"tenant": + { + "id": "1234", + "description": "A NEW description...", + "enabled": true + } +} diff --git a/docs/guide/src/docbkx/samples/updatedcustomer.xml b/docs/guide/src/docbkx/samples/updatedcustomer.xml new file mode 100644 index 0000000000..8bcce9bf0a --- /dev/null +++ b/docs/guide/src/docbkx/samples/updatedcustomer.xml @@ -0,0 +1,5 @@ + + + A NEW description... + diff --git a/docs/guide/src/docbkx/samples/updateduser.json b/docs/guide/src/docbkx/samples/updateduser.json new file mode 100644 index 0000000000..73a67c6a7b --- /dev/null +++ b/docs/guide/src/docbkx/samples/updateduser.json @@ -0,0 +1,8 @@ +{"user": + { + "id": "jqsmith", + "tenantId": "1234", + "email": "john.smith@somenewemail.org", + "enabled": true + } +} diff --git a/docs/guide/src/docbkx/samples/updateduser.xml b/docs/guide/src/docbkx/samples/updateduser.xml new file mode 100644 index 0000000000..c11bc8fc7e --- /dev/null +++ b/docs/guide/src/docbkx/samples/updateduser.xml @@ -0,0 +1,4 @@ + + diff --git a/docs/guide/src/docbkx/samples/updateuser.json b/docs/guide/src/docbkx/samples/updateuser.json new file mode 100644 index 0000000000..2e431d9a4e --- /dev/null +++ b/docs/guide/src/docbkx/samples/updateuser.json @@ -0,0 +1,6 @@ +{"user": + { + "email": "john.smith@somenewemail.org", + "id": "jqsmith" + } +} diff --git a/docs/guide/src/docbkx/samples/updateuser.xml b/docs/guide/src/docbkx/samples/updateuser.xml new file mode 100644 index 0000000000..7d1988e450 --- /dev/null +++ b/docs/guide/src/docbkx/samples/updateuser.xml @@ -0,0 +1,3 @@ + + diff --git a/docs/guide/src/docbkx/samples/user.json b/docs/guide/src/docbkx/samples/user.json new file mode 100644 index 0000000000..1051172ce7 --- /dev/null +++ b/docs/guide/src/docbkx/samples/user.json @@ -0,0 +1,41 @@ +{ + "secret": { + "secretQuestion": "What is the middle name of your best fried, spelled backward?", + "secretAnswer": "sicnarF" + }, + "password": { + "password": "C@n+f001me!" + }, + "apiKey": { + "apiKey": "10388a8497547f8w77e" + }, + "roles": [ + { + "name": "Admin", + "type": "RackspaceDefined" + } + ], + "permissions": [ + { + "description": "POST /users", + "name": "AddUser" + }, + {} + ], + "username": "jqsmith", + "customerId": "RCN-000-000-000", + "customerInum": "@!FFFF.FFFF.FFFF.FFFF!EEEE.EEEE", + "email": "john.smith@example.org", + "personId": "RPN-111-111-111", + "firstName": "John", + "middleName": "Quincy", + "lastName": "Smith", + "displayName": "John Smith", + "prefLanguage": "US_en", + "inum": "@!FFFF.FFFF.FFFF.FFFF!EEEE.EEEE!1111", + "iname": "@Example.Smith*John", + "region": "America/Chicago", + "status": "ACTIVE", + "locked": false, + "softDeleted": false +} \ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/user.xml b/docs/guide/src/docbkx/samples/user.xml new file mode 100644 index 0000000000..c252696df8 --- /dev/null +++ b/docs/guide/src/docbkx/samples/user.xml @@ -0,0 +1,19 @@ + + + + + + + \ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/userGroups.json b/docs/guide/src/docbkx/samples/userGroups.json new file mode 100644 index 0000000000..dc7b3f3bcb --- /dev/null +++ b/docs/guide/src/docbkx/samples/userGroups.json @@ -0,0 +1,16 @@ +{"groups": { + "values" : [ + { + "tenantId" : "1234", + "id" : "Admin", + }, + { + "tenantId" : "1234", + "id" : "Technical", + }, + { + "id" : "Customer", + } + ] +} +} diff --git a/docs/guide/src/docbkx/samples/userGroups.xml b/docs/guide/src/docbkx/samples/userGroups.xml new file mode 100644 index 0000000000..16f73c5151 --- /dev/null +++ b/docs/guide/src/docbkx/samples/userGroups.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/docs/guide/src/docbkx/samples/userWithOnlyLock.json b/docs/guide/src/docbkx/samples/userWithOnlyLock.json new file mode 100644 index 0000000000..11d640e69c --- /dev/null +++ b/docs/guide/src/docbkx/samples/userWithOnlyLock.json @@ -0,0 +1,5 @@ +{"user": + { + "enabled": "true" + } +} \ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/userWithOnlyLock.xml b/docs/guide/src/docbkx/samples/userWithOnlyLock.xml new file mode 100644 index 0000000000..42eecba2e6 --- /dev/null +++ b/docs/guide/src/docbkx/samples/userWithOnlyLock.xml @@ -0,0 +1,3 @@ + + diff --git a/docs/guide/src/docbkx/samples/userWithOnlySoftDeleted.json b/docs/guide/src/docbkx/samples/userWithOnlySoftDeleted.json new file mode 100644 index 0000000000..bc3a14ff0b --- /dev/null +++ b/docs/guide/src/docbkx/samples/userWithOnlySoftDeleted.json @@ -0,0 +1,3 @@ +{ + "softDeleted": "true" +} \ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/userWithOnlySoftDeleted.xml b/docs/guide/src/docbkx/samples/userWithOnlySoftDeleted.xml new file mode 100644 index 0000000000..6284eb549f --- /dev/null +++ b/docs/guide/src/docbkx/samples/userWithOnlySoftDeleted.xml @@ -0,0 +1,4 @@ + + + \ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/userWithOnlyStatus.json b/docs/guide/src/docbkx/samples/userWithOnlyStatus.json new file mode 100644 index 0000000000..d4bd36c920 --- /dev/null +++ b/docs/guide/src/docbkx/samples/userWithOnlyStatus.json @@ -0,0 +1,3 @@ +{ + "status": "INACTIVE" +} \ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/userWithOnlyStatus.xml b/docs/guide/src/docbkx/samples/userWithOnlyStatus.xml new file mode 100644 index 0000000000..30e7b12717 --- /dev/null +++ b/docs/guide/src/docbkx/samples/userWithOnlyStatus.xml @@ -0,0 +1,4 @@ + + + \ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/user_api_key.json b/docs/guide/src/docbkx/samples/user_api_key.json new file mode 100644 index 0000000000..ff5dd33af7 --- /dev/null +++ b/docs/guide/src/docbkx/samples/user_api_key.json @@ -0,0 +1,5 @@ +{"user": + { + "password": "P@$$word1" + } +} \ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/user_api_key.xml b/docs/guide/src/docbkx/samples/user_api_key.xml new file mode 100644 index 0000000000..24f8693572 --- /dev/null +++ b/docs/guide/src/docbkx/samples/user_api_key.xml @@ -0,0 +1,3 @@ + + diff --git a/docs/guide/src/docbkx/samples/user_credentials.json b/docs/guide/src/docbkx/samples/user_credentials.json new file mode 100644 index 0000000000..dbcb997709 --- /dev/null +++ b/docs/guide/src/docbkx/samples/user_credentials.json @@ -0,0 +1,8 @@ +{ + "newPassword": { + "password": "newpassword" + }, + "currentPassword": { + "password": "oldpassword" + } +} \ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/user_credentials.xml b/docs/guide/src/docbkx/samples/user_credentials.xml new file mode 100644 index 0000000000..56dc27760f --- /dev/null +++ b/docs/guide/src/docbkx/samples/user_credentials.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/user_disabled.json b/docs/guide/src/docbkx/samples/user_disabled.json new file mode 100644 index 0000000000..5eeb83f247 --- /dev/null +++ b/docs/guide/src/docbkx/samples/user_disabled.json @@ -0,0 +1,5 @@ +{ + "message": "The user has been disabled.", + "details": "Error Details...", + "code": 403 +} \ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/user_disabled.xml b/docs/guide/src/docbkx/samples/user_disabled.xml new file mode 100644 index 0000000000..9f6b528e5a --- /dev/null +++ b/docs/guide/src/docbkx/samples/user_disabled.xml @@ -0,0 +1,7 @@ + + + + The user has been disabled. +
Error Details...
+
diff --git a/docs/guide/src/docbkx/samples/user_password.json b/docs/guide/src/docbkx/samples/user_password.json new file mode 100644 index 0000000000..1e1643b9e9 --- /dev/null +++ b/docs/guide/src/docbkx/samples/user_password.json @@ -0,0 +1,3 @@ +{ + "password": "newpassword" +} \ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/user_password.xml b/docs/guide/src/docbkx/samples/user_password.xml new file mode 100644 index 0000000000..ba8a49cbd9 --- /dev/null +++ b/docs/guide/src/docbkx/samples/user_password.xml @@ -0,0 +1,4 @@ + + + \ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/user_secret.json b/docs/guide/src/docbkx/samples/user_secret.json new file mode 100644 index 0000000000..e0a4a6a873 --- /dev/null +++ b/docs/guide/src/docbkx/samples/user_secret.json @@ -0,0 +1,4 @@ +{ + "secretQuestion": "Is this a secret question?", + "secretAnswer": "Not a very good one." +} \ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/user_secret.xml b/docs/guide/src/docbkx/samples/user_secret.xml new file mode 100644 index 0000000000..d1ab561092 --- /dev/null +++ b/docs/guide/src/docbkx/samples/user_secret.xml @@ -0,0 +1,5 @@ + + + \ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/usernameCredentials.xml b/docs/guide/src/docbkx/samples/usernameCredentials.xml new file mode 100644 index 0000000000..4d03497d9a --- /dev/null +++ b/docs/guide/src/docbkx/samples/usernameCredentials.xml @@ -0,0 +1,5 @@ + + + diff --git a/docs/guide/src/docbkx/samples/username_conflict.json b/docs/guide/src/docbkx/samples/username_conflict.json new file mode 100644 index 0000000000..e30c009d49 --- /dev/null +++ b/docs/guide/src/docbkx/samples/username_conflict.json @@ -0,0 +1,5 @@ +{ + "message": "Username already taken.", + "details": "Error Details...", + "code": 409 +} \ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/username_conflict.xml b/docs/guide/src/docbkx/samples/username_conflict.xml new file mode 100644 index 0000000000..a3d3dbbcca --- /dev/null +++ b/docs/guide/src/docbkx/samples/username_conflict.xml @@ -0,0 +1,7 @@ + + + + Username already taken. +
Error Details...
+
\ No newline at end of file diff --git a/docs/guide/src/docbkx/samples/users.json b/docs/guide/src/docbkx/samples/users.json new file mode 100644 index 0000000000..4bac51c98f --- /dev/null +++ b/docs/guide/src/docbkx/samples/users.json @@ -0,0 +1,17 @@ +{"users": { + "values" : [ + { + "id": "jqsmith", + "tenantId": "1234", + "email": "john.smith@example.org", + "enabled": true + }, + { + "id": "jdoe", + "tenantId": "1234", + "email": "john.doe@example.org", + "enabled": true + } + ] +} +} diff --git a/docs/guide/src/docbkx/samples/users.xml b/docs/guide/src/docbkx/samples/users.xml new file mode 100644 index 0000000000..c30c1550f0 --- /dev/null +++ b/docs/guide/src/docbkx/samples/users.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/docs/guide/src/docbkx/samples/validatetoken.json b/docs/guide/src/docbkx/samples/validatetoken.json new file mode 100644 index 0000000000..c472187366 --- /dev/null +++ b/docs/guide/src/docbkx/samples/validatetoken.json @@ -0,0 +1,19 @@ +{ + "auth" : { + "token": { + "id": "ab48a9efdfedb23ty3494", + "expires": "2010-11-01T03:32:15-05:00" + }, + "user" : { + "groups": { + "group": [ + { + "tenantId" : "1234", + "name": "Admin" + } + ]}, + "username": "jqsmith", + "tenantId": "1234", + } + } +} diff --git a/docs/guide/src/docbkx/samples/validatetoken.xml b/docs/guide/src/docbkx/samples/validatetoken.xml new file mode 100644 index 0000000000..b091c7af85 --- /dev/null +++ b/docs/guide/src/docbkx/samples/validatetoken.xml @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/docs/guide/src/docbkx/samples/version-atom.xml b/docs/guide/src/docbkx/samples/version-atom.xml new file mode 100644 index 0000000000..8cf3dc88a5 --- /dev/null +++ b/docs/guide/src/docbkx/samples/version-atom.xml @@ -0,0 +1,19 @@ + + + About This Version + 2011-01-21T11:33:21-06:00 + http://idm.api.openstack.org/v1.0/ + Rackspacehttp://www.rackspace.com/ + + + http://idm.api.openstack.org/v1.0/ + Version v1.0 + 2011-01-21T11:33:21-06:00 + + + + Version v1.0 CURRENT (2011-01-21T11:33:21-06:00) + + diff --git a/docs/guide/src/docbkx/samples/version.json b/docs/guide/src/docbkx/samples/version.json new file mode 100644 index 0000000000..74bae5bdac --- /dev/null +++ b/docs/guide/src/docbkx/samples/version.json @@ -0,0 +1,33 @@ +{ + "version" : { + "id" : "v1.0", + "status" : "CURRENT", + "updated" : "2011-01-21T11:33:21-06:00", + "links": [ + { + "rel" : "self", + "href" : "http://idm.api.openstack.org/v1.0/" + }, + { + "rel" : "describedby", + "type" : "application/pdf", + "href" : "http://docs.rackspacecloud.com/idm/api/v1.0/idm-devguide-20110125.pdf" + }, + { + "rel" : "describedby", + "type" : "application/vnd.sun.wadl+xml", + "href" : "http://docs.rackspacecloud.com/idm/api/v1.0/application.wadl" + } + ], + "media-types": [ + { + "base" : "application/xml", + "type" : "application/vnd.openstack.idm-v1.0+xml" + }, + { + "base" : "application/json", + "type" : "application/vnd.openstack.idm-v1.0+json" + } + ] + } +} diff --git a/docs/guide/src/docbkx/samples/version.xml b/docs/guide/src/docbkx/samples/version.xml new file mode 100644 index 0000000000..4f499322ad --- /dev/null +++ b/docs/guide/src/docbkx/samples/version.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + diff --git a/docs/guide/src/docbkx/samples/versions-atom.xml b/docs/guide/src/docbkx/samples/versions-atom.xml new file mode 100644 index 0000000000..e75cf41676 --- /dev/null +++ b/docs/guide/src/docbkx/samples/versions-atom.xml @@ -0,0 +1,22 @@ + + + Available API Versions + 2010-12-12T18:30:02.25Z + http://idm.api.openstack.org/ + Rackspacehttp://www.rackspace.com/ + + + http://idm.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://idm.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/docs/guide/src/docbkx/samples/versions.json b/docs/guide/src/docbkx/samples/versions.json new file mode 100644 index 0000000000..330a26e907 --- /dev/null +++ b/docs/guide/src/docbkx/samples/versions.json @@ -0,0 +1,28 @@ +{ + "versions" : { + "values" : [ + { + "id" : "v1.0", + "status" : "DEPRECATED", + "updated" : "2009-10-09T11:30:00Z", + "links": [ + { + "rel" : "self", + "href" : "http://idm.api.openstack.org/v1.0/" + } + ] + }, + { + "id" : "v1.1", + "status" : "CURRENT", + "updated" : "2010-12-12T18:30:02.25Z", + "links": [ + { + "rel" : "self", + "href" : "http://idm.api.openstack.org/v1.1/" + } + ] + } + ] + } +} diff --git a/docs/guide/src/docbkx/samples/versions.xml b/docs/guide/src/docbkx/samples/versions.xml new file mode 100644 index 0000000000..7c3b153560 --- /dev/null +++ b/docs/guide/src/docbkx/samples/versions.xml @@ -0,0 +1,18 @@ + + + + + + + + + + + + +