...
POST will receive a snapshot input JSON object and return a snapshot JSON object. Snapshot input JSON objects can have the following attributes:
Attributes | Type | Description |
---|
action | String | - createSnapshot
- promoteToRelease - one and only one snapshotVersionInputs should be provided
|
description | String | The description of the snapshot |
snapshotVersionInputs | List<SnapshotVersionInputPojo> | A list of project version to be built or associated with the snapshot. |
SnapshotVersionInput has following attributes:
...
Info |
---|
|
http://host:port/flexdeploy/rest/release/{releaseId}/snapshot |
Parameters
Attributes | Type | Required | Description |
---|
action | String | Yes | should be set to createSnapshot for this API. |
description | String | No | The description of the snapshot |
projectsList<Project>List<SnapshotVersionInputPojo> | No | A list of |
projects snapshot versions to be built or associated with |
the new snapshot. |
Parameters for each element of snapshotVersionInputs. If not supplied all projects configured in Release will be included. |
projectId | Long | Yes |
The id of the projectProject associated with release. |
packageName | String | Yes* | The name of the package (used for partial deployment projects only) associated with release. If Partial deployment project and packageName is not supplied it will be considered all files type version. |
projectVersionId | Long | No | The version id of the project. If project version is not supplied new build will be performed. |
buildEnvironmentId | Long | Yes** | The build environment associated with the project |
(used for projects with multiple build environments). If not supplied and only one environment found for build instance then it will be defaulted. |
forceBuild | Boolean | No | Whether or not the project should be force built. This will be overridden to true for partial deployment project. |
*only only if it's a partial deployment project
**only if the project has multiple build environments
Defaults
If some information is not included in the JSON object, the following default values will be used:
...
Example
If the POST request sent to http://host:port/flexdeploy/rest/release/12345/snapshot receives the following JSON environment object,
Code Block |
---|
theme | Eclipse |
---|
title | POST JSON |
---|
|
{
"action" : "createSnapshot"
"description": "example snapshot creation",
"projectssnapshotVersionInputs": [
{
"projectId": 10000,
"packageName": "package1",
"projectVersionId": 10001
},
{
"projectId": 10000,
"packageName": "package2",
"forceBuild": true
},
{
"projectId": 10002,
"buildEnvironmentId": 10003
} ]
} |
The following snapshot object will then be created in FlexDeploy:
Code Block |
---|
theme | Eclipse |
---|
title | POST JSON |
---|
|
{
"snapshotId": 10005,
"snapshotName": "07-09-2018 12:12:03",
"description": "example snapshot creation",
"snapshotStatus": "PENDING",
"projectssnapshotVersions": [
{
"projectId": 10000,
"packageName": "package1",
"projectVersionId": 10001,
"requestAllFiles": false,
"snapshotVersionStatus": "PENDING"
},
{
"projectId": 10000,
"packageName": "package2",
"projectVersionId": null,
"requestAllFiles": false,
"snapshotVersionStatus": "PENDING"
},
{
"projectId": 10002,
"packageName": null,
"projectVersionId": null,
"requestAllFiles": false,
"snapshotVersionStatus": "PENDING"
}]
} |
Back to Top
POST (promote to release)
...
Info |
---|
title | URL for promoting a project version to a release |
---|
|
http://host:port/flexdeploy/rest/release/{releaseId}/snapshot |
...
Parameters
Attributes | Type | Required | Description |
---|
projectIdURLString | Yes | should be set to promoteToRelease for this API. |
The id description | String | No | The description of the |
projectprojectVersionIdURLList<SnapshotVersionInputPojo> |
Yes | The id of the version of the project | releaseId | Integer | Yes | The id of the release |
description | String | No | The description of the snapshot that will be made |
packageName | String | Only for partial deployment projects | The name of the package of the partial deployment projectNo | A list containing only one project version to be associated with latest snapshot. |
Parameters for each element of snapshotVersionInputs. One and only one element is required for promote to release action. |
projectId | Long | Yes | Project associated with release. |
packageName | String | Yes* | The name of the package (used for partial deployment projects only) associated with release. If Partial deployment project and packageName is not supplied it will be considered all files type version. |
projectVersionId | Long | Yes | The version id of the project. If using packageName, version for package must be provided. |
Example
If the previous snapshot had the following attributes:
Code Block |
---|
theme | Eclipse |
---|
title | Current Snapshot DetailsJSON |
---|
|
{
"snapshotId": 10005,
"snapshotName": "07-09-2018 12:12:03",
"description": "Existing Snapshot",
"snapshotStatus": "CURRENTINITIATED",
"projectssnapshotVersions": [
{
"projectId": 10000,
"packageName": "package1",
"projectVersionId": 1010010001,
"requestAllFiles": false,
"snapshotVersionStatus": "EXISTING"
},
{
"projectId": 10000,
"packageName": "package2",
"projectVersionId": 10010null,
"requestAllFiles": false,
"snapshotVersionStatus": "EXISTING"
},
{
"projectId": 10002,
"packageName": null,
"projectVersionId": 10050null,
"requestAllFiles": false,
"snapshotVersionStatus": "EXISTING"
}]
} |
And a POST request was sent to http://host:port/flexdeploy/rest/project/promote/10000/11001 with the following JSON object input:
Code Block |
---|
theme | Eclipse |
---|
title | POST JSON |
---|
|
{
"action" : "promoteToRelease"
"description": "example snapshot creation",
"snapshotVersionInputs": [
{
"releaseIdprojectId": 1300010000,
"packageName": "package1",
"projectVersionId": 10025
} ]
} |
The following Snapshot JSON object will begin:
Code Block |
---|
theme | Eclipse |
---|
title | Response JSON |
---|
|
{
"snapshotId": 1201010025,
"snapshotName": "07-09-2018 12:1215:03",
"description": "example snapshot creation",
"snapshotStatus": "PENDINGINITIATED",
"projectssnapshotVersions": [
{
"projectId": 10000,
"packageName": "package1",
"projectVersionId": 1100110025,
"requestAllFiles": false,
"snapshotVersionStatus": "EXISTING"
},
{
"projectId": 10000,
"packageName": "package2",
"projectVersionId": 10010null,
"requestAllFiles": false,
"snapshotVersionStatus": "EXISTING"
},
{
"projectId": 10002,
"packageName": null,
"projectVersionId": 11001null,
"requestAllFiles": false,
"snapshotVersionStatus": "EXISTING"
}]
} |
Back to Top