This POST service will perform the same action found on the Deployment Request Form off the project screen. It will initiate a request to deploy the project specified with the project Id. The service will return workflow request. Workflow request id from return data can be used with Workflow Request API to determine when the execution is complete.
API URL
http://host:port/flexdeploy/rest/v1/project/{Id}/deploy
Request
Parameter | Required | Type | Description |
---|---|---|---|
environmentId | Y | Long | This is the environment id, not the environment name that is seen on most screens. |
instanceIds | N | Array of Long | The list of instances where the deployment will occur. Make sure to enter the instance id, not the instance name that is seen on most screens. If not provided, all deploy instances configured for Project will be used for deployment. |
projectId | Y | Long | The Id of the project to deploy. |
packageDetails | N* | Array of PackageInfo | This is required for partial deployments, but not for full deployments. Included to indicate what should be deployed in a partial deployment. See more info on PackageInfo below. |
forceDeploy | N | Boolean | Values are true or false. Indicates that the deployment should occur even when the projectVersionId is already deployed to that instance. Defaults to false. |
exceptionToWindow | N | Boolean | Values are true or false. Indicates that the deployment is an exception to the deployment window. Defaults to false. |
projectVersionId | N | Long | The id of the project version to be deployed. If not specified, the most recently built projectVersionId will be deployed. |
startTime | N | String | The time when the deployment will be started. Format should yyyy-MM-dd'T'HH:mm:ssXXX. For example, 2019-03-16T21:17:52-06:00 |
workflowVersionOverride | N | String | Optionally, the version of the workflow can be overridden. |
inputs | N | Array | See Common Parameters below. |
flexFields | N | Array | See Common Parameters below. |
changeTickets | N | Array of String | Ticket number for the given deployment, using the configured Change Management System. |
Input
This is a list of code/value pairs for the workflow inputs. Not all inputs need to be supplied. If an input has a default value that is acceptable for the workflow to run, it does not need to be supplied.
Attribute | Required | Type | Description |
---|---|---|---|
code | Y | String | The code of the input |
value | N | String | The value of the input |
FlexField
This is the list of the code/value pairs for the FlexFields (not the display name). Not all FlexFields need to be supplied. If a FlexFields has a default value or options that are acceptable for the workflow to run, it does not need to be changed.
Attribute | Required | Type | Description |
---|---|---|---|
code | Y | String | The code of the FlexField |
value | N | String | The value of the FlexField |
PackageInfo
Attribute | Required | Type | Description |
---|---|---|---|
packageName | N | String | The name of the package to deploy. If blank, all files will be assumed. |
priority | N | Integer | The priority of the package. If it is not indicated, then FlexDeploy will deploy the packages in the order they are provided in the JSON request. |
projectVersionId | Y* | Long | The id of the project version to deploy. This parameter is not required if useLatestPackageVersion is true. |
useLatestPackageVersion | N | Boolean | Uses the most recent package version. Defaults to false. |
Response
Attribute | Type | Description |
---|---|---|
warningMessage | String | Indicates any warning message in the event where the request was successful but no new deployment was initiated. For example: Project Version is already deployed and force deploy wasn't specified |
warningCode | String | Matching warning code for the warning message. |
workflowRequests | Array | Array of workflow request objects |
Response Codes
HTTP Code | Description |
---|---|
200 | Project version already deployed |
201 | Deploy request initiated successfully |
400 | Bad request |
401 | Unauthorized |
404 | Project not found |
500 | Unexpected internal server error |
Example Deploy Request
We can deploy a project with Id 10004 with the following request:
API URLs
http://host:port/flexdeploy/rest/v1/project/10004/deploy
{ "instanceIds":[100001], "environmentId":12345, "forceDeploy":"false", "inputs": [ { "code":"RESTART_SEVER", "value":"true" }, { "code":"COMMENT", "value":"Deploying from REST API" } ] }
In response, we will receive an array of workflowRequests:
{ "warningMessage": null, "warningCode": null, "workflowRequests": [ { "packageName": null, "folderName": "Human Resources", "releaseSnapshotId": null, "workflowRequestStatus": "READY", "folderId": 10001, "exceptionToWindow": false, "releaseDefinitionId": null, "cmsissues": "", "workflowRequestId": 12001, "projectName": "ProcessHRRequest", "projectStreamId": 10502, "projectVersionName": "1.0.8", "requestAllFiles": false, "projectVersionId": 29201, "environmentId": 11210, "folderRequestId": null, "flexFields": [], "folderPath": "FlexDeploy/Human Resources", "projectId": 10501, "requestedBy": "fdadmin", "requestedStartTime": null, "force": true, "stopOnPackageError": null, "workflowOverrideVersion": null, "folderVersionId": null } ] }