![]() |
Open Services for Lifecycle Collaboration
|
Status: 1.0 Draft Specification - 3 January 2012
This Version
Latest Version PreviousVersionContributors
Table of Contents
License
This work is licensed under a Creative Commons Attribution License.
Notation and Conventions
The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” in this document are to be interpreted as described in RFC2119. Domain name examples use RFC2606.
(this section is informative)
This specification builds on the OSLC Core Specification to define the resources and operations supported by an Open Services for Lifecycle Collaboration (OSLC) Automation provider.
Automation resources define automation plans, automation requests and automation results of the software development, test and deployment lifecycle. They represent individual resources as well as their relationships to other automation resources and to other linked resources outside of the automation domain. The intent of this specification is to define the set of HTTP-based RESTful interfaces in terms of HTTP methods: GET, POST, PUT and DELETE, HTTP response codes, mime type handling and resource formats. The capabilities of the interface definitions are driven by key integration scenarios and therefore don't represent a complete setup of operations on resources or resource types. The resource formats and operations may not match exactly the native models supported by automation service providers but are intended to be compatible with them.
Automation, as referenced in this specification, refers to the use of IT systems such as servers, workstations and smart hand-held devices to improve efficiency and reduce the need for manual human interactions in the software development, test and deployment lifecycle. See the AutomationScenarios page for examples from the build, test and deployment disciplines.
Service Provider - an implementation of the OSLC Automation specifications as a server. OSLC Automation clients consume these services
Automation Resource - A resource managed by the Automation service provider. The types of resources defined by this specification are Automation Plan, Automation Request and Automation Result.
Automation Plan - Defines the unit of automation which is available for execution.
Automation Request - Defines the submission of the information required to execute an Automation Plan and indicates the desired execution state.
Automation Result - Defines intermediate and final execution status of an Automation Request, along with contributions to the result.
Automation Parameter Definition - Defines an individual input parameter of an Automation Plan. Parameter Definitions provide an indication of the type of the parameter and range of allowed values.
Automation Parameter Instance - Defines an individual input or output parameter instance for an Automation Request or Result.
This specification is based on OSLC Core Specification. OSLC Automation consumers and service providers MUST be compliant with both the core specification and this Automation specification, and SHOULD follow all the guidelines and recommendations in both these specifications.
The following table summarizes the requirements from OSLC Core Specification as well as some (but not all) additional requirements specific to Automation. See the full content of the Automation specification for all requirements. Note that this specification further restricts some of the requirements for OSLC Core Specification as noted in the Origin column of the compliance table. See further sections in this specification or the OSLC Core Specification to get further details on each of these requirements.
Any consumer or service provider behaviors are allowed unless explicitly prohibited by this or dependent specifications; conditional permissive requirements, especially those qualified with “MAY”, are implicitly covered by the preceding clause. While technically redundant in light of that broad permission, OSLC specifications do still make explicit MAY-qualified statements in cases where the editors believe doing so is likely to add clarity.
Requirement | Level | Origin(s) | Meaning |
---|---|---|---|
Unknown properties and content | MUST | Core | OSLC clients MUST preserve unknown content |
Requirement | Level | Origin(s) | Meaning |
---|---|---|---|
Unknown properties and content | MAY | Core | OSLC service providers MAY ignore unknown content |
Resource Operations | MUST | Core | OSLC service providers MUST support resource operations via standard HTTP operations |
Resource Paging | MAY | Core | OSLC services MAY provide paging for resources |
Partial Resource Representations | MUST | Core | OSLC service providers MUST support HTTP GET requests for retrieval of a subset of a resource's properties via the oslc.properties URL parameter |
Partial Resource Representations | MAY | Core | OSLC service providers MAY support HTTP PUT requests for updating a subset of a resource's properties via the oslc.properties URL parameter |
Service Provider Resources | MAY | Core | OSLC service providers MAY provide a Service Provider Catalog resource |
Service Provider Resources | MUST | Core | OSLC service providers MUST provide a Service Provider resource |
Creation Factories | MAY | Core | OSLC service providers MAY provide creation factories to enable resource creation via HTTP POST |
Query Capabilities | MUST1 | Automation, Core | OSLC service providers MUST provide query capabilities to enable clients to query for resources |
Query Syntax | MUST2 | Automation, Core | OSLC query capabilities MUST support the OSLC Core Query Syntax |
Query Syntax | MAY | Core | OSLC query capabilities MAY support other query syntax |
Delegated UI Dialogs | SHOULD | Core | OSLC service providers SHOULD allow clients to discover, via their service provider resources, any Delegated UI Dialogs they offer. |
Delegated UI Dialogs | SHOULD | Core | OSLC service providers SHOULD offer delegated UI dialogs for resource creation |
Delegated UI Dialogs | SHOULD | Core | OSLC service providers SHOULD offer delegated UI dialogs for resource selection |
UI Preview | SHOULD | Core | OSLC Services SHOULD offer UI previews for resources that may be referenced by other resources |
HTTP Basic Authentication | MAY | Core | OSLC Services MAY support Basic Auth |
HTTP Basic Authentication | SHOULD | Core | OSLC Services SHOULD support Basic Auth only over HTTPS |
OAuth Authentication | MAY | Core | OSLC service providers MAY support OAuth |
OAuth Authentication | SHOULD | Core | OSLC service providers that support OAuth SHOULD allow clients to discover the required OAuth URLs via their service provider resource |
Error Responses | MAY | Core | OSLC service providers MAY provide error responses using Core-defined error formats |
RDF/XML Representations | MUST3 | Automation, Core | OSLC service providers MUST offer an RDF/XML representation for HTTP GET responses |
RDF/XML Representations | MUST3 | Automation, Core | OSLC service providers MUST accept RDF/XML representations on PUT requests. |
RDF/XML Representations | MUST3 | Automation, Core | RDF/XML representations on POST requests whose semantic intent is to create a new resource instance. |
XML Representations | MAY3 | Automation, Core | OSLC service providers MAY provide a XML representation for HTTP GET, POST and PUT requests that conform to the Core Guidelines for XML. |
JSON Representations | MAY3 | Automation, Core | OSLC service providers MAY provide JSON representations for HTTP GET, POST and PUT requests that conform to the Core Guidelines for JSON |
HTML Representations | SHOULD3 | Automation, Core | OSLC service providers SHOULD provide HTML representations for HTTP GET requests |
See OSLC Core Specification Versioning section.
http://open-services.net/ns/auto#
with a namespace prefix of oslc_auto
. This namespace URI and prefix are used to designate the resources defined in this specification and their properties.
In addition to the requirements for OSLC Defined Resource Representations, this section outlines further refinements and restrictions.
See HTTP Method support table for further clarification on support for HTTP methods and media types for each OSLC Automation resource.
For HTTP GET requests on all OSLC Automation and OSLC Core defined resource types,
For HTTP PUT/POST request formats for Automation resources,
For HTTP GET response formats for Query requests,
Automation Providers MUST provide RDF/XML and MAY provide JSON, XML, and Atom Syndication Format XML.
When Automation Consumers request:
application/rdf+xml
Automation Providers MUST respond with RDF/XML representation without restrictions.
application/xml
Automation Providers SHOULD respond with OSLC-defined abbreviated XML representation as defined in the OSLC Core Representations Guidance
application/atom+xml
Automation Providers SHOULD respond with Atom Syndication Format XML representation as defined in the OSLC Core Representations Guidance
See OSLC Core Authentication section. OSLC Automation puts no additional constraints on authentication.
See OSLC Core Error Responses section. OSLC Automation puts no additional constraints on error responses.
OSLC Automation service providers SHOULD support pagination of query results and MAY support pagination of a single resource's properties as defined by the OSLC Core Specification.
One of the most important properties of an Automation result is the verdict property. "Verdict" indicates the success or failure of the execution of the automation. In queries the oslc_auto:verdict
property is used to filter automation results (e.g. all deployment requests that are "successful").
The problem is that different Automation service providers may use different properties (or even a set of properties) and different values to represent the automation result's verdict.
Predicates are exposed as single-value often read-only properties on a Automation Result resource. An attempt to update read-only predicates SHOULD be answered with a 409 Conflict HTTP status code. Their presence in a resource representation used for an update via PUT MUST NOT prevent the resource from being updated . Predicates MUST be queryable. The Automation Resultt resource definition sections defines the complete set of predicates.
Automation relationships to other resources are represented as properties whose values are the URI of the object or target resource. When an Automation relationship property is to be presented in a user interface, it may be helpful to provide an informative and useful textual label for that relationship instance. (This in addition to the relationship property URI and the object resource URI, which are also candidates for presentation to a user.) To this end, OSLC providers MAY support a dcterms:title
link property in Automation resource representations, using the anchor approach outlined in the OSLC Core Links Guidance.
* Provide Example *
The Automation resource properties are not limited to the ones defined in this specification; service providers may provide additional properties. It is recommended that any additional properties exist in their own unique namespace and not use the namespaces defined in this specification.
A list of properties is defined for each type of resource. Most of these properties are identified in OSLC Core Appendix A: Common Properties. Any exceptions are noted. Relationship properties refer to other resources. These resources may be in any OSLC domain (including Automation).
The diagram below shows the relationships between Automation Resources.
For all resource types defined in this specification, all required properties (those defined with an occurrence of exactly-one or one-or-many) MUST exist for each resource and must be provided when requested. All other properties are optional, and might not exist on some or any resources; those that do not exist will not be present in the returned representation even if requested, while those that do exist MUST be provided if requested. Providers MAY define additional provider-specific properties; providers SHOULD use their own namespaces for such properties, or use standard Dublin Core or RDF namespaces and properties where appropriate.
If no specific set of properties is requested, all properties are returned - both those defined in this specification as well as any provider-specific ones. See Selective Property Values in OSLC Core Specification.
Consumers of OSLC Automation services should note that some resources may have a very large number of related resources, and that some resources may be very large and/or expensive to compute. For this reason, consumers are strongly encouraged to use the oslc.properties
parameter to limit the properties returned from a request to the subset required. See Selective Property Values in OSLC Core Specification.
AutomationPlan
http://open-services.net/ns/auto#AutomationPlan
Prefixed Name | Occurs | Read-only | Value-type | Representation | Range | Description | |
---|---|---|---|---|---|---|---|
OSLC Core: Common Properties | |||||||
dcterms:contributor |
zero-or-many | unspecified | AnyResource | Either Reference or Inline | any |
Contributor or contributors to resource (reference: Dublin Core). It is likely that the target resource will be an foaf:Person but that is not necessarily the case. |
|
dcterms:created |
zero-or-one | True | DateTime | n/a | n/a | Timestamp of resource creation (reference: Dublin Core) | |
dcterms:creator |
zero-or-many | unspecified | AnyResource | Either Reference or Inline | any |
Creator or creators of resource (reference: Dublin Core). It is likely that the target resource will be an foaf:Person but that is not necessarily the case. |
|
dcterms:description |
zero-or-one | unspecified | XMLLiteral | n/a | n/a | Descriptive text (reference: Dublin Core) about resource represented as rich text in XHTML content. SHOULD include only content that is valid and suitable inside an XHTML <div> element. | |
dcterms:identifier |
exactly-one | True | String | n/a | n/a | A unique identifier for a resource. Assigned by the service provider when a resource is created. Not intended for end-user display. | |
dcterms:modified |
zero-or-one | True | DateTime | n/a | n/a | Timestamp of latest resource modification (reference: Dublin Core) | |
rdf:type |
zero-or-many | unspecified | Resource | Reference | n/a | The resource type URIs. | |
dcterms:subject |
zero-or-many | unspecified | String | n/a | n/a | Tag or keyword for a resource. Each occurrence of a dc:subject property denotes an additional tag for the resource. | |
dcterms:title |
exactly-one | unspecified | XMLLiteral | n/a | n/a | Title (reference: Dublin Core) of the resource represented as rich text in XHTML content. | |
oslc:instanceShape |
zero-or-one | True | Resource | Reference | oslc:ResourceShape |
Resource Shape that provides hints as to resource property value-types and allowed values. | |
oslc:serviceProvider |
zero-or-many | True | Resource | Reference | oslc:ServiceProvider |
The scope of a resource is a link to the resource's OSLC Service Provider. |
Prefixed Name | Occurs | Read-only | Value-type | Represen-tation | Range | Description |
---|---|---|---|---|---|---|
OSLC Automation: Start of additional properties | ||||||
oslc_auto:parameter |
zero-or-many | unspecified | AnyResource | Either Reference or Inline | oslc:Property |
Parameter definition for automation plan execution. |
AutomationRequest
http://open-services.net/ns/auto#AutomationRequest
Prefixed Name | Occurs | Read-only | Value-type | Representation | Range | Description | |
---|---|---|---|---|---|---|---|
OSLC Core: Common Properties | |||||||
dcterms:contributor |
zero-or-many | unspecified | AnyResource | Either Reference or Inline | any |
Contributor or contributors to resource (reference: Dublin Core). It is likely that the target resource will be an foaf:Person but that is not necessarily the case. |
|
dcterms:created |
zero-or-one | True | DateTime | n/a | n/a | Timestamp of resource creation (reference: Dublin Core) | |
dcterms:creator |
zero-or-many | unspecified | AnyResource | Either Reference or Inline | any |
Creator or creators of resource (reference: Dublin Core). It is likely that the target resource will be an foaf:Person but that is not necessarily the case. |
|
dcterms:identifier |
exactly-one | True | String | n/a | n/a | A unique identifier for a resource. Assigned by the service provider when a resource is created. Not intended for end-user display. | |
dcterms:modified |
zero-or-one | True | DateTime | n/a | n/a | Timestamp of latest resource modification (reference: Dublin Core) | |
rdf:type |
zero-or-many | unspecified | Resource | Reference | n/a | The resource type URIs. | |
dcterms:title |
exactly-one | unspecified | XMLLiteral | n/a | n/a | Title (reference: Dublin Core) of the resource represented as rich text in XHTML content. | |
oslc:instanceShape |
zero-or-one | True | Resource | Reference | oslc:ResourceShape |
Resource Shape that provides hints as to resource property value-types and allowed values. | |
oslc:serviceProvider |
zero-or-many | True | Resource | Reference | oslc:ServiceProvider |
The scope of a resource is a link to the resource's OSLC Service Provider. |
Prefixed Name | Occurs | Read-only | Value-type | Represen-tation | Range | Description |
---|---|---|---|---|---|---|
OSLC Automation: Start of additional properties | ||||||
oslc_auto:state |
zero-or-one | unspecified | String | n/a | n/a | Used to indicate the state of the Automation Request based on values defined by the service provider. Most often a read-only property. |
oslc_auto:desiredState |
zero-or-one | False | String | n/a | n/a | Used to indicate the desired state of the Automation Request based on values defined by the service provider. |
oslc_auto:parameter |
zero-or-many | unspecified | AnyResource | Either Reference or Inline | oslc_auto:ParameterInstance |
Parameters for the automation request. |
Prefixed Name | Occurs | Read-only | Value-type | Representation | Range | Description |
---|---|---|---|---|---|---|
Relationship properties: This grouping of properties is used to identify relationships between resources managed by OSLC Service Providers | ||||||
oslc_auto:executesAutomationPlan |
exactly-one | False | Resource | Reference | any |
Automation Plan run by the Automation Request. It is likely that the target resource will be an oslc_auto:AutomationPlan but that is not necessarily the case. |
AutomationResult
http://open-services.net/ns/auto#AutomationResult
Prefixed Name | Occurs | Read-only | Value-type | Representation | Range | Description | |
---|---|---|---|---|---|---|---|
OSLC Core: Common Properties | |||||||
dcterms:contributor |
zero-or-many | unspecified | AnyResource | Either Reference or Inline | any |
Contributor or contributors to resource (reference: Dublin Core). It is likely that the target resource will be an foaf:Person but that is not necessarily the case. |
|
dcterms:created |
zero-or-one | True | DateTime | n/a | n/a | Timestamp of resource creation (reference: Dublin Core) | |
dcterms:creator |
zero-or-many | unspecified | AnyResource | Either Reference or Inline | any |
Creator or creators of resource (reference: Dublin Core). It is likely that the target resource will be an foaf:Person but that is not necessarily the case. |
|
dcterms:identifier |
exactly-one | True | String | n/a | n/a | A unique identifier for a resource. Assigned by the service provider when a resource is created. Not intended for end-user display. | |
dcterms:modified |
zero-or-one | True | DateTime | n/a | n/a | Timestamp of latest resource modification (reference: Dublin Core) | |
rdf:type |
zero-or-many | unspecified | Resource | Reference | n/a | The resource type URIs. | |
dcterms:subject |
zero-or-many | unspecified | String | n/a | n/a | Tag or keyword for a resource. Each occurrence of a dc:subject property denotes an additional tag for the resource. | |
dcterms:title |
exactly-one | unspecified | XMLLiteral | n/a | n/a | Title (reference: Dublin Core) of the resource represented as rich text in XHTML content. | |
oslc:instanceShape |
zero-or-one | True | Resource | Reference | oslc:ResourceShape |
Resource Shape that provides hints as to resource property value-types and allowed values. | |
oslc:serviceProvider |
zero-or-many | True | Resource | Reference | oslc:ServiceProvider |
The scope of a resource is a link to the resource's OSLC Service Provider. |
Prefixed Name | Occurs | Read-only | Value-type | Represen-tation | Range | Description | |
---|---|---|---|---|---|---|---|
OSLC Automation: Start of additional properties | |||||||
oslc_auto:state |
zero-or-one | unspecified | String | n/a | n/a | Used to indicate the state of the Automation Result based on values defined by the service provider. Most often a read-only property. | |
oslc_auto:verdict |
zero-or-one | unspecified | String | n/a | n/a | Used to indicate the final verdict of the Automation Result based on values defined by the service provider. Most often a read-only property. | |
oslc_auto:hasContribution |
zero-or-many | unspecified | AnyResource | Either Reference or Inline | n/a | A result contribution associated with this automation result. | |
oslc_auto:initialParameter |
zero-or-many | unspecified | AnyResource | Either Reference or Inline | oslc_auto:ParameterInstance |
Input parameters for automation plan execution. | |
oslc_auto:additionalParameter |
zero-or-many | unspecified | AnyResource | Either Reference or Inline | oslc_auto:ParameterInstance |
Output parameters for automation plan execution. |
Prefixed Name | Occurs | Read-only | Value-type | Represen-tation | Range | Description | |
---|---|---|---|---|---|---|---|
State predicate properties: This grouping of properties define a set of computed state predicates, see section on State Predicates for more information. The service provider MUST enforce the restriction that only one of oslc_auto:pass and oslc_auto:fail can be true. |
|||||||
oslc_auto:pass |
zero-or-one | True | Boolean | n/a | n/a | Whether or not the Automation Result is completely done and has run successfully. If oslc_auto:pass is true , then oslc_auto:fail must be false |
|
oslc_auto:warn |
zero-or-one | True | Boolean | n/a | n/a | Whether or not the Automation Result is completely done and has run with warnings associated with it. | |
oslc_auto:fail |
zero-or-one | True | Boolean | n/a | n/a | Whether or not the Automation Result is completely done and has failed to run successfully. If oslc_auto:fail is true , then oslc_auto:pass must be false . |
Prefixed Name | Occurs | Read-only | Value-type | Representation | Range | Description |
---|---|---|---|---|---|---|
Relationship properties: This grouping of properties is used to identify relationships between resources managed by OSLC Service Providers | ||||||
oslc_auto:producedByAutomationRequest |
zero-to-one | False | Resource | Reference | any |
Automation Request which produced the Automation Result. It is likely that the target resource will be an oslc_auto:AutomationResult but that is not necessarily the case. |
oslc_auto:reportsOnAutomationPlan |
exactly-one | False | Resource | Reference | any |
Automation Plan which the Automation Result reports on. It is likely that the target resource will be an oslc_auto:AutomationPlan but that is not necessarily the case. |
ParameterInstance
http://open-services.net/ns/auto#ParameterInstance
Prefixed Name | Occurs | Read-only | Value-type | Representation | Range | Description | |
---|---|---|---|---|---|---|---|
OSLC Core: Common Properties | |||||||
foaf:name |
exactly-one | unspecified | String | n/a | n/a | The name of the parameter instance. | |
rdf:value |
zero-or-one | unspecified | unspecified | n/a | n/a | The value of the parameter. rdf:datatype SHOULD be used to indicate the type of the parameter instance value. | |
dcterms:description |
zero-or-one | unspecified | XMLLiteral | n/a | n/a | Descriptive text (reference: Dublin Core) about resource represented as rich text in XHTML content. SHOULD include only content that is valid and suitable inside an XHTML <div> element. | |
rdf:type |
zero-or-many | unspecified | Resource | Reference | n/a | The resource type URIs. | |
oslc:instanceShape |
zero-or-one | True | Resource | Reference | oslc:ResourceShape |
Resource Shape that provides hints as to resource property value-types and allowed values. | |
oslc:serviceProvider |
zero-or-many | True | Resource | Reference | oslc:ServiceProvider |
The scope of a resource is a link to the resource's OSLC Service Provider. |
OSLC Automation service providers MAY support Resource Shapes as defined in OSLC Core Specification Appendix A
OSLC Automation service providers MUST provide a Service Provider Resource that can be retrieved at a implementation dependent URI.
OSLC Automation service providers MAY provide a Service Provider Catalog Resource that can be retrieved at a implementation dependent URI.
OSLC Automation service providers MUST provide a oslc:serviceProvider
property for their defined resources that will be the URI to a Service Provider Resource.
If an OSLC Automation service provider supports the creation of resources, there MUST be at least one Creation Factories entry in the Services definition.
See HTTP Method support table for further clarification on support for HTTP methods and media types for each OSLC Automation resource.
There MUST be at least one Query Capabilities entry in the Services definition.
The Query Capability MUST at least support these parameters:
If shape information is NOT present with the Query Capability, service providers SHOULD use the default properties defined in OSLC Core RDF/XML Examples to contain the result.
OSLC Automation service providers support the selection and creation of Automation resources as defined by Delegated UIs in OSLC Core.
The service providers supports the delegated UIs as follows:
Automation Resource | Selection | Creation |
---|---|---|
AutomationPlan | SHOULD | MAY |
AutomationRequest | MAY | SHOULD |
AutomationResult | SHOULD | MAY |
For V1 of the OSLC Automation specification, support for all HTTP methods in the compliance table is not required for all Automation resources. The following table summarizes the requirements for each resource type, HTTP method and for each media type.
Resource | RDF/XML | XML | JSON | HTML | |
Automation Plan | |||||
GET | MUST | MAY | MAY | SHOULD | |
PUT | MAY | MAY | MAY | N/A | |
POST | MAY | MAY | MAY | N/A | |
Automation Request | |||||
GET | MUST | MAY | MAY | SHOULD | |
PUT | MAY | MAY | MAY | N/A | |
POST | MUST | MAY | MAY | N/A | |
Automation Result | |||||
GET | MUST | MAY | MAY | SHOULD | |
PUT | MUST | MAY | MAY | N/A | |
POST | MAY | MAY | MAY | N/A | |
Parameter Definition | |||||
GET | MAY | MAY | MAY | MAY | |
PUT | MAY | MAY | MAY | N/A | |
POST | MAY | MAY | MAY | N/A | |
Parameter Instance | |||||
GET | MAY | MAY | MAY | MAY | |
PUT | MAY | MAY | MAY | N/A | |
POST | MAY | MAY | MAY | N/A |
See AutoSpecificationV1Samples
See AutoSpecificationV1Shapes?
The working group participants who author and maintain this working draft specification, monitor a distribution list where issues or questions can be raised, see Automation Mailing List
Also the issues found with this specification and their resolution can be found at AutoSpecificationV1Issues.
The working group participants who author and maintain this working draft specification, monitor a distribution list where issues or questions can be raised, see Automation Mailing List
Also the issues found with this specification and their resolution can be found at AutoSpecificationV1Issues.
The members of the Working Group (or as appropriate, their employers) have documented a Patent Non-Assertion Covenant for implementations of the Automation 1.0 Specification, as described in the open-services.net Terms of Use. Details of the Covenant may be found here? .
I | Attachment | Action | Size | Date | Who | Comment |
---|---|---|---|---|---|---|
![]() |
oslc_automation_resources.png | manage | 50.6 K | 04 Jan 2012 - 17:36 | MichaelFiedler | |
![]() |
oslc_qm_resources.png | manage | 50.6 K | 04 Jan 2012 - 17:35 | MichaelFiedler |