Project Streams can be accessed and modified through this API using four services: GET, POST, PUT, and PATCH. These four services allow for the retrieval, creation, complete update, and partial update of Project Streams.

GET

There are two implementations of GET. One will find a Project Stream with the given Id and return the JSON representation of the Project Stream. The other will find a list of Project Streams matching the query parameters supplied to it.

GET by ID

This GET service will find a Project Stream with the given Id and return the JSON representation of the object. 

http://host:port/flexdeploy/rest/v1/project/{projectid}/stream/{streamid}

Request

Parameter
Type
Required
Description

projectid

URLYesThis is a URL parameter for the Project Id which is searched to find and return a Stream
streamidURLYesThis is a URL parameter for the Project Stream Id which will be returned from the corresponding Project

Response Codes

HTTP Code
Description
200Project Stream was found and returned
400Bad request
401Authentication failure
403Authorization failure (no access to resource)
404Project or Stream not found
500Unexpected internal server error

Example

If we had a Project Stream in our database with an Id of 11101 belonging to a project with an Id of 10002 and the following attributes

{
   "description": "Stream Descriptin",
   "isActive": true,
   "streamName": "FirstStream",
   "versionSyntaxScript": "\"1.0.\" + SequenceNumber",
   "attribute3": "three",
   "attribute2": "two",
   "attribute1": "one",
   "streamId": 11101
}

When we run a GET request at the following URL

http://host:port/flexdeploy/rest/v1/project/10002/stream/11101

The GET request would return the following JSON Project Stream object

{
   "description": "Stream Descriptin",
   "isActive": true,
   "streamName": "FirstStream",
   "versionSyntaxScript": "\"1.0.\" + SequenceNumber",
   "attribute3": "three",
   "attribute2": "two",
   "attribute1": "one",
   "streamId": 11101
}

GET (Using Query Parameters)

This GET service will return a list of Project Streams from the specified project in the form of JSON objects based on the query parameter streamname. Project Streams are only returned if they match all of the specified query parameters and belong to the corresponding Project. If no query parameters are given this request will return the entire list of Streams within the specified Project.

http://host:port/flexdeploy/rest/v1/project/{projectid}/stream?

Append the following character sequences to the above URL to specify Query parameters.

Use '&' between successive query parameters: 

streamName={streamName}

Examples:

To search by code only:

http://host:port/flexdeploy/rest/v1/project/{projectid}/stream?streamName={name}


The query parameters are not case sensitive. Searching by name=NAME is the same as searching by name=name.

Request

Parameter
Type
Required
Description
projectIdURLYesThis is a URL path parameter for the Project Id which specifies the project which will be queried for Streams.
streamNameQuery - StringNoContains ignore case search for stream name

Response Codes

HTTP Code
Description
200Search successful and results returned
400Bad request
401Authentication failure
403Authorization failure (no access to resource)
404Project not found
500Unexpected internal server error

Example

If we had a Project (10002) with the following streams

[
      {
      "description": "PUTted",
      "streamName": "PATCHStream1",
      "isActive": true,
      "streamId": 10003,
      "attribute2": "two",
      "versionSyntaxScript": "\"1.0.\" + SequenceNumber",
      "attribute3": "three",
      "attribute1": "PATCHoneStotle"
   },
      {
      "description": "123",
      "streamName": "PostStream1",
      "isActive": true,
      "streamId": 10201,
      "attribute2": "2",
      "versionSyntaxScript": "\"1.0.\" + SequenceNumber",
      "attribute3": "3",
      "attribute1": "1"
   },
      {
      "description": "123",
      "streamName": "Stream2",
      "isActive": true,
      "streamId": 10004,
      "attribute2": "2",
      "versionSyntaxScript": "\"1.0.\" + SequenceNumber",
      "attribute3": "3",
      "attribute1": "1"
   },
      {
      "description": "123",
      "streamName": "Stream4",
      "isActive": true,
      "streamId": 10101,
      "attribute2": "2",
      "versionSyntaxScript": "\"1.0.\" + SequenceNumber",
      "attribute3": "3",
      "attribute1": "1"
   },
      {
      "description": "123",
      "streamName": "Stream5",
      "isActive": true,
      "streamId": 10102,
      "attribute2": "2",
      "versionSyntaxScript": "\"1.0.\" + SequenceNumber",
      "attribute3": "3",
      "attribute1": "1"
   }
]

When we run a GET request at the following URL

http://host:port/flexdeploy/rest/v1/project/{projectid}/stream?streamName=Stream5

The GET request would return the  following JSON Project Stream object

{
      "description": "123",
      "streamName": "Stream5",
      "isActive": true,
      "streamId": 10102,
      "attribute2": "2",
      "versionSyntaxScript": "\"1.0.\" + SequenceNumber",
      "attribute3": "3",
      "attribute1": "1"
   }

POST

This POST service will create a new Project Stream with the same attributes as the given JSON object.

http://host:port/flexdeploy/rest/v1/project/{projectid}/stream

Request

AttributesTypeRequiredDescription
descriptionStringNoThis is a description of the Project Stream
isActiveBooleanNoThis is a Boolean that tracks whether or not the Project Stream is active. If 'null' isActive defaults to 'true'
attribute1StringNoThis is the first attribute of the Project Stream
attribute2StringNoThis is the second attribute of the Project Stream
attribute3StringNoThis is the third attribute of the Project Stream
versionSyntaxScriptStringYesThis is the version syntax script of the Project Stream
streamNameStringYesThis is the unique name of the Project Stream
projectIdURLYesThis is the Id of the project to add a new Stream to

Response Codes

HTTP Code
Description
201Project Stream was created successfully
400Bad request
401Authentication failure
403Authorization failure (no access to resource)
404Project not found
500Unexpected internal server error

Example

If the POST request receives the following JSON Project Stream object and the project id of 10237

{
      "description": "123",
      "streamName": "NewStream",
      "isActive": true,
      "attribute2": "2",
      "versionSyntaxScript": "\"1.0.\" + SequenceNumber",
      "attribute3": "3",
      "attribute1": "1"
}

The following Project Stream object will then be created as a new Stream for Project 10237

{
      "description": "123",
      "streamName": "NewStream",
      "isActive": true,
      "streamId": 12723,
      "attribute2": "2",
      "versionSyntaxScript": "\"1.0.\" + SequenceNumber",
      "attribute3": "3",
      "attribute1": "1"
   }

PUT

This PUT service will update all attributes of a Project Stream with the given Ids based on the attributes of a JSON object parameters.

http://host:port/flexdeploy/rest/v1/project/{projectid}/stream/{streamid}

Request

AttributesTypeRequiredDescription
descriptionStringNoThis is a description of the Project Stream
isActiveBooleanNoThis is a Boolean that tracks whether or not the Project Stream is active. If 'null' isActive defaults to 'true'
attribute1StringNoThis is the first attribute of the Project Stream
attribute2StringNoThis is the second attribute of the Project Stream
attribute3StringNoThis is the third attribute of the Project Stream
versionSyntaxScriptStringNoThis is the version syntax script of the Project Stream
streamIdLongNoThis is the Id of the Project Stream, can pass, but will not change the id of the stream
streamNameStringNoThis is the unique name of the Project Stream
projectIdURLYesThis is the Id of the project to find the stream
streamidURLYesThis is the Id of the stream which will be updated

Response Codes

HTTP Code
Description
200Project Stream was found and updated
400Bad request
401Authentication failure
403Authorization failure (no access to resource)
404Project or Stream not found
500Unexpected internal server error

Example

If we had an Project Stream in our database with a Project Id of 25262, Stream Id of 12321 and the following attributes

{
      "description": "123",
      "streamName": "NewStream",
      "isActive": true,
      "streamId": 12321,
      "attribute2": "2",
      "versionSyntaxScript": "\"1.0.\" + SequenceNumber",
      "attribute3": "3",
      "attribute1": "1"
   }

When we run a PUT request at the following URL

http://host:port/flexdeploy/rest/v1/project/{projectid}/stream/{streamid}

And the PUT request receives the following JSON Project Stream object,

{
      "description": "UpdateDescription",
      "streamName": "UpdatedStream",
      "isActive": true,
      "streamId": 12723,
      "attribute2": null,
      "versionSyntaxScript": "\"1.0.\" + SequenceNumber",
      "attribute3": null,
      "attribute1": "1"
   }


The PUT request would then update the Project Stream with Id 11101 and return the  following JSON Project Stream object

{
      "description": "UpdateDescription",
      "streamName": "UpdatedStream",
      "isActive": true,
      "streamId": 12321,
      "attribute2": null,
      "versionSyntaxScript": "\"1.0.\" + SequenceNumber",
      "attribute3": null,
      "attribute1": "1"
   }

PATCH

This PATCH service will update an existing Project Stream with the information passed through a JSON object. If an attribute of the JSON is null it will not be updated in the Project Stream.

http://host:port/flexdeploy/rest/v1/project/{projectid}/stream/{streamid}

Request

AttributesTypeRequiredDescription
descriptionStringNoThis is a description of the Project Stream
isActiveBooleanNoThis is a Boolean that tracks whether or not the Project Stream is active. If 'null' isActive defaults to 'true'
attribute1StringNoThis is the first attribute of the Project Stream
attribute2StringNoThis is the second attribute of the Project Stream
attribute3StringNoThis is the third attribute of the Project Stream
versionSyntaxScriptStringNoThis is the version syntax script of the Project Stream
streamIdLongNoThis is the unique Id of the Project Stream
streamNameStringNoThis is the unique name of the Project Stream
projectIdURLYesThis is the Id of the project to find the stream to update
streamidURL YesThis is the Id of the stream that is being updated

Response Codes

HTTP Code
Description
200Project Stream was found and patched
400Bad request
401Authentication failure
403Authorization failure (no access to resource)
404

Project or Stream not found

500Unexpected internal server error

Example

If we had an Project Stream in our database with an Id of 12723 and had the following attributes

{
      "description": "123",
      "streamName": "NewStream",
      "isActive": true,
      "streamId": 12723,
      "attribute2": "2",
      "versionSyntaxScript": "\"1.0.\" + SequenceNumber",
      "attribute3": "3",
      "attribute1": "1"
   }

When we run a PATCH request at the following URL

http://host:port/flexdeploy/rest/v1/project/{projectid}/stream/12723

And the PATCH request receives the following JSON Project Stream object,

{
      "description": "Patch Description",
      "streamName": "PatchStream"
      "
   }

The PATCH request would then update the Project Stream with Id 12723 and return the  following JSON Project Stream object

{
      "description": "Patch Description",
      "streamName": "PatchStream",
      "isActive": true,
      "streamId": 12723,
      "attribute2": "2",
      "versionSyntaxScript": "\"1.0.\" + SequenceNumber",
      "attribute3": "3",
      "attribute1": "1"
   }