Generating a Test Plan via API Discovery

In my prior posts I took you through the discovery flow to identify the resource shape of creating a new Project Area. The only problem was, there is no public API for creating a Project Area, either via OSLC or published ELM APIs. To that end, you may have been a bit frustrated that all that knowledge ended with a bit of thud.

Let’s rectify that, by building a testing process via IBM ETM and it’s exposed OSLC based APIs. As you can see in the diagram above, a lot of what you have already learned will be applicable. There will be a few minor differences:

We will be accessing the QM application.
We will be looking for qm#TestPlan in our Project Area’s services catalog

We can take this same pattern for many other OSLC based creation APIs, so I will go thru it in more detail this time. As before we will be using our locally setup server, on my machine it is https://elmwb.com on port 9443, so to get to our RootServices we will start at https://elmwb.com:9443/qm/rootservices

RootServices

As we did previously, our first call is to query the root services API for the appropriate application server. We are going to look at the Engineering Test Management (qm) based services in the root services document. There are many namespaces, but let’s look at the following – oslc_(multiple), qm_rqm, and rqm:

<https://elmwb.com:9443/qm/rootservices>   
qm_rqm:trackedResourceSetProvider
          [ a       trs2:TrackedResourceSet ;
            oslc:domain oslc_config: ;
            trs2:trackedResourceSet
                    <https://elmwb.com:9443/qm/trs2> ;
            dc:description "IBM Engineering Test Management (QM) resources, including test plans, cases, scripts, and results."@en ;
            dc:title "ETM Resources (TRS 2.0)"@en ;
            dc:type <http://open-services.net/ns/qm#>
          ] ;
  qm_rqm:trackedResourceSetProvider
          [ a       trs2:TrackedResourceSet ;
            trs2:trackedResourceSet
                    <https://elmwb.com:9443/qm/process-trs2> ;
            dc:description "IBM Engineering Test Management (QM) process resources, including project areas, team areas, timelines, and iterations."@en ;
            dc:title "ETM Process Resources (TRS 2.0)"@en ;
            dc:type <http://jazz.net/ns/process#>
          ] ;
  rqm:majorVersion "7" ;
  rqm:version "7.0.2" ;
  oslc_auto:autoServiceProviders
          <https://elmwb.com:9443/qm/oslc_auto_test/catalog> ;
  oslc_config:cmServiceProviders
          <https://elmwb.com:9443/qm/oslc_config/catalog> ;
  oslc:publisher <https://elmwb.com:9443/qm/application-about> ;
  oslc_qm:qmServiceProviders
          <https://elmwb.com:9443/qm/oslc_qm/catalog> ;
  dc:title "Quality Management"@en .

As you can see above there are 6 root services:

  • Tracked Resources Set Provider for test plans, cases, scripts and results
  • Tracked Resources Set Provider for test process resources: project areas, teams, areas, timelines, and iterations
  • OSLC Auto Service Providers
  • OSLC Configuration Management Service Providers
  • OSLC Publisher
  • OSLC QM Service Providers

I’ll be focusing on our OSLC QM Service Providers since we want to be able to setup automated testing.

OSLC QM Service Providers

The QM (Quality Management) Service Providers API exposes those services for IBM Engineering Test Management, they support the process of testing with Test Plans, Test Case, etc. On my server, and based on the above RootServices document we see that the API is defined as:

GET			Access QM Service Providers
IBM Engineering Test Management Quality Management Service Providers.

Authorization		OAuth 1.0
Consumer Key		consumerkey
Consumer Secret		consumerSecret
Token			
Token Secret		

Request Headers
Accept			application/rdf+xml
OSLC-Core-Version	2.0
Content-Type		application/xml
Accept			text/turtle

Example			
Request			cURL
curl --location --request GET ‘https://elmwb.com:9443/qm/oslc_qm/catalog' \
--header 'Accept: application/rdf+xml' \
--header 'OSLC-Core-Version: 2.0' \
--header 'Content-Type: application/xml'

Response
Body
xml
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<rdf:RDF xmlns:ns6="http://open-services.net/xmlns/qm/1.0/" xmlns:oslc_qm="http://open-services.net/ns/qm#" xmlns:calm="http://jazz.net/xmlns/prod/jazz/calm/1.0/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:ns9="http://jazz.net/xmlns/prod/jazz/process/1.0/" xmlns:ns12="http://jazz.net/xmlns/prod/jazz/presentation/1.0/" xmlns:ns11="http://open-services.net/xmlns/discovery/1.0/" xmlns:ns10="http://jazz.net/ns/discovery#" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:rqm_qm="http://jazz.net/ns/qm/rqm#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:oslc="http://open-services.net/ns/core#">
    <oslc:ServiceProviderCatalog ns13:type="oslc:ServiceProviderCatalog" rdf:about="https://elmwb.com:9443/qm/oslc_qm/catalog" xmlns:ns13="http://www.w3.org/2001/XMLSchema-instance">
        <dcterms:title>ETM Quality Management Service Provider Catalog</dcterms:title>
        <dcterms:description>IBM Engineering Test Management version 7.0.2</dcterms:description>
        <dcterms:publisher>
            <oslc:Publisher>
                <dcterms:title>IBM Engineering Test Management</dcterms:title>
                <oslc:label>7.0.2</oslc:label>
                <dcterms:identifier>https://elmwb.com:9443/qm/</dcterms:identifier>
                <oslc:icon rdf:resource="https://elmwb.com:9443/qm/web/com.ibm.rqm.planning.web/RQM.ico"/>
            </oslc:Publisher>
        </dcterms:publisher>
        <oslc:domain rdf:resource="http://open-services.net/ns/qm#"/>
        <oslc:serviceProvider>
            <oslc:ServiceProvider ns13:type="oslc:ServiceProvider" rdf:about="https://elmwb.com:9443/qm/oslc_qm/contexts/_OIbcAIkaEeynq4H4YH03kw/services.xml">
                <dcterms:title>JKE Banking (Quality Management)</dcterms:title>
                <dcterms:description>JKE Banking (Quality Management)</dcterms:description>
                <oslc:details rdf:resource="https://elmwb.com:9443/qm/process/project-areas/_OIbcAIkaEeynq4H4YH03kw"/>
                <ns9:consumerRegistry rdf:resource="https://elmwb.com:9443/qm/process/project-areas/_OIbcAIkaEeynq4H4YH03kw/links"/>
            </oslc:ServiceProvider>
        </oslc:serviceProvider>
        <oslc:oauthConfiguration>
            <oslc:OAuthConfiguration>
                <oslc:oauthRequestTokenURI rdf:resource="https://elmwb.com:9443/qm/oauth-request-token"/>
                <oslc:authorizationURI rdf:resource="https://elmwb.com:9443/qm/oauth-authorize"/>
                <oslc:oauthAccessTokenURI rdf:resource="https://elmwb.com:9443/qm/oauth-access-token"/>
            </oslc:OAuthConfiguration>
        </oslc:oauthConfiguration>
    </oslc:ServiceProviderCatalog>
</rdf:RDF>

Headers
X-Powered-By			Servlet/3.0
Strict-Transport-Security	max-age=31536000
OSLC-Core-Version			2.0
Content-Type			application/rdf+xml
Content-Language			en-US
Transfer-Encoding			chunked
Date					Wed, 23 Mar 2022 12:26:38 GMT

Please note, I have removed the authentication information from the GET Url, as it will be different based on the authentication method you choose (OAuth1.0a or OIDC). As in my prior discovery blog post, we want to identify the services.xml that contains the APIs for our chosen Project Area. In our above rdf+xml it can be found at the path: <rdf:RDF><oslc:ServiceProviderCatalog><oslc:serviceProvider rdf:about=> . I’ve highlighted the services end point in bold above – https://elmwb.com:9443/qm/oslc_qm/contexts/_OIbcAIkaEeynq4H4YH03kw/services.xml.

This end point will now allow us to look at the automation Services supported by “JKE Banking (Quality Management)”.

QM Service Provider

Now that we have found the QM Service Provider for the “JKE Banking (Quality Management)” project area, we can identify the various Creation Factories and Query Capabilities. Both of these services will provide both a Resource Shape and an endpoint to use for creating the object. For Creation Factories we are looking for “oslc:creation”; while for Query Capabilities we look for “oslc:queryBase”.

The API for Automation Service Provider is defined as:

GET			Access Service Provider
IBM Engineering Test Management A Project Area’s Service Providers.

Authorization		OAuth 1.0
Consumer Key		consumerkey
Consumer Secret		consumerSecret
Token			
Token Secret		

Request Headers
Accept			application/rdf+xml
OSLC-Core-Version	2.0
Content-Type		application/xml
Accept			text/turtle

Example			
Request			cURL
curl --location --request GET ‘https://elmwb.com:9443/qm/oslc_qm/contexts/_OIbcAIkaEeynq4H4YH03kw/services.xml' \
--header 'Accept: application/rdf+xml' \
--header 'OSLC-Core-Version: 2.0' \
--header 'Content-Type: application/xml’

Please note, I have removed the authentication information from the GET Url, as it will be different based on the authentication method you choose (OAuth1.0a or OIDC).

If we look at , we will find the following Creation Factory for our Test Plan:

<oslc:creationFactory>
    <oslc:CreationFactory>
        <dcterms:title>Default creation factory for TestPlan</dcterms:title>
        <oslc:creation rdf:resource="https://elmwb.com:9443/qm/oslc_qm/contexts/_OIbcAIkaEeynq4H4YH03kw/resources/com.ibm.rqm.planning.VersionedTestPlan"/>
        <oslc:resourceShape rdf:resource="https://elmwb.com:9443/qm/oslc_qm/contexts/_OIbcAIkaEeynq4H4YH03kw/shape/creation/com.ibm.rqm.planning.VersionedTestPlan"/>
        <oslc:resourceType rdf:resource="http://open-services.net/ns/qm#TestPlan"/>
    </oslc:CreationFactory>
</oslc:creationFactory>

This is exactly what we are looking for. As I mentioned above, there are two items we are looking for:

  • oslc:resourceShape
  • oslc:creation

These two elements provide us with the two endpoints we need to create a new Test Plan. The Resource Shape will let us know what data we need to provide for creating a new Test Plan; while the Creation Factory provides us with the end point to actually create it.

In a prior post I provided the details of understanding a Resource Shape, but as you will see, the resource shape for a Test Plan is significantly more complex. A general Test Plan resource shape can be found at https://archive.open-services.net/bin/view/Main/QmSpecificationV2?sortcol=table;up=#QM_Resource_Definition , but the ETM specific resource shape is discovered via the link in the above oslc:Service.

The Test Plan Resource Shape (Part 1)

We begin with our GET to the oslc:resourceShape using the same headers and authentication from the Service Provider API, to help reduce the length of this article I am not going to repeat that here. The point is, we are using these same values for all our APIs unless I specifically call it out.

The first thing you may notice in the returned Resource Shape is that it contains many xml:lang tags. This allows for many of the elements to provide titles in various languages. To shorten this post, I will remove all but xml:lang=“en”.

There are two types entries in this resource shape, the base object and node entries. The nodes actually are the details for each of the properties required when creating the base object. In our case the base object is our Test Plan. We see that defined here:

<rdf:Description rdf:about="https://elmwb.com:9443/qm/oslc_qm/contexts/_OIbcAIkaEeynq4H4YH03kw/shape/creation/com.ibm.rqm.planning.VersionedTestPlan">
    <oslc:property rdf:nodeID="A90"/>
    <oslc:property rdf:nodeID="A68"/>
    <oslc:describes rdf:resource="http://open-services.net/ns/qm#TestPlan"/>
    <oslc:property rdf:nodeID="A13"/>
    <oslc:property rdf:nodeID="A139"/>
    <oslc:property rdf:nodeID="A24"/>
    <dcterms:description rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Defines the overall process and strategy for testing a system.</dcterms:description>
    <acc:accessContext rdf:resource="https://elmwb.com:9443/qm/acclist#_OIbcAIkaEeynq4H4YH03kw"/>
    <oslc:property rdf:nodeID="A70"/>
    <dcterms:title rdf:datatype="http://www.w3.org/2001/XMLSchema#string">QM Test Plan</dcterms:title>
    <oslc:property rdf:nodeID="A32"/>
    <oslc:property rdf:nodeID="A31"/>
    <oslc:property rdf:nodeID="A39"/>
    <oslc:property rdf:nodeID="A117"/>
    <oslc:property rdf:nodeID="A73"/>
    <oslc:property rdf:nodeID="A35"/>
    <oslc:property rdf:nodeID="A82"/>
    <oslc:property rdf:nodeID="A41"/>
    <oslc:property rdf:nodeID="A140"/>
    <oslc:property rdf:nodeID="A141"/>
    <oslc:property rdf:nodeID="A1"/>
    <oslc:serviceProvider rdf:resource="https://elmwb.com:9443/qm/oslc_qm/contexts/_OIbcAIkaEeynq4H4YH03kw/services.xml"/>
    <oslc:property rdf:nodeID="A0"/>
    <rdf:type rdf:resource="http://open-services.net/ns/core#ResourceShape"/>
    <oslc:property rdf:nodeID="A80"/>
    <oslc:property rdf:nodeID="A44"/>
    <oslc:property rdf:nodeID="A15"/>
    <oslc:property rdf:nodeID="A54"/>
    <oslc:property rdf:nodeID="A53"/>
    <oslc:property rdf:nodeID="A71"/>
    <oslc:property rdf:nodeID="A21"/>
    <oslc:property rdf:nodeID="A136"/>
    <oslc:property rdf:nodeID="A84"/>
</rdf:Description>

As we see there are 27 properties required to create a Test Plan and I plan to go thru them one by one. After this is complete we should have what we need to define the body of the Creation Factory.

Please note that the Node numbers may vary and are only used to identify information in the resource shape.

Node A0 – Formal Review

Here’s the details of the node:

<rdf:Description rdf:nodeID="A0">
    <oslc:readOnly rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">false</oslc:readOnly>
    <oslc:valueShape rdf:resource="https://elmwb.com:9443/qm/oslc_qm/contexts/_OIbcAIkaEeynq4H4YH03kw/shape/resource/com.ibm.rqm.planning.VersionedTestPlan#QualityApproval"/>
    <oslc:valueType rdf:resource="http://open-services.net/ns/core#AnyResource"/>
    <oslc:range rdf:resource="http://jazz.net/ns/qm/rqm#QualityApproval"/>
    <dcterms:description rdf:datatype="http://www.w3.org/2001/XMLSchema#string">The formal review records of the resource.</dcterms:description>
    <dcterms:title rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Formal Review</dcterms:title>
    <rdf:type rdf:resource="http://open-services.net/ns/core#Property"/>
    <oslc:occurs rdf:resource="http://open-services.net/ns/core#Zero-or-many"/>
    <oslc:representation rdf:resource="http://open-services.net/ns/core#Inline"/>
    <oslc:isMemberProperty rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">false</oslc:isMemberProperty>
    <oslc:propertyDefinition rdf:resource="http://jazz.net/ns/qm/rqm#formalReview"/>
    <oslc:name rdf:datatype="http://www.w3.org/2001/XMLSchema#string">formalReview</oslc:name>
    <oslc:hidden rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">false</oslc:hidden>
</rdf:Description>

There is a bunch of information in this definition, we will see similar properties for each node. Those properties in the dcterms name space are descriptive, so I will not focus on them. I have removed all of the various language values for jrs:inversePropertyLabel, dcterms:description and dcterms:title.

If we look at the <rdf:type> we see that our node A0 is defined as a core#Property. We know this will be a property of our Test Plan. The title and description is defined in dcterms: title = “Formal Review” and description = “The formal review records of the resource.”

The rest of the values are <oslc:> values. The definition of each of these values is defined in the “rdf:data=“ tag. There are seven values in this nodes:

TagDefinitionValue
oslc:readOnlyIf true then the defined property cannot be directly written by clients, but may be updated indirectly by servers.FALSE
oslc:valueShapeThis will point to a resource shape for the value, as defined in the oslc:valueTypehttps://elmwb.com:9443/qm/oslc_qm/contexts/_OIbcAIkaEeynq4H4YH03kw/shape/resource/com.ibm.rqm.planning.VersionedTestPlan#QualityApproval 
oslc:valueTypeThe type of values of the defined property. This is defined in our rdf:resource tag.http://open-services.net/ns/core#AnyResource
oslc:rangeThe value of the applicable property is constrained to be of type Quality Approval.http://jazz.net/ns/qm/rqm#QualityApproval
oslc:occursThe number of times the defined property may occur. Values are defined in oslc:Cardinality.http://open-services.net/ns/core#Zero-or-many  
oslc:representationThe representation of the object resource must be present in the representation of the described resource.http://open-services.net/ns/core#Inline
oslc:isMemberPropertyIf true then the described resource is a container and the defined property is used for container membership.FALSE
oslc:propertyDefinitionThe formal review records of the resource.http://jazz.net/ns/qm/rqm#formalReview
oslc:nameThe local name of the defined property.formalReview
oslc:hiddenIndicates the resource of property should not be displayed to users.FALSE

This table tells us a lot about A0. Ultimately we see that it occurs Zero-or-many, meaning this an optional value, that may have more than one value. The values are defined as AnyResource, whose name (or identifier) is formalReview. The values are stored “inline” in the format of a QualityApproval resource shape. We also see that the client can update the value, and its value can be displayed to users of the system.

One thing you will note is that there is no vocabulary definition available at http://jazz.net/ns/qm/rqm#QualityApproval; however you do see all the defined vocabulary for ETM at the link. There is a vocabulary for approval on the page at https://jazz.net/wiki/bin/view/LinkedData/RqmResourceVocabulary#approval. Given that this is optional, we will not provide any value in our simple POST body.

Therefore, we will include <oslc:formalReview/> in the body of our test plan creation factory post.

Node a1 – has child plan

Here’s the details of the node:

<rdf:Description rdf:nodeID="A1">
    <oslc:valueType rdf:resource="http://open-services.net/ns/core#Resource"/>
    <oslc:name rdf:datatype="http://www.w3.org/2001/XMLSchema#string">hasChildPlan</oslc:name>
    <oslc:readOnly rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">false</oslc:readOnly>
    <jrs:inversePropertyLabel rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Parent Plan</jrs:inversePropertyLabel>
    <oslc:representation rdf:resource="http://open-services.net/ns/core#Reference"/>
    <oslc:isMemberProperty rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">false</oslc:isMemberProperty>
    <oslc:range rdf:resource="http://open-services.net/ns/qm#TestPlan"/>
    <dcterms:description rdf:datatype="http://www.w3.org/2001/XMLSchema#string">The child test plan of the Test Plan.</dcterms:description>
    <dcterms:title rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Has Child Plan</dcterms:title>
    <oslc:hidden rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">false</oslc:hidden>
    <oslc:valueShape rdf:resource="https://elmwb.com:9443/qm/oslc_qm/contexts/_OIbcAIkaEeynq4H4YH03kw/shape/resource/com.ibm.rqm.planning.VersionedTestPlan"/>
    <rdf:type rdf:resource="http://open-services.net/ns/core#Property"/>
    <oslc:occurs rdf:resource="http://open-services.net/ns/core#Zero-or-many"/>
    <oslc:propertyDefinition rdf:resource="http://jazz.net/ns/qm/rqm#hasChildPlan"/>
</rdf:Description>

The title and description is defined in dcterms:title = “Has Child Plan” and description = “The child test plan of the Test Plan.” We also see our first occurrence of a <jrs:inversePropertyLabel> with a value of “Parent”. This implies that a Child Plan which points to this Test Plan, will identify this plan as its “Parent” plan.

The rest of the values are <oslc:> values. The definition of each of these values is defined in the “rdf:data=“ tag. There are seven values in this nodes:

TagDefinitionValue
oslc:valueTypeA URI Reference representation to a resource.http://open-services.net/ns/core#Resource
oslc:nameThe local name of the defined property.hasChildPlan
oslc:readOnlyIf true then the defined property cannot be directly written by clients, but may be updated indirectly by servers.FALSE
oslc:valueShapeThis will point to a resource shape for the value, as defined in the oslc:valueTypehttps://elmwb.com:9443/qm/oslc_qm/contexts/_OIbcAIkaEeynq4H4YH03kw/shape/resource/com.ibm.rqm.planning.VersionedTestPlan#QualityApproval 
oslc:rangeThe value of the applicable property is constrained to be of type Quality Approval.http://jazz.net/ns/qm/rqm#QualityApproval
oslc:occursThe number of times the defined property may occur. Values are defined in oslc:Cardinality.http://open-services.net/ns/core#Zero-or-many  
oslc:representationThe representation of the object resource must be present in the representation of the described resource.http://open-services.net/ns/core#Inline
oslc:isMemberPropertyIf true then the described resource is a container and the defined property is used for container membership.FALSE
oslc:propertyDefinitionThe formal review records of the resource.http://jazz.net/ns/qm/rqm#formalReview
oslc:hiddenIndicates the resource of property should not be displayed to users.FALSE

We see that it occurs Zero-or-many, meaning this an optional value, that may have more than one value. The values are defined as Resource, whose name (or identifier) is hasChildPlan. We also see that the client can update the value, and its value can be displayed to users of the system.

Given that this is optional, we will not provide any value in our simple POST body. We will include <oslc:hasChildPlan/> in the body of our test plan creation factory post.

node a13 – category

Here’s the details of the node:

<rdf:Description rdf:nodeID="A13">
    <oslc:allowedValue rdf:resource="https://elmwb.com:9443/qm/service/com.ibm.rqm.integration.service.IIntegrationService/resources/JKE+Banking+%28Quality+Management%29/category/urn:com.ibm.rqm:category:_PMUh8IkaEeynq4H4YH03kw"/>
    <rdf:type rdf:resource="http://open-services.net/ns/core#Property"/>
    <oslc:valueShape rdf:resource="https://elmwb.com:9443/qm/oslc_qm/contexts/_OIbcAIkaEeynq4H4YH03kw/shape/resource/com.ibm.rqm.planning.VersionedTestPlan#Category"/>
    <oslc:allowedValue rdf:resource="https://elmwb.com:9443/qm/service/com.ibm.rqm.integration.service.IIntegrationService/resources/JKE+Banking+%28Quality+Management%29/category/urn:com.ibm.rqm:category:_PMQQgIkaEeynq4H4YH03kw"/>
    <oslc:allowedValue rdf:resource="https://elmwb.com:9443/qm/service/com.ibm.rqm.integration.service.IIntegrationService/resources/JKE+Banking+%28Quality+Management%29/category/urn:com.ibm.rqm:category:_PMObVokaEeynq4H4YH03kw"/>
    <oslc:name rdf:datatype="http://www.w3.org/2001/XMLSchema#string">category</oslc:name>
    <oslc:valueType rdf:resource="http://open-services.net/ns/core#AnyResource"/>
    <oslc:representation rdf:resource="http://open-services.net/ns/core#Inline"/>
    <dcterms:title rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Category</dcterms:title>
    <oslc:allowedValue rdf:resource="https://elmwb.com:9443/qm/service/com.ibm.rqm.integration.service.IIntegrationService/resources/JKE+Banking+%28Quality+Management%29/category/urn:com.ibm.rqm:category:_PMMmJ4kaEeynq4H4YH03kw"/>
    <oslc:isMemberProperty rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">false</oslc:isMemberProperty>
    <oslc:hidden rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">false</oslc:hidden>
    <oslc:allowedValue rdf:resource="https://elmwb.com:9443/qm/service/com.ibm.rqm.integration.service.IIntegrationService/resources/JKE+Banking+%28Quality+Management%29/category/urn:com.ibm.rqm:category:_PMLYBokaEeynq4H4YH03kw"/>
    <oslc:allowedValue rdf:resource="https://elmwb.com:9443/qm/service/com.ibm.rqm.integration.service.IIntegrationService/resources/JKE+Banking+%28Quality+Management%29/category/urn:com.ibm.rqm:category:_PMPCZokaEeynq4H4YH03kw"/>
    <oslc:readOnly rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">false</oslc:readOnly>
    <oslc:occurs rdf:resource="http://open-services.net/ns/core#Zero-or-many"/>
    <oslc:allowedValue rdf:resource="https://elmwb.com:9443/qm/service/com.ibm.rqm.integration.service.IIntegrationService/resources/JKE+Banking+%28Quality+Management%29/category/urn:com.ibm.rqm:category:_PMVwEIkaEeynq4H4YH03kw"/>
    <dcterms:description rdf:datatype="http://www.w3.org/2001/XMLSchema#string">The category title and subject for the resource.</dcterms:description>
    <oslc:propertyDefinition rdf:resource="http://jazz.net/ns/qm/rqm#category"/>
    <oslc:allowedValue rdf:resource="https://elmwb.com:9443/qm/service/com.ibm.rqm.integration.service.IIntegrationService/resources/JKE+Banking+%28Quality+Management%29/category/urn:com.ibm.rqm:category:_PMSFtokaEeynq4H4YH03kw"/>
    <oslc:allowedValue rdf:resource="https://elmwb.com:9443/qm/service/com.ibm.rqm.integration.service.IIntegrationService/resources/JKE+Banking+%28Quality+Management%29/category/urn:com.ibm.rqm:category:_PMFRYIkaEeynq4H4YH03kw"/>
    <oslc:allowedValue rdf:resource="https://elmwb.com:9443/qm/service/com.ibm.rqm.integration.service.IIntegrationService/resources/JKE+Banking+%28Quality+Management%29/category/urn:com.ibm.rqm:category:_PMQ3l4kaEeynq4H4YH03kw"/>
    <oslc:range rdf:resource="http://jazz.net/ns/qm/rqm#Category"/>
    <oslc:allowedValue rdf:resource="https://elmwb.com:9443/qm/service/com.ibm.rqm.integration.service.IIntegrationService/resources/JKE+Banking+%28Quality+Management%29/category/urn:com.ibm.rqm:category:_PMSsxokaEeynq4H4YH03kw"/>
    <oslc:allowedValue rdf:resource="https://elmwb.com:9443/qm/service/com.ibm.rqm.integration.service.IIntegrationService/resources/JKE+Banking+%28Quality+Management%29/category/urn:com.ibm.rqm:category:_PMQQiIkaEeynq4H4YH03kw"/>
</rdf:Description>

The title and description is defined in dcterms: title = “Category” and description = “The category title and subject for the resource.”

We see our first appearance of “oslc”allowedValue”, this is providing a link to the categories defined for this project area on your server. On my server there are 12 unique values for Category as defined in this resource shape. If I were to perform the following GET:

curl --location --request GET 'https://elmwb.com:9443/qm/service/com.ibm.rqm.integration.service.IIntegrationService/resources/JKE+Banking+%28Quality+Management%29/category/urn:com.ibm.rqm:category:_PMQQgIkaEeynq4H4YH03kw?oauth_consumer_key=3a22aebf45d542398673534d786c29ca&oauth_token=2940b16b64f24415b252c6ff7c1b1190&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1648670991&oauth_nonce=Bh5ohpVs8lC&oauth_signature=RF6qkMdULFxrLRb2DO0SGfRXDRQ%3D' \
--header 'OSLC-Core-Version: 2.0' \
--header 'Content-Type: application/xml' \
--header 'Accept: application/json'

I would see that the category in this is “R 0.2” –

{
    "category": {
        "updated": "2022-02-08T20:03:46.989Z",
        "identifier": "https://elmwb.com:9443/qm/service/com.ibm.rqm.integration.service.IIntegrationService/resources/JKE+Banking+%28Quality+Management%29/category/mtm.tp.cat.release.r_2_0",
        "projectArea": {
            "href": "https://elmwb.com:9443/qm/resource/itemOid/com.ibm.team.process.ProjectArea/_OIbcAIkaEeynq4H4YH03kw",
            "alias": "JKE+Banking+%28Quality+Management%29"
        },
        "categoryType": {
            "href": "https://elmwb.com:9443/qm/service/com.ibm.rqm.integration.service.IIntegrationService/resources/JKE+Banking+%28Quality+Management%29/categoryType/mtm.tp.cat.release"
        },
        "title": "R 2.0"
    }
}

The rest of the values are values. The definition of each of these values is defined in the “rdf:data=“ tag. There are seven values in this nodes:

TagDefinitionValue
oslc:valueShapeThis will point to a resource shape for the value, as defined in the oslc:valueTypehttps://elmwb.com:9443/qm/oslc_qm/contexts/_OIbcAIkaEeynq4H4YH03kw/shape/resource/com.ibm.rqm.planning.VersionedTestPlan#Category 
oslc:nameThe local name of the defined property.category
oslc:valueTypeA Property resource describes one allowed or required property of a resource.http://open-services.net/ns/core#Property
oslc:representationThe representation of the object resource must be present in the representation of the described resource.http://open-services.net/ns/core#Inline
oslc:isMemberPropertyIf true then the described resource is a container and the defined property is used for container membership.FALSE
oslc:hiddenIndicates the resource of property should not be displayed to users.FALSE
oslc:readOnlyIf true then the defined property cannot be directly written by clients, but may be updated indirectly by servers.FALSE
oslc:occursThe number of times the defined property may occur. Values are defined in oslc:Cardinality.http://open-services.net/ns/core#Zero-or-many  
oslc:propertyDefinitionThe category title and subject for the resource.http://jazz.net/ns/qm/rqm#category 
oslc:rangeThe category title and subject for the resource.http://jazz.net/ns/qm/rqm#Category 

Given that this is optional, we will not provide any value in our simple POST body. We will include <oslc:category/> in the body of our test plan creation factory post.

Node a15 – Has priority

Here’s the details of the node:

<rdf:Description rdf:nodeID="A15">
    <oslc:allowedValue rdf:resource="https://elmwb.com:9443/qm/service/com.ibm.rqm.integration.service.IIntegrationService/process-info/_OIbcAIkaEeynq4H4YH03kw/priority/literal.priority.120"/>
    <oslc:name rdf:datatype="http://www.w3.org/2001/XMLSchema#string">hasPriority</oslc:name>
    <oslc:isMemberProperty rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">false</oslc:isMemberProperty>
    <dcterms:title rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Has Priority</dcterms:title>
    <oslc:occurs rdf:resource="http://open-services.net/ns/core#Zero-or-one"/>
    <oslc:allowedValue rdf:resource="https://elmwb.com:9443/qm/service/com.ibm.rqm.integration.service.IIntegrationService/process-info/_OIbcAIkaEeynq4H4YH03kw/priority/literal.priority.101"/>
    <dcterms:description rdf:datatype="http://www.w3.org/2001/XMLSchema#string">The priority of the resource.</dcterms:description>
    <oslc:defaultValue rdf:resource="https://elmwb.com:9443/qm/service/com.ibm.rqm.integration.service.IIntegrationService/process-info/_OIbcAIkaEeynq4H4YH03kw/priority/literal.priority.101"/>
    <rdf:type rdf:resource="http://open-services.net/ns/core#Property"/>
    <oslc:allowedValue rdf:resource="https://elmwb.com:9443/qm/service/com.ibm.rqm.integration.service.IIntegrationService/process-info/_OIbcAIkaEeynq4H4YH03kw/priority/literal.priority.110"/>
    <oslc:representation rdf:resource="http://open-services.net/ns/core#Reference"/>
    <oslc:range rdf:resource="http://jazz.net/xmlns/prod/jazz/rqm/process/1.0/Priority"/>
    <oslc:allowedValue rdf:resource="https://elmwb.com:9443/qm/service/com.ibm.rqm.integration.service.IIntegrationService/process-info/_OIbcAIkaEeynq4H4YH03kw/priority/literal.priority.130"/>
    <oslc:valueType rdf:resource="http://open-services.net/ns/core#Resource"/>
    <oslc:propertyDefinition rdf:resource="http://jazz.net/xmlns/prod/jazz/rqm/process/1.0/hasPriority"/>
    <oslc:valueShape rdf:resource="http://jazz.net/xmlns/prod/jazz/rqm/process/1.0/Priority"/>
    <oslc:readOnly rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">false</oslc:readOnly>
    <oslc:hidden rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">false</oslc:hidden>
</rdf:Description>

The title and description is defined in dcterms:title = “Has Priority” and description = “The priority of the resource.” The “oslc” allowedValue” appears again, providing links to valid priorities on this server, you can use a GET on the resource if you want to know the values.

The rest of the values are values. The definition of each of these values is defined in the “rdf:data=“ tag. There are seven values in this nodes:

TagDefinitionValue
oslc:nameThe local name of the defined property.hasPriority
oslc:isMemberPropertyIf true then the described resource is a container and the defined property is used for container membership.FALSE
oslc:occursThe number of times the defined property may occur. Values are defined in oslc:Cardinality.http://open-services.net/ns/core#Zero-or-many  
oslc:representationA URI Reference representation to a resource.http://open-services.net/ns/core#Reference 
oslc:rangeThe value of the applicable property is constrained to be of type Priority.http://jazz.net/xmlns/prod/jazz/rqm/process/1.0/Priority 
oslc:valueTypeA URI Reference representation to a resource.http://open-services.net/ns/core#Resource
oslc:propertyDefinition
http://jazz.net/xmlns/prod/jazz/rqm/process/1.0/hasPriority 
oslc:valueShapeThis will point to a resource shape for the value, as defined in the oslc:valueTypehttp://jazz.net/xmlns/prod/jazz/rqm/process/1.0/Priority 
oslc:readOnlyIf true then the defined property cannot be directly written by clients, but may be updated indirectly by servers.FALSE
oslc:hiddenIndicates the resource of property should not be displayed to users.FALSE

Given that this is optional, we will not provide any value in our simple POST body. We will include <oslc:hasPriority/> in the body of our test plan creation factory post.

Node A21 – Title

Here’s the details of the node:

<rdf:Description rdf:nodeID="A21">
    <oslc:occurs rdf:resource="http://open-services.net/ns/core#Exactly-one"/>
    <oslc:isMemberProperty rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">false</oslc:isMemberProperty>
    <oslc:valueType rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral"/>
    <oslc:hidden rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">false</oslc:hidden>
    <rdf:type rdf:resource="http://open-services.net/ns/core#Property"/>
    <oslc:name rdf:datatype="http://www.w3.org/2001/XMLSchema#string">title</oslc:name>
    <oslc:readOnly rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">false</oslc:readOnly>
    <dcterms:description rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Title (reference: Dublin Core) of the resource represented as rich text in XHTML content. SHOULD include only content that is valid inside an XHTML &lt;span&gt; element.</dcterms:description>
    <oslc:propertyDefinition rdf:resource="http://purl.org/dc/terms/title"/>
</rdf:Description>

The description is defined in dcterms:description = “Title (reference: Dublin Core) of the resource represented as rich text in XHTML content. SHOULD include only content that is valid inside an XHTML <span> element.” The comment about (reference: Dublin Core) is key here, as our Response body will contain a <dcterms:title> instead of <oslc:title> .

The rest of the values are <oslc> values. The definition of each of these values is defined in the “rdf:data=“ tag. There are seven values in this nodes:

TagDefinitionValue
oslc:occursThe number of times the defined property may occur. Values are defined in oslc:Cardinality. Exactly-one tells us this is Mandatory.http://open-services.net/ns/core#Exactly-one 
oslc:isMemberPropertyIf true then the described resource is a container and the defined property is used for container membership.FALSE
oslc:valueTypeThe datatype of RDF literals.http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral 
oslc:hiddenIndicates the resource of property should not be displayed to users.FALSE
oslc:nameThe local name of the defined property.title
oslc:readOnlyIf true then the defined property cannot be directly written by clients, but may be updated indirectly by servers.FALSE
oslc:propertyDefinitionA name given to the resource.http://purl.org/dc/terms/title 

We have found our first mandatory property for creating a test plan. In our case we will use the following entry in our Response Body: <dcterms:title>Test plan created from API</dcterms:title>. Remember, the dcterms:description let us know we should use dcterms instead of oslc in our name space.

Node a24 – contributor

Here’s the details of the node:

<rdf:Description rdf:nodeID="A24">
    <oslc:name rdf:datatype="http://www.w3.org/2001/XMLSchema#string">contributor</oslc:name>
    <oslc:range rdf:resource="http://xmlns.com/foaf/0.1/Person"/>
    <oslc:hidden rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">false</oslc:hidden>
    <rdf:type rdf:resource="http://open-services.net/ns/core#Property"/>
    <dcterms:title rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Contributor</dcterms:title>
    <oslc:valueType rdf:resource="http://open-services.net/ns/core#AnyResource"/>
    <oslc:propertyDefinition rdf:resource="http://purl.org/dc/terms/contributor"/>
    <oslc:isMemberProperty rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">false</oslc:isMemberProperty>
    <oslc:representation rdf:resource="http://open-services.net/ns/core#Either"/>
    <oslc:readOnly rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">false</oslc:readOnly>
    <oslc:occurs rdf:resource="http://open-services.net/ns/core#Zero-or-many"/>
    <dcterms:description rdf:datatype="http://www.w3.org/2001/XMLSchema#string">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:description>
    <oslc:valueShape rdf:resource="http://xmlns.com/foaf/0.1/Person"/>

The title and description is defined in dcterms: title = “Contributor” and description = “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.” If you are not familiar with the acronym “foaf” – it stands for Friend of A Friend – you can read more about it here – https://en.wikipedia.org/wiki/FOAF_(ontology).

The rest of the values are values <oslc:> values. The definition of each of these values is defined in the “rdf:data=“ tag. There are seven values in this nodes:

TagDefinitionValue
oslc:nameThe local name of the defined property.contributor
oslc:rangeThe Person class represents people.http://xmlns.com/foaf/0.1/Person 
oslc:hiddenIndicates the resource of property should not be displayed to users.FALSE
oslc:valueTypeA URI Reference representation to any resource.http://open-services.net/ns/core#AnyResource 
oslc:propertyDefinitionAn entity responsible for making contributions to the resource.http://purl.org/dc/terms/contributor 
oslc:isMemberPropertyIf true then the described resource is a container and the defined property is used for container membership.FALSE
oslc:representationRepresentation is either a URI reference or blank node.http://open-services.net/ns/core#Either 
oslc:readOnlyIf true then the defined property cannot be directly written by clients, but may be updated indirectly by servers.FALSE
oslc:occursThe number of times the defined property may occur. Values are defined in oslc:Cardinality.http://open-services.net/ns/core#Zero-or-many  
oslc:valueShapeThe Person class represents people.http://xmlns.com/foaf/0.1/Person 

Given that this is optional, we will not provide any value in our simple POST body. We will include <foaf:contributor/> in the body of our test plan creation factory post.

Node a31 – template

Here’s the details of the node:

<rdf:Description rdf:nodeID="A31">
    <oslc:readOnly rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">false</oslc:readOnly>
    <oslc:valueType rdf:resource="http://open-services.net/ns/core#AnyResource"/>
    <oslc:name rdf:datatype="http://www.w3.org/2001/XMLSchema#string">template</oslc:name>
    <oslc:representation rdf:resource="http://open-services.net/ns/core#Reference"/>
    <oslc:occurs rdf:resource="http://open-services.net/ns/core#Zero-or-one"/>
    <dcterms:title rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Template</dcterms:title>
    <rdf:type rdf:resource="http://open-services.net/ns/core#Property"/>
    <oslc:isMemberProperty rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">false</oslc:isMemberProperty>
    <oslc:propertyDefinition rdf:resource="http://jazz.net/ns/qm/rqm#template"/>
    <dcterms:description rdf:datatype="http://www.w3.org/2001/XMLSchema#string">The artifact template used to specify the sections in the Test Plan.</dcterms:description>
    <oslc:hidden rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">false</oslc:hidden>
</rdf:Description>

The title and description is defined in dcterms: title = “Template” and description = “The artifact template used to specify the sections in the Test Plan.”

The rest of the values are <oslc:> values. The definition of each of these values is defined in the “rdf:data=“ tag. There are seven values in this nodes:

TagDefinitionValue
oslc:readOnlyIf true then the defined property cannot be directly written by clients, but may be updated indirectly by servers.FALSE
oslc:valueTypeA URI Reference representation to a resource.http://open-services.net/ns/core#AnyResource 
oslc:nameThe local name of the defined property.template
oslc:representationThe representation of the object resource must be present in the representation of the described resource.http://open-services.net/ns/core#Inline
oslc:occursThe number of times the defined property may occur. Values are defined in oslc:Cardinality.http://open-services.net/ns/core#Zero-or-many  
oslc:isMemberPropertyIf true then the described resource is a container and the defined property is used for container membership.FALSE
oslc:propertyDefinitionThe formal review records of the resource.http://jazz.net/ns/qm/rqm#template 
oslc:hiddenIndicates the resource of property should not be displayed to users.FALSE

Given that this is optional, we will not provide any value in our simple POST body. We will include <oslc:template/> in the body of our test plan creation factory post.

Node a32 – related change request

Here’s the details of the node:

<rdf:Description rdf:nodeID="A32">
    <jrs:inversePropertyLabel rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Related Test Plan</jrs:inversePropertyLabel>
    <oslc:readOnly rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">false</oslc:readOnly>
    <oslc:range rdf:resource="http://open-services.net/ns/cm#ChangeRequest"/>
    <oslc:occurs rdf:resource="http://open-services.net/ns/core#Zero-or-many"/>
    <oslc:representation rdf:resource="http://open-services.net/ns/core#Reference"/>
    <oslc:propertyDefinition rdf:resource="http://open-services.net/ns/qm#relatedChangeRequest"/>
    <oslc:isMemberProperty rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">false</oslc:isMemberProperty>
    <oslc:valueShape rdf:resource="http://open-services.net/ns/cm#ChangeRequest"/>
    <oslc:valueType rdf:resource="http://open-services.net/ns/core#Resource"/>
    <dcterms:description rdf:datatype="http://www.w3.org/2001/XMLSchema#string">A related change request. It is likely that the target resource will be an oslc_cm:ChangeRequest but that is not necessarily the case.</dcterms:description>
Label>
    <dcterms:title rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Related Change Request</dcterms:title>
    <oslc:hidden rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">false</oslc:hidden>
    <rdf:type rdf:resource="http://open-services.net/ns/core#Property"/>
    <oslc:name rdf:datatype="http://www.w3.org/2001/XMLSchema#string">relatedChangeRequest</oslc:name>
</rdf:Description>

The title and description is defined in dcterms: title = “Related Change Request” and description = “A related change request. It is likely that the target resource will be an oslc_cm:ChangeRequest but that is not necessarily the case.” The describes that a related Change Request which points to this Test Plan, will identify this plan as its “Related Test Plan”.

The rest of the values are <oslc:> values. The definition of each of these values is defined in the “rdf:data=“ tag. There are seven values in this nodes:

TagDefinitionValue
oslc:readOnlyIf true then the defined property cannot be directly written by clients, but may be updated indirectly by servers.FALSE
oslc:rangeThe value of the applicable property is constrained to be of type Change Request.http://open-services.net/ns/cm#ChangeRequest
oslc:occursThe number of times the defined property may occur. Values are defined in oslc:Cardinality.http://open-services.net/ns/core#Zero-or-many  
oslc:representationThe representation of the object resource must be present in the representation of the described resource.http://open-services.net/ns/core#Reference
oslc:propertyDefinitionThe again we see the property is an OSLC Change Requesthttp://open-services.net/ns/qm#relatedChangeRequest
oslc:isMemberPropertyIf true then the described resource is a container and the defined property is used for container membership.FALSE
oslc:valueShapeTthe constraint is that the value must be a valid OSLC:Change Request, if a value is providedhttp://open-services.net/ns/cm#ChangeRequest
oslc:valueTypeA URI Reference representation to a resource.http://open-services.net/ns/core#Resource
oslc:hiddenIndicates the resource of property should not be displayed to users.FALSE
oslc:nameThe local name of the defined property.relatedChangeRequest

Given that this is optional, we will not provide any value in our simple POST body. We will include <oslc:relatedChangeRequest/> in the body of our test plan creation factory post.

Node a35 – iteration

Here’s the details of the node:

<rdf:Description rdf:nodeID="A35">
    <rdf:type rdf:resource="http://open-services.net/ns/core#Property"/>
    <dcterms:title rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Iteration</dcterms:title>
    <oslc:readOnly rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">false</oslc:readOnly>
    <oslc:propertyDefinition rdf:resource="http://jazz.net/ns/process#iteration"/>
    <dcterms:description rdf:datatype="http://www.w3.org/2001/XMLSchema#string">The development iteration associated with the Test Plan.</dcterms:description>
    <oslc:hidden rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">false</oslc:hidden>
    <oslc:occurs rdf:resource="http://open-services.net/ns/core#Zero-or-one"/>
    <oslc:valueShape rdf:resource="http://jazz.net/ns/process/shapes/Iteration"/>
    <oslc:range rdf:resource="http://jazz.net/ns/process#Iteration"/>
    <oslc:representation rdf:resource="http://open-services.net/ns/core#Reference"/>
    <oslc:isMemberProperty rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">false</oslc:isMemberProperty>
    <oslc:valueType rdf:resource="http://open-services.net/ns/core#Resource"/>
    <oslc:name rdf:datatype="http://www.w3.org/2001/XMLSchema#string">iteration</oslc:name>
</rdf:Description>

The title and description is defined in dcterms: title = “iteration” and description = “Iteration.”

The rest of the values are <oslc:> values. The definition of each of these values is defined in the “rdf:data=“ tag. There are seven values in this nodes:

TagDefinitionValue
oslc:readOnlyIf true then the defined property cannot be directly written by clients, but may be updated indirectly by servers.FALSE
oslc:propertyDefinitionThe formal review records of the resource.http://jazz.net/ns/process#iteration
oslc:hiddenIndicates the resource of property should not be displayed to users.FALSE
oslc:occursOptional, single valuehttp://open-services.net/ns/core#Zero-or-one  
oslc:valueShapeThis will point to a resource shape for the value, as defined in the oslc:valueTypehttp://jazz.net/ns/process/shapes/Iteration
oslc:rangeThe value of the applicable property is constrained to be of type Iteration.http://jazz.net/ns/process#Iteration
oslc:representationThe representation of the object resource must be present in the representation of the described resource.http://open-services.net/ns/core#Reference
oslc:isMemberPropertyIf true then the described resource is a container and the defined property is used for container membership.FALSE
oslc:valueTypeA URI Reference representation to a resource.http://open-services.net/ns/core#Resource
oslc:nameThe local name of the defined property.iteration

Given that this is optional, we will not provide any value in our simple POST body. We will include <oslc:iteration/> in the body of our test plan creation factory post.

node a39 – test schedule

Here’s the details of the node:

<rdf:Description rdf:nodeID="A39">
    <oslc:valueShape rdf:resource="https://elmwb.com:9443/qm/oslc_qm/contexts/_OIbcAIkaEeynq4H4YH03kw/shape/resource/com.ibm.rqm.planning.VersionedTestPlan#TestPhase"/>
    <oslc:hidden rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">false</oslc:hidden>
    <oslc:representation rdf:resource="http://open-services.net/ns/core#Inline"/>
    <oslc:readOnly rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">false</oslc:readOnly>
    <oslc:propertyDefinition rdf:resource="http://jazz.net/ns/qm/rqm#testSchedule"/>
    <oslc:name rdf:datatype="http://www.w3.org/2001/XMLSchema#string">testSchedule</oslc:name>
    <rdf:type rdf:resource="http://open-services.net/ns/core#Property"/>
    <oslc:occurs rdf:resource="http://open-services.net/ns/core#Zero-or-many"/>
    <dcterms:description rdf:datatype="http://www.w3.org/2001/XMLSchema#string">The test schedule of the Test Plan.</dcterms:description>
    <oslc:isMemberProperty rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">false</oslc:isMemberProperty>
    <dcterms:title rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Test Schedule</dcterms:title>
    <oslc:range rdf:resource="http://jazz.net/ns/qm/rqm#TestPhase"/>
    <oslc:valueType rdf:resource="http://open-services.net/ns/core#AnyResource"/>
</rdf:Description>

The title and description is defined in dcterms: title = “Test Schedule” and description = “The test schedule of the Test Plan.”

The rest of the values are <oslc:> values. The definition of each of these values is defined in the “rdf:data=“ tag. There are seven values in this nodes:

TagDefinitionValue
oslc:valueShapeThis will point to a resource shape for the value, as defined in the oslc:valueTypehttps://elmwb.com:9443/qm/oslc_qm/contexts/_OIbcAIkaEeynq4H4YH03kw/shape/resource/com.ibm.rqm.planning.VersionedTestPlan#TestPhase 
oslc:hiddenIndicates the resource of property should not be displayed to users.FALSE
oslc:representationThe representation of the object resource must be present in the representation of the described resource.http://open-services.net/ns/core#Inline
oslc:readOnlyIf true then the defined property cannot be directly written by clients, but may be updated indirectly by servers.FALSE
oslc:propertyDefinitionThe test schedule of the resource.http://jazz.net/ns/qm/rqm#testSchedule
oslc:nameThe local name of the defined property.testSchedule
oslc:occursThe number of times the defined property may occur. Values are defined in oslc:Cardinality.http://open-services.net/ns/core#Zero-or-many  
oslc:isMemberPropertyIf true then the described resource is a container and the defined property is used for container membership.FALSE
oslc:rangeThe value of the applicable property is constrained to be of type Test Phase.http://jazz.net/ns/qm/rqm#TestPhase
oslc:valueTypeA URI Reference representation to a resource.http://open-services.net/ns/core#AnyResource 

Given that this is optional, we will not provide any value in our simple POST body. We will include <oslc:testSchedule/> in the body of our test plan creation factory post.

node a41 – team area

Here’s the details of the node:

<rdf:Description rdf:nodeID="A41">
    <oslc:propertyDefinition rdf:resource="http://jazz.net/ns/process#teamArea"/>
    <oslc:representation rdf:resource="http://open-services.net/ns/core#Reference"/>
    <oslc:isMemberProperty rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">false</oslc:isMemberProperty>
    <oslc:hidden rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">false</oslc:hidden>
    <oslc:valueType rdf:resource="http://open-services.net/ns/core#Resource"/>
    <oslc:range rdf:resource="http://jazz.net/ns/process#TeamArea"/>
    <rdf:type rdf:resource="http://open-services.net/ns/core#Property"/>
    <oslc:valueShape rdf:resource="http://jazz.net/ns/process/shapes/TeamArea"/>
    <oslc:occurs rdf:resource="http://open-services.net/ns/core#Zero-or-one"/>
    <oslc:readOnly rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">false</oslc:readOnly>
    <dcterms:title rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Team Area</dcterms:title>
    <oslc:name rdf:datatype="http://www.w3.org/2001/XMLSchema#string">teamArea</oslc:name>
    <dcterms:description rdf:datatype="http://www.w3.org/2001/XMLSchema#string">The team area that is responsible for the resource.</dcterms:description>
</rdf:Description>

The title and description is defined in dcterms: title = “Team Area” and description = “The team area that is responsible for the resource.”

The rest of the values are <oslc:> values. The definition of each of these values is defined in the “rdf:data=“ tag. There are seven values in this nodes:

TagDefinitionValue
oslc:propertyDefinitionThe Team Area responsible for the resource.http://jazz.net/ns/process#teamArea
oslc:representationThe representation of the object resource must be present in the representation of the described resource.http://open-services.net/ns/core#Reference
oslc:isMemberPropertyIf true then the described resource is a container and the defined property is used for container membership.FALSE
oslc:hiddenIndicates the resource of property should not be displayed to users.FALSE
oslc:valueTypeA URI Reference representation to a resource.http://open-services.net/ns/core#Resource
oslc:rangeThe value of the applicable property is constrained to be of type Team Area.http://jazz.net/ns/process#TeamArea
oslc:valueShapeThis will point to a resource shape for the value, as defined in the oslc:valueTypehttp://jazz.net/ns/process/shapes/TeamArea
oslc:occursOptional, single valuehttp://open-services.net/ns/core#Zero-or-one
oslc:readOnlyIf true then the defined property cannot be directly written by clients, but may be updated indirectly by servers.FALSE
oslc:nameThe local name of the defined property.teamArea

Given that this is optional, we will not provide any value in our simple POST body. We will include <oslc:teamArea/> in the body of our test plan creation factory post.

node a44 – has workflow state

Here’s the details of the node:

<rdf:Description rdf:nodeID="A44">
    <oslc:range rdf:resource="http://jazz.net/xmlns/prod/jazz/rqm/process/1.0/WorkflowState"/>
    <dcterms:title rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Has Workflow State</dcterms:title>
    <oslc:valueShape rdf:resource="http://jazz.net/xmlns/prod/jazz/rqm/process/1.0/WorkflowState"/>
    <oslc:propertyDefinition rdf:resource="http://jazz.net/xmlns/prod/jazz/rqm/process/1.0/hasWorkflowState"/>
    <oslc:representation rdf:resource="http://open-services.net/ns/core#Reference"/>
    <oslc:isMemberProperty rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">false</oslc:isMemberProperty>
    <oslc:defaultValue rdf:resource="https://elmwb.com:9443/qm/service/com.ibm.rqm.integration.service.IIntegrationService/process-info/_OIbcAIkaEeynq4H4YH03kw/workflowstate/com.ibm.rqm.process.testplan.workflow/com.ibm.rqm.planning.common.new"/>
    <oslc:allowedValue rdf:resource="https://elmwb.com:9443/qm/service/com.ibm.rqm.integration.service.IIntegrationService/process-info/_OIbcAIkaEeynq4H4YH03kw/workflowstate/com.ibm.rqm.process.testplan.workflow/com.ibm.rqm.planning.common.approved"/>
    <oslc:valueType rdf:resource="http://open-services.net/ns/core#Resource"/>
    <oslc:name rdf:datatype="http://www.w3.org/2001/XMLSchema#string">hasWorkflowState</oslc:name>
    <dcterms:description rdf:datatype="http://www.w3.org/2001/XMLSchema#string">The current workflow state of the resource.</dcterms:description>
    <oslc:allowedValue rdf:resource="https://elmwb.com:9443/qm/service/com.ibm.rqm.integration.service.IIntegrationService/process-info/_OIbcAIkaEeynq4H4YH03kw/workflowstate/com.ibm.rqm.process.testplan.workflow/com.ibm.rqm.planning.common.underreview"/>
    <rdf:type rdf:resource="http://open-services.net/ns/core#Property"/>
    <oslc:hidden rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">false</oslc:hidden>
    <oslc:occurs rdf:resource="http://open-services.net/ns/core#Zero-or-one"/>
    <oslc:readOnly rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">false</oslc:readOnly>
    <oslc:allowedValue rdf:resource="https://elmwb.com:9443/qm/service/com.ibm.rqm.integration.service.IIntegrationService/process-info/_OIbcAIkaEeynq4H4YH03kw/workflowstate/com.ibm.rqm.process.testplan.workflow/com.ibm.rqm.planning.common.retired"/>
    <oslc:allowedValue rdf:resource="https://elmwb.com:9443/qm/service/com.ibm.rqm.integration.service.IIntegrationService/process-info/_OIbcAIkaEeynq4H4YH03kw/workflowstate/com.ibm.rqm.process.testplan.workflow/com.ibm.rqm.planning.common.new"/>
</rdf:Description>

The title and description is defined in dcterms: title = “Has Workflow State” and description = “The current workflow state of the resource.” We see this resource shape has both a oslc:defaultValue, and a set of oslc:allowedValues. The oslc:defaultValue matches one of the many oslc:allowedValues.

The rest of the values are <oslc:> values. The definition of each of these values is defined in the “rdf:data=“ tag. There are seven values in this nodes:

TagDefinitionValue
oslc:rangeThe value of the applicable property is constrained to be of type Workflow State.http://jazz.net/xmlns/prod/jazz/rqm/process/1.0/WorkflowState
oslc:valueShapeThis will point to a resource shape for the value, as defined in the oslc:valueTypehttp://jazz.net/xmlns/prod/jazz/rqm/process/1.0/WorkflowState
oslc:propertyDefinitionThe workflow state of the resource.
http://jazz.net/xmlns/prod/jazz/rqm/process/1.0/hasWorkflowState
oslc:representationThe representation of the object resource must be present in the representation of the described resource.http://open-services.net/ns/core#Reference
oslc:isMemberPropertyIf true then the described resource is a container and the defined property is used for container membership.FALSE
oslc:defaultValueReference to the default value for this property.https://elmwb.com:9443/qm/service/com.ibm.rqm.integration.service.IIntegrationService/process-info/_OIbcAIkaEeynq4H4YH03kw/workflowstate/com.ibm.rqm.process.testplan.workflow/com.ibm.rqm.planning.common.new
oslc:valueTypeA URI Reference representation to a resource.http://open-services.net/ns/core#Resource
oslc:nameThe local name of the defined property.hasWorkflowState
oslc:hiddenIndicates the resource of property should not be displayed to users.FALSE
oslc:occursOptional, single valuehttp://open-services.net/ns/core#Zero-or-one
oslc:readOnlyIf true then the defined property cannot be directly written by clients, but may be updated indirectly by servers.FALSE

Given that this is optional, we will not provide any value in our simple POST body. We will include <oslc:hasWorkflowState/> in the body of our test plan creation factory post.

node a53 – Runs on test environment

Here’s the details of the node:

<rdf:Description rdf:nodeID="A53">
    <oslc:occurs rdf:resource="http://open-services.net/ns/core#Zero-or-many"/>
    <oslc:name rdf:datatype="http://www.w3.org/2001/XMLSchema#string">runsOnTestEnvironment</oslc:name>
    <oslc:hidden rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">false</oslc:hidden>
    <rdf:type rdf:resource="http://open-services.net/ns/core#Property"/>
    <dcterms:title rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Runs on Test Environment</dcterms:title>
    <oslc:readOnly rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">false</oslc:readOnly>
    <oslc:isMemberProperty rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">false</oslc:isMemberProperty>
    <oslc:propertyDefinition rdf:resource="http://open-services.net/ns/qm#runsOnTestEnvironment"/>
    <oslc:representation rdf:resource="http://open-services.net/ns/core#Reference"/>
    <oslc:range rdf:resource="http://jazz.net/ns/qm/rqm#TestEnvironment"/>
    <oslc:valueShape rdf:resource="https://elmwb.com:9443/qm/oslc_qm/contexts/_OIbcAIkaEeynq4H4YH03kw/shape/resource/com.ibm.rational.test.lm.AssetConfiguration"/>
    <oslc:valueType rdf:resource="http://open-services.net/ns/core#Resource"/>
    <dcterms:description rdf:datatype="http://www.w3.org/2001/XMLSchema#string">The test environment that the Test Plan will be run on.</dcterms:description>
</rdf:Description>

The title and description is defined in dcterms: title = “Runs on Test Environment” and description = “The test environment that the Test Plan will be run on.”

The rest of the values are <oslc:> values. The definition of each of these values is defined in the “rdf:data=“ tag. There are seven values in this nodes:

TagDefinitionValue
oslc:occursThe number of times the defined property may occur. Values are defined in oslc:Cardinality.http://open-services.net/ns/core#Zero-or-many  
oslc:nameThe local name of the defined property.runsOnTestEnvironment
oslc:hiddenIndicates the resource of property should not be displayed to users.FALSE
oslc:readOnlyIf true then the defined property cannot be directly written by clients, but may be updated indirectly by servers.FALSE
oslc:isMemberPropertyIf true then the described resource is a container and the defined property is used for container membership.FALSE
oslc:propertyDefinitionAn OSLC based QM property.http://open-services.net/ns/qm#runsOnTestEnvironment
oslc:representationThe representation of the object resource must be present in the representation of the described resource.http://open-services.net/ns/core#Reference
oslc:rangeThe value of the applicable property is constrained to be of type Test Environment.http://jazz.net/ns/qm/rqm#TestEnvironment
oslc:valueShapeThis will point to a resource shape for the value.https://elmwb.com:9443/qm/oslc_qm/contexts/_OIbcAIkaEeynq4H4YH03kw/shape/resource/com.ibm.rational.test.lm.AssetConfiguration
oslc:valueTypeA URI Reference representation to a resource.http://open-services.net/ns/core#Resource

Given that this is optional, we will not provide any value in our simple POST body. We will include <oslc:runsOnTestEnvironment/> in the body of our test plan creation factory post.

Node a54 – uses test case

Here’s the details of the node:

<rdf:Description rdf:nodeID="A54">
    <oslc:name rdf:datatype="http://www.w3.org/2001/XMLSchema#string">usesTestCase</oslc:name>
    <oslc:hidden rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">false</oslc:hidden>
    <oslc:representation rdf:resource="http://open-services.net/ns/core#Either"/>
    <oslc:isMemberProperty rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">false</oslc:isMemberProperty>
    <oslc:occurs rdf:resource="http://open-services.net/ns/core#Zero-or-many"/>
    <oslc:propertyDefinition rdf:resource="http://open-services.net/ns/qm#usesTestCase"/>
    <dcterms:description rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Test Case used by the Test Plan. It is likely that the target resource will be an oslc_qm:TestCase but that is not necessarily the case.</dcterms:description>
    <jrs:inversePropertyLabel rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Used By</jrs:inversePropertyLabel>
    <rdf:type rdf:resource="http://open-services.net/ns/core#Property"/>
    <oslc:readOnly rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">false</oslc:readOnly>
    <oslc:range rdf:resource="http://open-services.net/ns/qm#TestCase"/>
    <dcterms:title rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Uses Test Case</dcterms:title>
    <oslc:valueType rdf:resource="http://open-services.net/ns/core#Resource"/>
    <oslc:valueShape rdf:resource="https://elmwb.com:9443/qm/oslc_qm/contexts/_OIbcAIkaEeynq4H4YH03kw/shape/resource/com.ibm.rqm.planning.VersionedTestCase"/>
</rdf:Description>

The title and description is defined in dcterms: title = “Uses Test Case” and description = “Test Case used by the Test Plan. It is likely that the target resource will be an oslc_qm:TestCase but that is not necessarily the case.” We also see with a value of “Used By”. This implies that a test case which points to this Test Plan, will identify it is “Used By” this plan.

The rest of the values are <oslc:> values. The definition of each of these values is defined in the “rdf:data=“ tag. There are seven values in this nodes:

TagDefinitionValue
oslc:nameThe local name of the defined property.usesTestCase
oslc:hiddenIndicates the resource of property should not be displayed to users.FALSE
oslc:representationThe representation of the object resource must be present in the representation of the described resource.http://open-services.net/ns/core#Either
oslc:isMemberPropertyIf true then the described resource is a container and the defined property is used for container membership.FALSE
oslc:occursThe number of times the defined property may occur. Values are defined in oslc:Cardinality.http://open-services.net/ns/core#Zero-or-many  
oslc:propertyDefinitionAn OSLC defined QM usesTestCasehttp://open-services.net/ns/qm#usesTestCase
oslc:readOnlyIf true then the defined property cannot be directly written by clients, but may be updated indirectly by servers.FALSE
oslc:rangeThe value of the applicable property is constrained to be of type Test Case.http://open-services.net/ns/qm#TestCase
oslc:valueTypeA URI Reference representation to a resource.http://open-services.net/ns/core#Resource
oslc:valueShapeThis will point to a resource shape for the value, as defined in the oslc:valueTypehttps://elmwb.com:9443/qm/oslc_qm/contexts/_OIbcAIkaEeynq4H4YH03kw/shape/resource/com.ibm.rqm.planning.VersionedTestCase 

Given that this is optional, we will not provide any value in our simple POST body. We will include <oslc:usesTestCase/> in the body of our test plan creation factory post.

node a68 – key date

Here’s the details of the node:

<rdf:Description rdf:nodeID="A68">
    <rdf:type rdf:resource="http://open-services.net/ns/core#Property"/>
    <oslc:readOnly rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">false</oslc:readOnly>
    <dcterms:title rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Key Date</dcterms:title>
    <dcterms:description rdf:datatype="http://www.w3.org/2001/XMLSchema#string">The key date of the Test Plan.</dcterms:description>
    <oslc:range rdf:resource="http://jazz.net/ns/qm/rqm#KeyDate"/>
    <oslc:hidden rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">false</oslc:hidden>
    <oslc:occurs rdf:resource="http://open-services.net/ns/core#Zero-or-many"/>
    <oslc:propertyDefinition rdf:resource="http://jazz.net/ns/qm/rqm#keyDate"/>
    <oslc:name rdf:datatype="http://www.w3.org/2001/XMLSchema#string">keyDate</oslc:name>
    <oslc:valueType rdf:resource="http://open-services.net/ns/core#AnyResource"/>
    <oslc:isMemberProperty rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">false</oslc:isMemberProperty>
    <oslc:valueShape rdf:resource="https://elmwb.com:9443/qm/oslc_qm/contexts/_OIbcAIkaEeynq4H4YH03kw/shape/resource/com.ibm.rqm.planning.VersionedTestPlan#KeyDate"/>
    <oslc:representation rdf:resource="http://open-services.net/ns/core#Inline"/>
</rdf:Description>

The title and description is defined in dcterms: title = “Key Date” and description = “The key date of the Test Plan.”

The rest of the values are <oslc:> values. The definition of each of these values is defined in the “rdf:data=“ tag. There are seven values in this nodes:

TagDefinitionValue
oslc:readOnlyIf true then the defined property cannot be directly written by clients, but may be updated indirectly by servers.FALSE
oslc:rangeThe value of the applicable property is constrained to be of type QM Key Date.http://jazz.net/ns/qm/rqm#KeyDate
oslc:hiddenIndicates the resource of property should not be displayed to users.FALSE
oslc:occursOptional, multiple values.http://open-services.net/ns/core#Zero-or-many  
oslc:propertyDefinitionThe formal review records of the resource.http://jazz.net/ns/qm/rqm#keyDate
oslc:nameThe local name of the defined property.keyDate
oslc:valueTypeA URI Reference representation to a resource.http://open-services.net/ns/core#AnyResource
oslc:isMemberPropertyIf true then the described resource is a container and the defined property is used for container membership.FALSE
oslc:valueShapeThis will point to a resource shape for the value, as defined in the oslc:valueTypehttps://elmwb.com:9443/qm/oslc_qm/contexts/_OIbcAIkaEeynq4H4YH03kw/shape/resource/com.ibm.rqm.planning.VersionedTestPlan#KeyDate
oslc:representationThe representation of the object resource must be present in the representation of the described resource.http://open-services.net/ns/core#Inline

Given that this is optional, we will not provide any value in our simple POST body. We will include <oslc:keyDate/> in the body of our test plan creation factory post.

node a70 – tests development plan

Here’s the details of the node:

<rdf:Description rdf:nodeID="A70">
    <dcterms:title rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Tests Development Plan</dcterms:title>
    <rdf:type rdf:resource="http://open-services.net/ns/core#Property"/>
    <oslc:readOnly rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">false</oslc:readOnly>
    <oslc:propertyDefinition rdf:resource="http://jazz.net/xmlns/prod/jazz/calm/1.0/testsDevelopmentPlan"/>
    <oslc:representation rdf:resource="http://open-services.net/ns/core#Reference"/>
    <oslc:range rdf:resource="http://open-services.net/ns/cm-x#Plan"/>
    <oslc:valueType rdf:resource="http://open-services.net/ns/core#Resource"/>
    <oslc:hidden rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">false</oslc:hidden>
    <oslc:name rdf:datatype="http://www.w3.org/2001/XMLSchema#string">testsDevelopmentPlan</oslc:name>
    <oslc:valueShape rdf:resource="http://open-services.net/ns/cm-x#Plan"/>
    <oslc:isMemberProperty rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">false</oslc:isMemberProperty>
    <oslc:occurs rdf:resource="http://open-services.net/ns/core#Zero-or-many"/>
    <dcterms:description rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Development Plan tested by the Test Plan.</dcterms:description>
</rdf:Description>

The title and description is defined in dcterms: title = “Tests Development Plans” and description = “Development Plan tested by the Test Plan.”

The rest of the values are <oslc:> values. The definition of each of these values is defined in the “rdf:data=“ tag. There are seven values in this nodes:

TagDefinitionValue
oslc:readOnlyIf true then the defined property cannot be directly written by clients, but may be updated indirectly by servers.FALSE
oslc:propertyDefinitionA Jazz based ALM Development Plan.http://jazz.net/xmlns/prod/jazz/calm/1.0/testsDevelopmentPlan
oslc:representationThe representation of the object resource must be present in the representation of the described resource.http://open-services.net/ns/core#Reference
oslc:rangeThe value of the applicable property is constrained based on OSLC-CM plan object.http://open-services.net/ns/cm-x#Plan
oslc:valueTypeA URI Reference representation to a resource.http://open-services.net/ns/core#Resource
oslc:hiddenIndicates the resource of property should not be displayed to users.FALSE
oslc:nameThe local name of the defined property.testsDevelopmentPlan
oslc:valueShapeThis will point to a resource shape for the value, as defined in the oslc:valueTypehttp://open-services.net/ns/cm-x#Plan
oslc:isMemberPropertyIf true then the described resource is a container and the defined property is used for container membership.FALSE
oslc:occursThe number of times the defined property may occur. Values are defined in oslc:Cardinality.http://open-services.net/ns/core#Zero-or-many  

Given that this is optional, we will not provide any value in our simple POST body. We will include <oslc:testsDevelopmentPlan/> in the body of our test plan creation factory post.

node a71 – attachment

Here’s the details of the node:

<rdf:Description rdf:nodeID="A71">
    <dcterms:description rdf:datatype="http://www.w3.org/2001/XMLSchema#string">The file that has been attached to the Test Plan.</dcterms:description>
    <oslc:hidden rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">false</oslc:hidden>
    <oslc:occurs rdf:resource="http://open-services.net/ns/core#Zero-or-many"/>
    <oslc:readOnly rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">false</oslc:readOnly>
    <rdf:type rdf:resource="http://open-services.net/ns/core#Property"/>
    <dcterms:title rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Attachment</dcterms:title>
    <oslc:isMemberProperty rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">false</oslc:isMemberProperty>
    <oslc:representation rdf:resource="http://open-services.net/ns/core#Reference"/>
    <oslc:valueType rdf:resource="http://open-services.net/ns/core#AnyResource"/>
    <oslc:propertyDefinition rdf:resource="http://jazz.net/ns/qm/rqm#attachment"/>
    <oslc:name rdf:datatype="http://www.w3.org/2001/XMLSchema#string">attachment</oslc:name>
</rdf:Description>

The title and description is defined in dcterms: title = “Attachment” and description = “The file that has been attached to the Test Plan.”

The rest of the values are <oslc:> values. The definition of each of these values is defined in the “rdf:data=“ tag. There are seven values in this nodes:

TagDefinitionValue
oslc:hiddenIndicates the resource of property should not be displayed to users.FALSE
oslc:occursThe number of times the defined property may occur. Values are defined in oslc:Cardinality.http://open-services.net/ns/core#Zero-or-many  
oslc:readOnlyIf true then the defined property cannot be directly written by clients, but may be updated indirectly by servers.FALSE
oslc:isMemberPropertyIf true then the described resource is a container and the defined property is used for container membership.FALSE
oslc:representationThe representation of the object resource must be present in the representation of the described resource.http://open-services.net/ns/core#Reference 
oslc:valueTypeA URI Reference representation to a resource.http://open-services.net/ns/core#AnyResource
oslc:propertyDefinitionA Jazz QM Attachmenthttp://jazz.net/ns/qm/rqm#attachment
oslc:nameThe local name of the defined property.attachment

Given that this is optional, we will not provide any value in our simple POST body. We will include <oslc:attachment/> in the body of our test plan creation factory post.

node a73 – objective status group

Here’s the details of the node:

<rdf:Description rdf:nodeID="A73">
    <oslc:propertyDefinition rdf:resource="http://jazz.net/ns/qm/rqm#objectiveStatusGroup"/>
    <dcterms:title rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Objective Status Group</dcterms:title>
    <oslc:valueShape rdf:resource="https://elmwb.com:9443/qm/oslc_qm/contexts/_OIbcAIkaEeynq4H4YH03kw/shape/resource/com.ibm.rqm.planning.VersionedTestPlan#ObjectiveStatusGroup"/>
    <oslc:valueType rdf:resource="http://open-services.net/ns/core#AnyResource"/>
    <oslc:name rdf:datatype="http://www.w3.org/2001/XMLSchema#string">objectiveStatusGroup</oslc:name>
    <oslc:representation rdf:resource="http://open-services.net/ns/core#Inline"/>
    <oslc:isMemberProperty rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">false</oslc:isMemberProperty>
    <dcterms:description rdf:datatype="http://www.w3.org/2001/XMLSchema#string">The objective status group of the Test Plan.</dcterms:description>
    <oslc:hidden rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">false</oslc:hidden>
    <rdf:type rdf:resource="http://open-services.net/ns/core#Property"/>
    <oslc:readOnly rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">false</oslc:readOnly>
    <oslc:range rdf:resource="http://jazz.net/ns/qm/rqm#ObjectiveStatusGroup"/>
    <oslc:occurs rdf:resource="http://open-services.net/ns/core#Zero-or-many"/>
</rdf:Description>

The title and description is defined in dcterms: title = “Objective Status Group” and description = “The objective status group of the Test Plan.”

The rest of the values are <oslc:> values. The definition of each of these values is defined in the “rdf:data=“ tag. There are seven values in this nodes:

TagDefinitionValue
oslc:propertyDefinitionA Jazz QM object Status Grouphttp://jazz.net/ns/qm/rqm#objectiveStatusGroup
oslc:valueShapeThis will point to a resource shape for the value, as defined in the oslc:valueTypehttps://elmwb.com:9443/qm/oslc_qm/contexts/_OIbcAIkaEeynq4H4YH03kw/shape/resource/com.ibm.rqm.planning.VersionedTestPlan#ObjectiveStatusGroup
oslc:valueTypeA URI Reference representation to a resource.http://open-services.net/ns/core#AnyResource
oslc:nameThe local name of the defined property.objectiveStatusGroup
oslc:representationThe representation of the object resource must be present in the representation of the described resource.http://open-services.net/ns/core#Inline
oslc:isMemberPropertyIf true then the described resource is a container and the defined property is used for container membership.FALSE
oslc:hiddenIndicates the resource of property should not be displayed to users.FALSE
oslc:readOnlyIf true then the defined property cannot be directly written by clients, but may be updated indirectly by servers.FALSE
oslc:rangeThe value of the applicable property is constrained to be of type Objective Status Group.http://jazz.net/ns/qm/rqm#ObjectiveStatusGroup
oslc:occursAn optional, multiple valuehttp://open-services.net/ns/core#Zero-or-many  

Given that this is optional, we will not provide any value in our simple POST body. We will include <rqm_qm:objectiveStatusGroup/> in the body of our test plan creation factory post.

node A80 – risk

Here’s the details of the node:

<rdf:Description rdf:nodeID="A80">
    <oslc:valueType rdf:resource="http://open-services.net/ns/core#AnyResource"/>
    <oslc:hidden rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">false</oslc:hidden>
    <dcterms:title rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Risk</dcterms:title>
    <oslc:isMemberProperty rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">false</oslc:isMemberProperty>
    <oslc:range rdf:resource="http://jazz.net/ns/qm/rqm#Risk"/>
    <oslc:name rdf:datatype="http://www.w3.org/2001/XMLSchema#string">risk</oslc:name>
    <oslc:occurs rdf:resource="http://open-services.net/ns/core#Zero-or-many"/>
    <oslc:valueShape rdf:resource="https://elmwb.com:9443/qm/oslc_qm/contexts/_OIbcAIkaEeynq4H4YH03kw/shape/resource/com.ibm.rqm.planning.VersionedTestPlan#Risk"/>
    <oslc:representation rdf:resource="http://open-services.net/ns/core#Inline"/>
    <oslc:readOnly rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">false</oslc:readOnly>
    <oslc:propertyDefinition rdf:resource="http://jazz.net/ns/qm/rqm#risk"/>
    <rdf:type rdf:resource="http://open-services.net/ns/core#Property"/>
    <dcterms:description rdf:datatype="http://www.w3.org/2001/XMLSchema#string">A measurement of the risk associated with a planning effort for the resource.</dcterms:description>
</rdf:Description>

The title and description is defined in dcterms: title = “Risk” and description = “A measurement of the risk associated with a planning effort for the resource.”

The rest of the values are <oslc:> values. The definition of each of these values is defined in the “rdf:data=“ tag. There are seven values in this nodes:

TagDefinitionValue
oslc:valueTypeA URI Reference representation to a resource.http://open-services.net/ns/core#AnyResource
oslc:hiddenIndicates the resource of property should not be displayed to users.FALSE
oslc:isMemberPropertyIf true then the described resource is a container and the defined property is used for container membership.FALSE
oslc:rangeThe value of the applicable property is constrained to be of type Risk.http://jazz.net/ns/qm/rqm#Risk
oslc:nameThe local name of the defined property.risk
oslc:occursThe number of times the defined property may occur. Values are defined in oslc:Cardinality.http://open-services.net/ns/core#Zero-or-many  
oslc:valueShapeThis will point to a resource shape for the value, as defined in the oslc:valueTypehttps://elmwb.com:9443/qm/oslc_qm/contexts/_OIbcAIkaEeynq4H4YH03kw/shape/resource/com.ibm.rqm.planning.VersionedTestPlan#Risk
oslc:representationThe representation of the object resource must be present in the representation of the described resource.http://open-services.net/ns/core#Inline
oslc:readOnlyIf true then the defined property cannot be directly written by clients, but may be updated indirectly by servers.FALSE
oslc:propertyDefinitionA Jazz QM risk.http://jazz.net/ns/qm/rqm#risk

Given that this is optional, we will not provide any value in our simple POST body. We will include <oslc:risk/> in the body of our test plan creation factory post.

node a82 – contains test suite

Here’s the details of the node:

<rdf:Description rdf:nodeID="A82">
    <rdf:type rdf:resource="http://open-services.net/ns/core#Property"/>
    <oslc:representation rdf:resource="http://open-services.net/ns/core#Either"/>
    <oslc:isMemberProperty rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">false</oslc:isMemberProperty>
    <oslc:range rdf:resource="http://jazz.net/ns/qm/rqm#TestSuite"/>
    <oslc:valueType rdf:resource="http://open-services.net/ns/core#Resource"/>
    <oslc:propertyDefinition rdf:resource="http://jazz.net/ns/qm/rqm#containsTestSuite"/>
    <oslc:hidden rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">false</oslc:hidden>
    <dcterms:description rdf:datatype="http://www.w3.org/2001/XMLSchema#string">The test suite associated with the Test Plan.</dcterms:description>
    <dcterms:title rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Contains Test Suite</dcterms:title>
    <oslc:valueShape rdf:resource="https://elmwb.com:9443/qm/oslc_qm/contexts/_OIbcAIkaEeynq4H4YH03kw/shape/resource/com.ibm.rqm.planning.VersionedTestSuite"/>
    <oslc:readOnly rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">false</oslc:readOnly>
    <oslc:name rdf:datatype="http://www.w3.org/2001/XMLSchema#string">containsTestSuite</oslc:name>
    <oslc:occurs rdf:resource="http://open-services.net/ns/core#Zero-or-many"/>
</rdf:Description>

The title and description is defined in dcterms: title = “Contains Test Suite” and description = “The test suite associated with the Test Plan.”

The rest of the values are <oslc:> values. The definition of each of these values is defined in the “rdf:data=“ tag. There are seven values in this nodes:

TagDefinitionValue
oslc:representationThe representation of the object resource must be present in the representation of the described resource.http://open-services.net/ns/core#Either
oslc:isMemberPropertyIf true then the described resource is a container and the defined property is used for container membership.FALSE
oslc:rangeThe value of the applicable property is constrained to be of type Test Suite.http://jazz.net/ns/qm/rqm#TestSuite
oslc:valueTypeA URI Reference representation to a resource.http://open-services.net/ns/core#Resource
oslc:propertyDefinitionA Jazz QM Test Suitehttp://jazz.net/ns/qm/rqm#containsTestSuite
oslc:hiddenIndicates the resource of property should not be displayed to users.FALSE
oslc:valueShapeThis will point to a resource shape for the value, as defined in the oslc:valueTypehttps://elmwb.com:9443/qm/oslc_qm/contexts/_OIbcAIkaEeynq4H4YH03kw/shape/resource/com.ibm.rqm.planning.VersionedTestSuite
oslc:readOnlyIf true then the defined property cannot be directly written by clients, but may be updated indirectly by servers.FALSE
oslc:nameThe local name of the defined property.containsTestSuite
oslc:occursAn optional, multiple valuehttp://open-services.net/ns/core#Zero-or-many  

Given that this is optional, we will not provide any value in our simple POST body. We will include <rqm_qm:containsTestSuite/> in the body of our test plan creation factory post.

node a84 – execution effort

Here’s the details of the node:

    <rdf:Description rdf:nodeID="A84">
        <oslc:isMemberProperty rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">false</oslc:isMemberProperty>
        <oslc:hidden rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">false</oslc:hidden>
        <oslc:readOnly rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">false</oslc:readOnly>
        <oslc:name rdf:datatype="http://www.w3.org/2001/XMLSchema#string">executionEffort</oslc:name>
        <rdf:type rdf:resource="http://open-services.net/ns/core#Property"/>
        <oslc:occurs rdf:resource="http://open-services.net/ns/core#Zero-or-one"/>
        <oslc:valueType rdf:resource="http://www.w3.org/2001/XMLSchema#float"/>
        <oslc:propertyDefinition rdf:resource="http://jazz.net/ns/qm/rqm#executionEffort"/>
        <dcterms:title rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Execution Effort</dcterms:title>
        <dcterms:description rdf:datatype="http://www.w3.org/2001/XMLSchema#string">The execution effort that the Test Plan defined in person hour.</dcterms:description>
    </rdf:Description>

The title and description is defined in dcterms: title = “Execution Effort” and description = “The execution effort that the Test Plan defined in person hour.”

The rest of the values are <oslc:> values. The definition of each of these values is defined in the “rdf:data=“ tag. There are seven values in this nodes:

TagDefinitionValue
oslc:isMemberPropertyIf true then the described resource is a container and the defined property is used for container membership.FALSE
oslc:hiddenIndicates the resource of property should not be displayed to users.FALSE
oslc:readOnlyIf true then the defined property cannot be directly written by clients, but may be updated indirectly by servers.FALSE
oslc:nameThe local name of the defined property.executionEffort
oslc:occursAn optional, single valuehttp://open-services.net/ns/core#Zero-or-one
oslc:valueTypeA URI Reference representation to a resource.http://www.w3.org/2001/XMLSchema#float
oslc:propertyDefinitionThe formal review records of the resource.http://jazz.net/ns/qm/rqm#executionEffort

Given that this is optional, and we see it is defined as a float, we provide a value of 42.0 in our simple POST body. We will include <rqm_qm:executionEffort>42.0</rqm_qm:executionEffort> in the body of our test plan creation factory post.

node a90 – category:release

Here’s the details of the node:

<rdf:Description rdf:nodeID="A90">
    <oslc:range rdf:resource="http://jazz.net/ns/qm/rqm#CategoryResource"/>
    <oslc:hidden rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">false</oslc:hidden>
    <oslc:valueShape rdf:resource="https://elmwb.com:9443/qm/oslc_qm/contexts/_OIbcAIkaEeynq4H4YH03kw/shape/resource/com.ibm.rqm.planning.VersionedTestPlan#CategoryResource"/>
    <oslc:allowedValue rdf:resource="https://elmwb.com:9443/qm/service/com.ibm.rqm.integration.service.IIntegrationService/resources/JKE+Banking+%28Quality+Management%29/category/urn:com.ibm.rqm:category:_PMObVokaEeynq4H4YH03kw#"/>
    <oslc:allowedValue rdf:resource="https://elmwb.com:9443/qm/service/com.ibm.rqm.integration.service.IIntegrationService/resources/JKE+Banking+%28Quality+Management%29/category/urn:com.ibm.rqm:category:_PMQ3l4kaEeynq4H4YH03kw#"/>
    <dcterms:title rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Category: Release</dcterms:title>
    <rdf:type rdf:resource="http://open-services.net/ns/core#Property"/>
    <oslc:name rdf:datatype="http://www.w3.org/2001/XMLSchema#string">category_PML_F4kaEeynq4H4YH03kw</oslc:name>
    <oslc:readOnly rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">false</oslc:readOnly>
    <dcterms:description rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Defines an enumeration value associated with a test artifact.</dcterms:description>
    <oslc:allowedValue rdf:resource="https://elmwb.com:9443/qm/service/com.ibm.rqm.integration.service.IIntegrationService/resources/JKE+Banking+%28Quality+Management%29/category/urn:com.ibm.rqm:category:_PMQQgIkaEeynq4H4YH03kw#"/>
    <oslc:allowedValue rdf:resource="https://elmwb.com:9443/qm/service/com.ibm.rqm.integration.service.IIntegrationService/resources/JKE+Banking+%28Quality+Management%29/category/urn:com.ibm.rqm:category:_PMMmJ4kaEeynq4H4YH03kw#"/>
    <oslc:allowedValue rdf:resource="https://elmwb.com:9443/qm/service/com.ibm.rqm.integration.service.IIntegrationService/resources/JKE+Banking+%28Quality+Management%29/category/urn:com.ibm.rqm:category:_PMPCZokaEeynq4H4YH03kw#"/>
    <oslc:representation rdf:resource="http://open-services.net/ns/core#Inline"/>
    <oslc:isMemberProperty rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">false</oslc:isMemberProperty>
    <oslc:allowedValue rdf:resource="https://elmwb.com:9443/qm/service/com.ibm.rqm.integration.service.IIntegrationService/resources/JKE+Banking+%28Quality+Management%29/category/urn:com.ibm.rqm:category:_PMQQiIkaEeynq4H4YH03kw#"/>
    <oslc:propertyDefinition rdf:resource="http://jazz.net/ns/qm/rqm#category_PML_F4kaEeynq4H4YH03kw"/>
    <oslc:valueType rdf:resource="http://open-services.net/ns/core#AnyResource"/>
    <oslc:occurs rdf:resource="http://open-services.net/ns/core#Zero-or-many"/>
</rdf:Description>


The title and description is defined in dcterms: title = “Category: Release” and description = “Defines an enumeration value associated with a test artifact.” This shape also includes an enumeration of the allowed values in the <oslc:allowedValue> tags.

The rest of the values are values. The definition of each of these values is defined in the “rdf:data=“ tag. There are seven values in this nodes:

TagDefinitionValue
oslc:rangeThe value of the applicable property is constrained to be of type Category Resource.http://jazz.net/ns/qm/rqm#CategoryResource
oslc:hiddenIndicates the resource of property should not be displayed to users.FALSE
oslc:valueShapeThis will point to a resource shape for the value, as defined in the oslc:valueTypehttps://elmwb.com:9443/qm/oslc_qm/contexts/_OIbcAIkaEeynq4H4YH03kw/shape/resource/com.ibm.rqm.planning.VersionedTestPlan#CategoryResource
oslc:nameThe local name of the defined property.category_PML_F4kaEeynq4H4YH03kw
oslc:readOnlyIf true then the defined property cannot be directly written by clients, but may be updated indirectly by servers.FALSE
oslc:representationThe representation of the object resource must be present in the representation of the described resource.http://open-services.net/ns/core#Inline
oslc:isMemberPropertyIf true then the described resource is a container and the defined property is used for container membership.FALSE
oslc:propertyDefinitionA Jazz based category, type defined on the server.http://jazz.net/ns/qm/rqm#category_PML_F4kaEeynq4H4YH03kw
oslc:valueTypeA URI Reference representation to a resource.http://open-services.net/ns/core#AnyResource
oslc:occursThe number of times the defined property may occur. Values are defined in oslc:Cardinality.http://open-services.net/ns/core#Zero-or-many  

Given that this is optional, we will not provide any value in our simple POST body. We will include <oslc:category_PML_F4kaEeynq4H4YH03kw/> in the body of our test plan creation factory post.

node a117 – category: test phase

Here’s the details of the node:

<rdf:Description rdf:nodeID="A117">
    <oslc:allowedValue rdf:resource="https://elmwb.com:9443/qm/service/com.ibm.rqm.integration.service.IIntegrationService/resources/JKE+Banking+%28Quality+Management%29/category/urn:com.ibm.rqmy:category:_PMUh8IkaEeynq4H4YH03kw#"/>
    <oslc:representation rdf:resource="http://open-services.net/ns/core#Inline"/>
    <oslc:name rdf:datatype="http://www.w3.org/2001/XMLSchema#string">category_PMRep4kaEeynq4H4YH03kw</oslc:name>
    <rdf:type rdf:resource="http://open-services.net/ns/core#Property"/>
    <oslc:readOnly rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">false</oslc:readOnly>
    <oslc:allowedValue rdf:resource="https://elmwb.com:9443/qm/service/com.ibm.rqm.integration.service.IIntegrationService/resources/JKE+Banking+%28Quality+Management%29/category/urn:com.ibm.rqm:category:_PMSFtokaEeynq4H4YH03kw#"/>
    <oslc:allowedValue rdf:resource="https://elmwb.com:9443/qm/service/com.ibm.rqm.integration.service.IIntegrationService/resources/JKE+Banking+%28Quality+Management%29/category/urn:com.ibm.rqm:category:_PMVwEIkaEeynq4H4YH03kw#"/>
    <oslc:range rdf:resource="http://jazz.net/ns/qm/rqm#CategoryResource"/>
    <oslc:allowedValue rdf:resource="https://elmwb.com:9443/qm/service/com.ibm.rqm.integration.service.IIntegrationService/resources/JKE+Banking+%28Quality+Management%29/category/urn:com.ibm.rqm:category:_PMSsxokaEeynq4H4YH03kw#"/>
    <dcterms:title rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Category: Test Phase</dcterms:title>
    <oslc:hidden rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">false</oslc:hidden>
    <oslc:isMemberProperty rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">false</oslc:isMemberProperty>
    <oslc:valueShape rdf:resource="https://elmwb.com:9443/qm/oslc_qm/contexts/_OIbcAIkaEeynq4H4YH03kw/shape/resource/com.ibm.rqm.planning.VersionedTestPlan#CategoryResource"/>
    <oslc:valueType rdf:resource="http://open-services.net/ns/core#AnyResource"/>
    <oslc:propertyDefinition rdf:resource="http://jazz.net/ns/qm/rqm#category_PMRep4kaEeynq4H4YH03kw"/>
    <oslc:occurs rdf:resource="http://open-services.net/ns/core#Zero-or-many"/>
    <dcterms:description rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Defines an enumeration value associated with a test artifact.</dcterms:description>
</rdf:Description>

The title and description is defined in dcterms: title = “Category: Test Phase” and description = “Defines an enumeration value associated with a test artifact.” This shape also includes an enumeration of the allowed values in the <oslc:allowedValue> tags.

The rest of the values are <oslc:> values. The definition of each of these values is defined in the “rdf:data=“ tag. There are seven values in this nodes:

TagDefinitionValue
oslc:representationThe representation of the object resource must be present in the representation of the described resource.http://open-services.net/ns/core#Inline
oslc:nameThe local name of the defined property.category_PMRep4kaEeynq4H4YH03kw
oslc:readOnlyIf true then the defined property cannot be directly written by clients, but may be updated indirectly by servers.FALSE
oslc:rangeThe value of the applicable property is constrained to be of type Jazz QM Category Resource.http://jazz.net/ns/qm/rqm#CategoryResource
oslc:hiddenIndicates the resource of property should not be displayed to users.FALSE
oslc:isMemberPropertyIf true then the described resource is a container and the defined property is used for container membership.FALSE
oslc:valueShapeThis will point to a resource shape for the value, as defined in the oslc:valueTypehttps://elmwb.com:9443/qm/oslc_qm/contexts/_OIbcAIkaEeynq4H4YH03kw/shape/resource/com.ibm.rqm.planning.VersionedTestPlan#CategoryResource
oslc:valueTypeA URI Reference representation to a resource.http://open-services.net/ns/core#AnyResource
oslc:propertyDefinitionA Jazz QM server defined Category typehttp://jazz.net/ns/qm/rqm#category_PMRep4kaEeynq4H4YH03kw
oslc:occursThe number of times the defined property may occur. Values are defined in oslc:Cardinality.http://open-services.net/ns/core#Zero-or-many  

Given that this is optional, we will not provide any value in our simple POST body. We will include <rqm_qm:category_PMRep4kaEeynq4H4YH03kw/> in the body of our test plan creation factory post.

noe a136 – category:product

Here’s the details of the node:

<rdf:Description rdf:nodeID="A136">
    <dcterms:title rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Category: Product</dcterms:title>
    <oslc:representation rdf:resource="http://open-services.net/ns/core#Inline"/>
    <oslc:readOnly rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">false</oslc:readOnly>
    <oslc:name rdf:datatype="http://www.w3.org/2001/XMLSchema#string">category_PL_KwIkaEeynq4H4YH03kw</oslc:name>
    <rdf:type rdf:resource="http://open-services.net/ns/core#Property"/>
    <oslc:valueShape rdf:resource="https://elmwb.com:9443/qm/oslc_qm/contexts/_OIbcAIkaEeynq4H4YH03kw/shape/resource/com.ibm.rqm.planning.VersionedTestPlan#CategoryResource"/>
    <oslc:range rdf:resource="http://jazz.net/ns/qm/rqm#CategoryResource"/>
    <oslc:hidden rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">false</oslc:hidden>
    <oslc:allowedValue rdf:resource="https://elmwb.com:9443/qm/service/com.ibm.rqm.integration.service.IIntegrationService/resources/JKE+Banking+%28Quality+Management%29/category/urn:com.ibm.rqm:category:_PMLYBokaEeynq4H4YH03kw#"/>
    <oslc:isMemberProperty rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">false</oslc:isMemberProperty>
    <oslc:allowedValue rdf:resource="https://elmwb.com:9443/qm/service/com.ibm.rqm.integration.service.IIntegrationService/resources/JKE+Banking+%28Quality+Management%29/category/urn:com.ibm.rqm:category:_PMFRYIkaEeynq4H4YH03kw#"/>
    <oslc:valueType rdf:resource="http://open-services.net/ns/core#AnyResource"/>
    <oslc:occurs rdf:resource="http://open-services.net/ns/core#Zero-or-many"/>
    <oslc:propertyDefinition rdf:resource="http://jazz.net/ns/qm/rqm#category_PL_KwIkaEeynq4H4YH03kw"/>
    <dcterms:description rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Defines an enumeration value associated with a test artifact.</dcterms:description>
</rdf:Description>

The title and description is defined in dcterms: title = “Category: Product” and description = “Defines an enumeration value associated with a test artifact.” This shape also includes an enumeration of the allowed values in the tags.

The rest of the values are <oslc:> values. The definition of each of these values is defined in the “rdf:data=“ tag. There are seven values in this nodes:

TagDefinitionValue
oslc:representationThe representation of the object resource must be present in the representation of the described resource.http://open-services.net/ns/core#Inline
oslc:readOnlyIf true then the defined property cannot be directly written by clients, but may be updated indirectly by servers.FALSE
oslc:nameThe local name of the defined property.category_PL_KwIkaEeynq4H4YH03kw
oslc:valueShapeThis will point to a resource shape for the value, as defined in the oslc:valueTypehttps://elmwb.com:9443/qm/oslc_qm/contexts/_OIbcAIkaEeynq4H4YH03kw/shape/resource/com.ibm.rqm.planning.VersionedTestPlan#CategoryResource
oslc:rangeThe value of the applicable property is constrained to be of type Jazz AM Category Resource. http://jazz.net/ns/qm/rqm#CategoryResource
oslc:hiddenIndicates the resource of property should not be displayed to users.FALSE
oslc:isMemberPropertyIf true then the described resource is a container and the defined property is used for container membership.FALSE
oslc:valueTypeA URI Reference representation to a resource.http://open-services.net/ns/core#AnyResource
oslc:occursThe number of times the defined property may occur. Values are defined in oslc:Cardinality.http://open-services.net/ns/core#Zero-or-many  
oslc:propertyDefinitionA Jazz QM server defined Category typehttp://jazz.net/ns/qm/rqm#category_PL_KwIkaEeynq4H4YH03kw

Given that this is optional, we will not provide any value in our simple POST body. We will include <oslc:category_PL_KwIkaEeynq4H4YH03kw/> in the body of our test plan creation factory post.

node a139 – validates requirements collection

Here’s the details of the node:

<rdf:Description rdf:nodeID="A139">
    <oslc:hidden rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">false</oslc:hidden>
    <oslc:occurs rdf:resource="http://open-services.net/ns/core#Zero-or-many"/>
    <oslc:representation rdf:resource="http://open-services.net/ns/core#Reference"/>
    <dcterms:description rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Requirement Collection that is validated by the Test Plan. It is likely that the target resource will be an oslc_rm:RequirementCollection but that is not necessarily the case.</dcterms:description>
    <oslc:name rdf:datatype="http://www.w3.org/2001/XMLSchema#string">validatesRequirementCollection</oslc:name>
    <oslc:readOnly rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">false</oslc:readOnly>
    <rdf:type rdf:resource="http://open-services.net/ns/core#Property"/>
    <oslc:valueShape rdf:resource="http://open-services.net/ns/rm#RequirementCollection"/>
    <dcterms:title rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Validates Requirement Collection</dcterms:title>
    <oslc:propertyDefinition rdf:resource="http://open-services.net/ns/qm#validatesRequirementCollection"/>
    <oslc:isMemberProperty rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">false</oslc:isMemberProperty>
    <oslc:range rdf:resource="http://open-services.net/ns/rm#RequirementCollection"/>
    <oslc:valueType rdf:resource="http://open-services.net/ns/core#Resource"/>
</rdf:Description>

The title and description is defined in dcterms: title = “Validates Requirements Collection” and description = “Requirement Collection that is validated by the Test Plan. It is likely that the target resource will be an oslc_rm:RequirementCollection but that is not necessarily the case.”

The rest of the values are <oslc:> values. The definition of each of these values is defined in the “rdf:data=“ tag. There are seven values in this nodes:

TagDefinitionValue
oslc:hiddenIndicates the resource of property should not be displayed to users.FALSE
oslc:occursThe number of times the defined property may occur. Values are defined in oslc:Cardinality.http://open-services.net/ns/core#Zero-or-many  
oslc:representationThe representation of the object resource must be present in the representation of the described resource.http://open-services.net/ns/core#Reference
oslc:nameThe local name of the defined property.validatesRequirementCollection
oslc:readOnlyIf true then the defined property cannot be directly written by clients, but may be updated indirectly by servers.FALSE
oslc:valueShapeThis will point to a resource shape for the value, as defined in the oslc:valueTypehttp://open-services.net/ns/rm#RequirementCollection
oslc:propertyDefinitionThe formal review records of the resource.http://open-services.net/ns/qm#validatesRequirementCollection
oslc:isMemberPropertyIf true then the described resource is a container and the defined property is used for container membership.FALSE
oslc:rangeThe value of the applicable property is constrained to be of type Quality Approval.http://open-services.net/ns/rm#RequirementCollection
oslc:valueTypeA URI Reference representation to a resource.http://open-services.net/ns/core#Resource

Given that this is optional, we will not provide any value in our simple POST body. We will include <oslc_rm:RequirementsCollection/> in the body of our test plan creation factory post.

node a140 – description

Here’s the details of the node:

<rdf:Description rdf:nodeID="A140">
    <oslc:readOnly rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">false</oslc:readOnly>
    <dcterms:description rdf:datatype="http://www.w3.org/2001/XMLSchema#string">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 &lt;div&gt; element.</dcterms:description>
    <oslc:hidden rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">false</oslc:hidden>
    <oslc:name rdf:datatype="http://www.w3.org/2001/XMLSchema#string">description</oslc:name>
    <oslc:propertyDefinition rdf:resource="http://purl.org/dc/terms/description"/>
    <dcterms:title rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Description</dcterms:title>
    <oslc:isMemberProperty rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">false</oslc:isMemberProperty>
    <oslc:occurs rdf:resource="http://open-services.net/ns/core#Zero-or-one"/>
    <oslc:valueType rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral"/>
    <rdf:type rdf:resource="http://open-services.net/ns/core#Property"/>
</rdf:Description>

The title and description is defined in dcterms: title = “Description” and description = “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.”

The rest of the values are <oslc:> values. The definition of each of these values is defined in the “rdf:data=“ tag. There are seven values in this nodes:

TagDefinitionValue
oslc:readOnlyIf true then the defined property cannot be directly written by clients, but may be updated indirectly by servers.FALSE
oslc:hiddenIndicates the resource of property should not be displayed to users.FALSE
oslc:nameThe local name of the defined property.description
oslc:propertyDefinitionThe formal review records of the resource.http://purl.org/dc/terms/description
oslc:isMemberPropertyIf true then the described resource is a container and the defined property is used for container membership.FALSE
oslc:occursOptional single valuehttp://open-services.net/ns/core#Zero-or-one
oslc:valueTypeA URI Reference representation to a resource.http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral

We will include <dcterms:derscription>Test Plan created from API</dcterms:description> in the body of our test plan creation factory post.

node a141 – planning effort

Here’s the details of the node:

<rdf:Description rdf:nodeID="A141">
    <oslc:hidden rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">false</oslc:hidden>
    <dcterms:description rdf:datatype="http://www.w3.org/2001/XMLSchema#string">The planning effort that the Test Plan defined in person hour.</dcterms:description>
    <dcterms:title rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Planning Effort</dcterms:title>
    <oslc:isMemberProperty rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">false</oslc:isMemberProperty>
    <oslc:propertyDefinition rdf:resource="http://jazz.net/ns/qm/rqm#planningEffort"/>
    <oslc:occurs rdf:resource="http://open-services.net/ns/core#Zero-or-one"/>
    <rdf:type rdf:resource="http://open-services.net/ns/core#Property"/>
    <oslc:valueType rdf:resource="http://www.w3.org/2001/XMLSchema#float"/>
    <oslc:readOnly rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">false</oslc:readOnly>
    <oslc:name rdf:datatype="http://www.w3.org/2001/XMLSchema#string">planningEffort</oslc:name>
</rdf:Description>

The title and description is defined in dcterms: title = “Planning Effort” and description = “The planning effort that the Test Plan defined in person hour.”

The rest of the values are <oslc:> values. The definition of each of these values is defined in the “rdf:data=“ tag. There are seven values in this nodes:

TagDefinitionValue
oslc:hiddenIndicates the resource of property should not be displayed to users.FALSE
oslc:isMemberPropertyIf true then the described resource is a container and the defined property is used for container membership.FALSE
oslc:propertyDefinitionThe formal review records of the resource.http://jazz.net/ns/qm/rqm#planningEffort
oslc:occursThe number of times the defined property may occur. Values are defined in oslc:Cardinality.http://open-services.net/ns/core#Zero-or-many  
oslc:valueTypeA URI Reference representation to a resource.http://open-services.net/ns/core#Resource
oslc:readOnlyIf true then the defined property cannot be directly written by clients, but may be updated indirectly by servers.FALSE
oslc:nameThe local name of the defined property.planningEffort

We will include <rqm_qm:planningEffort>42.0</rqm_qm:planningEffort> in the body of our test plan creation factory post.

Putting it all together

Now that we’ve gone thru the resource shape and defined the body context, we should be able to create a new Automation Test Adapter. While we only have one mandatory property, Title, we can now populate a full POST body with all the values we’ve identified above.

curl --location -g --request POST '{{qm#TestPlan-factory-URL}}?oauth_consumer_key={{consumerKey}}&oauth_token={{oauthToken}}&oauth_signature_method=HMAC-SHA1&oauth_timestamp={{oauthTimeStamp}}&oauth_nonce={{oauthNonce}}&oauth_signature={{oauthSignature}}' \
--header 'Accept: application/rdf+xml' \
--header 'Referer: https://elmwb.com:9443/rm' \
--header 'Configuration-Context: https://elmwb.com:9443/rm/oslc_qm/contexts/{{ConfigurationContext}}' \
--header 'Content-Type: application/xml' \
--data-raw '<rdf:RDF 
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:dcterms="http://purl.org/dc/terms/" 
    xmlns:oslc_qm="http://open-services.net/ns/qm#"
    xmlns:oslc_rm="http://open-services.net/ns/rm#"
    xmlns:rqm_qm="http://jazz.net/ns/qm/rqm#"
    xmlns:foaf="http://xmlns.com/foaf/0.1/"
    xmlns:oslc="http://open-services.net/ns/core#"
    xmlns:process="http://jazz.net/ns/process#"
    xmlns:rqm_process="http://jazz.net/xmlns/prod/jazz/rqm/process/1.0/"
    xmlns:calm="http://jazz.net/xmlns/prod/jazz/calm/1.0/"
    >
    <oslc_qm:TestPlan>
        <dcterms:title>Test plan created from API</dcterms:title>
        <dcterms:description>Here'\''s a really long description that was created by typing a bunch of words.</dcterms:description>
        <oslc:formalReview/>
        <oslc:hasChildPlan/>
        <rqm_qm:catagory/>
        <oslc:hasPriority/>
        <foaf:contributor/>
        <oslc:template/>
        <oslc:relatedChangeRequest/>
        <process:iteration/>
        <oslc:testSchedule/>
        <process:teamArea/>
        <oslc:hasWorkflowState/>
        <oslc:runsOnTestEnvironment/>
        <oslc:usesTestCase/>
        <oslc:keyDate/>
        <oslc:testsDevelopmentPlan/>
        <oslc:attachment/>
        <rqm_qm:objectiveStatusGroup/>
        <oslc:risk/>
        <oslc:containsTestSuite/>
        <rqm_qm:executionEffort>42.0</rqm_qm:executionEffort>
        <oslc:category_PML_F4kaEeynq4H4YH03kw/>
        <oslc:category_PMRep4kaEeynq4H4YH03kw/>
        <oslc:category_PL_KwIkaEeynq4H4YH03kw/>
        <oslc_rm:validatesRequirementCollection/>
        <rqm_qm:planningEffort>42.0</rqm_qm:planningEffort>
    </oslc_qm:TestPlan>
</rdf:RDF>'

We’ve been able to identify the name space based on the , i.e. if we look at a property definition of “http://jazz.net/ns/qm/rqm#planningEffort” we see that the beginning of it, “http://jazz.net/ns/qm/rqm” matches the xmlns our resource shape of xmlns:rqm_qm. We can now use that as our name space for the property in the above POST.

In future posts, we will start digging thru some of the optional properties, and what other information is provided within the resource shape.