Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Project Streams can be accessed and modified through this API using four services: GET, POST, PUT, and PATCH. These four services allow for the retrievalretrieving, creationcreating, complete updatecompletely updating, and partial update of Project Streams. Include Pagepartially updating Project Streams, as well as populating files from a Project Stream.

Include Page
REST V1 Authentication
REST V1 Authentication

...

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:

Code Block
themeEclipse
titleProject Stream- 11101
{
   "description": "Stream DescriptinDescription",
   "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:

Code Block
themeEclipse
titleProject Stream GET Return JSON
{
   "description": "Stream DescriptinDescription",
   "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.

Info
titleAPI URLs

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}

...

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

Code Block
themeEclipse
titleProject 10002 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}10002/stream?streamName=Stream5,

The GET request would return the  following JSON Project Stream object:

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

POST

Create Stream

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

...

If the POST request receives the following JSON Project Stream object and the project id of 10237at the URL http://host:port/flexdeploy/rest/v1/project/10237/stream,

Code Block
themeEclipse
titlePOST JSON
{
      "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:

Code Block
themeEclipse
titleProject Stream Post Return JSON
{
      "description": "123",
      "streamName": "NewStream",
      "isActive": true,
      "streamId": 12723,
      "attribute2": "2",
      "versionSyntaxScript": "\"1.0.\" + SequenceNumber",
      "attribute3": "3",
      "attribute1": "1"
   }

Populate Files

Info

This POST service is available starting with version @5.2.0.1

This POST service will populate files from a given stream.

Info
titleAPI URL

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

Request

AttributeTypeRequiredDescription
projectIdURLYesThe project where files are being populated
streamIdURLYesThe stream to populate files from
sortAllAfterPopulateBooleanNoWhether files should be sorted after populating. Defaults to false

Response

A list of project files are returned. Each project files contains the following:

AttributeTypeDescription
pathStringFull path, including file name
objectTypeStringType of file
sequenceNumberIntegerOrdering of file in regards to all files of the same type
sourceStringWhere the file was sourced from. All files populated with API will be listed as sourced from SCM

Response Codes

HTTP Code
Description
201Files were populated
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 we ran a POST request at the following URL:

http://host:port/flexdeploy/rest/v1/project/25262/stream/12321/populate

with the following request JSON:

Code Block
themeEclipse
titleProject Stream POST Request JSON
{
      "sortAllAfterPopulate": false
}

The POST request would then populate files from the Project Stream with Id 12321, automatically saving the populated files, and return the following project files:

Code Block
titleProject Stream POST Return JSON
[
	{
        "path": "/insert.sql",
        "source": "SCM",
        "sequenceNumber": 1,
        "objectType": "DB_OBJECT"
    },
    {
        "path": "/vjdbcdemo.sql",
        "source": "SCM",
        "sequenceNumber": 2,
        "objectType": "DB_OBJECT"
    },
    {
        "path": "/datafix/dataFix1972.xml",
        "source": "SCM",
        "sequenceNumber": 1,
        "objectType": "DATA_FIX"
    },
    {
        "path": "/datafix/dataFix4839.xml",
        "source": "SCM",
        "sequenceNumber": 2,
        "objectType": "DATA_FIX"
    },
    {
        "path": "/info.txt",
        "source": "SCM",
        "sequenceNumber": 1,
        "attribute1objectType": "1OTHER"
    }
]

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.

Info
titleAPI URL

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

Include Page
REST V1 Project Stream Response
REST V1 Project Stream Response

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:

Code Block
themeEclipse
titleProject Stream PUT JSON
{
      "description": "123",
      "streamName": "NewStream",
      "isActive": true,
      "streamId": 12321,
      "attribute2": "2",
      "versionSyntaxScript": "\"1.0.\" + SequenceNumber",
      "attribute3": "3",
      "attribute1": "1"
   }

...

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

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

...

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

Code Block
themeEclipse
titleProject Stream PUT Return JSON
{
      "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.

Info
titleAPI URL

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. This attribute will not cause an error if it is passed, but the stream id won't be changed.
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

Include Page
REST V1 Project Stream Response
REST V1 Project Stream Response

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 which had the following attributes

Code Block
themeEclipse
titleEnvironment PATCH JSON
{
      "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}25262/stream/12723

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

Code Block
themeEclipse
titleProject Stream PATCH Receive JSON
{
      "description": "Patch Description",
      "streamName": "PatchStream"
      "
   }

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

Code Block
themeEclipse
titleProject Stream PATCH Return JSON
{
      "description": "Patch Description",
      "streamName": "PatchStream",
      "isActive": true,
      "streamId": 12723,
      "attribute2": "2",
      "versionSyntaxScript": "\"1.0.\" + SequenceNumber",
      "attribute3": "3",
      "attribute1": "1"
   }