SCM Instances 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 SCM Instances.
Currently there are 8 different source control management types that are supported in Flex Deploy. The scmType value is shown after the name of each.
Property Display Name | Property Key Name | Data Type | Required | Description |
---|---|---|---|---|
ClearCaseUCM URL | FDCCUCM_URL | String | Yes | URL of the ClearCase Server. |
ClearCaseUCM User | FDCCUCM_USER | String | Yes | ClearCase User to connect with. |
ClearCaseUCM Password | FDCCUCM_PASSWORD | String | Yes | ClearCase Password for connecting user. |
Property Display Name | Property Key Name | Data Type | Required | Description |
---|---|---|---|---|
CVS URL | FDCVS_URL | String | Yes | URL to the CVS repository. |
CVS User | FDCVS_PASSWORD | String | Yes | CVS repository user. |
CVS Password | FDCVS_USER | String | Yes | CVS repository password. |
Property Name | Property Key Name | Data Type | Required | Description |
---|---|---|---|---|
File Repository Root | FDFILE_REPO_ROOT_FOLDER | String | Yes | Location on the FlexDeploy server of the repository. |
Property Display Name | Property Key Name | Data Type | Required | Description |
---|---|---|---|---|
Git URL | FDGIT_URL | String | Yes | URL to the Git repository. |
Git User | FDGIT_USER | String | Yes/No | Git repository user. |
Git Password | FDGIT_PASSWORD | String | Yes/no | Git repository password. |
Git Timeout | FDGIT_TIMEOUT | Integer | No | Timeout for Git command execution. |
Property Display Name | Property Key Name | Data Type | Required | Description |
---|---|---|---|---|
Perforce Host | FDPERF_HOST | String | Yes | Host of the Perforce repository. |
Perforce Port | FDPERF_PORT | String | Yes | Port of the Perforce repository. |
Perforce User | FDPERF_USER | String | Yes | Perforce User to connect with. |
Perforce User Password | FDPERF_PASSWORD | String | Yes | Perforce Password associated with Perforce User. |
Perforce SSL Connection | FDPERF_IS_SSL | Boolean | Yes | Should ssl be used connecting to the server. |
Property Display Name | Property Key Name | Data Type | Required | Description |
---|---|---|---|---|
PVCS Project Database | FDPVCS_PROJECT_DATABASE | String | Yes | Project Database Name. |
PVCS User | FDPVCS_USER | String | Yes | PVCS user to access ProjectDatabases. |
PVCS Password | FDPVCS_PASSWORD | String | Yes | PVCS password to access ProjectDatabases |
Property Display Name | Property Key Name | Data Type | Required | Description |
---|---|---|---|---|
Subversion URL | FDSVN_URL | String | Yes | URL to the Subversion repository. |
Subversion User | FDSVN_USER | String | Yes | Subversion repository user. |
Subversion Password | FDSVN_PASSWORD | String | Yes | Subversion repository password. |
Subversion Authentication Methods | FDSVN_AUTH_METHODS | String | No | One or more subversion authentication methods. For example, Basic, Digest, Negotiate, NTLM. |
Property Display Name | Property Key Name | Data Type | Required | Description |
---|---|---|---|---|
TFVC URL | FDTFVC_URL | String | Yes | URL to the TFVC repository. |
TFVC User | FDTFVC_USER | String | Yes | TFVC repository user. |
TFVC Password | FDTFVC_USER | String | Yes | TFVC repository password. |
There are two implementations of GET. One will find a SCM instance with the given Id and return the JSON representation of the SCM instance. The other will find a list of SCM instances matching the parameters supplied to it.
This GET service will find a SCM instance with the given Id and return the JSON representation of the object.
http://host:port/flexdeploy/rest/v1/topology/integrations/scminstance/{Id} |
Parameter | Required | Type | Description |
---|---|---|---|
Id | Yes | URL | This is a URL parameter for the Id which is used to find and return a SCM instance with. |
HTTP Code | Description |
---|---|
200 | SCM instance was found and returned |
400 | Bad request |
401 | Authentication failure |
403 | Authorization failure (no access to resource) |
404 | SCM instance not found |
500 | Unexpected internal server error |
If we had a SCM instance in our database with an Id of 11101 and had the following attributes
{ "instanceId": 11101, "instanceName": "ScmName1", "properties": [ { "propertyName": "FDGIT_URL", "propertyValue": "url" }, { "propertyName": "FDGIT_USER", "propertyValue": "user" }, { "propertyName": "FDGIT_PASSWORD", "propertyValue": "password" }, { "propertyName": "FDGIT_TIMEOUT", "propertyValue": "10000" } ], "scmType": "GIT", "description": "description", "instanceCode": "CODE1", "isActive": true } |
When we run a GET request at the following URL
http://host:port/flexdeploy/rest/v1/topology/integrations/scminstance/11101
The GET request would return the following JSON SCM instance object
{ "instanceId": 11101, "instanceName": "ScmName1", "properties": [ { "propertyName": "FDGIT_URL", "propertyValue": "url" }, { "propertyName": "FDGIT_USER", "propertyValue": "user" }, { "propertyName": "FDGIT_PASSWORD", "propertyValue": "password" }, { "propertyName": "FDGIT_TIMEOUT", "propertyValue": "10000" } ], "scmType": "GIT", "description": "description", "instanceCode": "CODE1", "isActive": true } |
This GET service will find a SCM instance by querying based on a name, code, and/or type of the SCM and return the JSON representations of the objects. If no query parameters are given this request will return the entire list of SCM instances.
http://host:port/flexdeploy/rest/v1/topology/integrations/scminstance? Append the following character sequences to the above URL to specify Query parameters.Use '&' between successive query parameters:instanceName={name} instanceCode={code} scmType={type} Examples:To search by code only:http://host:port/flexdeploy/rest/v1/topology/integrations/scminstance?instanceCode={code} To search by name only:http://host:port/flexdeploy/rest/v1/topology/integrations/scminstance?instanceName={name} To search by type and name:http://host:port/flexdeploy/rest/v1/topology/scminstance?scmType={type}&instanceName={name} |
The query parameters are not case sensitive. Searching by instanceName=NAME is the same as searching by instanceName=name. |
Parameter | Required | Type | Description |
---|---|---|---|
instanceName | No | Query - String | This is a URL query parameter for the name which is used to query the SCM instances with. Contains ignore case search |
instanceCode | No | Query - String | This is a URL query parameter for the code which is used to query the SCM instances with. Equals ignore case search |
scmType | No | Query - String | This is a URL query parameter for the type which is used to query the SCM instances with. Equals ignore case search |
HTTP Code | Description |
---|---|
200 | SCM Instances were found and returned |
400 | Bad request |
401 | Authentication failure |
403 | Authorization failure (no access to resource) |
500 | Unexpected internal server error |
If we had a SCM instance in our database with an Id of 11101 and had the following attributes
{ "instanceId": 11101 "instanceName": "ScmName1", "properties": [ { "propertyName": "FDGIT_URL", "propertyValue": "url" }, { "propertyName": "FDGIT_USER", "propertyValue": "user" }, { "propertyName": "FDGIT_PASSWORD", "propertyValue": "password" }, { "propertyName": "FDGIT_TIMEOUT", "propertyValue": "10000" } ], "scmType": "GIT", "description": "description", "instanceCode": "CODE1", "isActive": true } |
When we run a GET request at the following URL
http://host:port/flexdeploy/rest/v1/topology/integrations/scminstance?code=code1&name=ScmName1
The GET request would return the following JSON SCM instance object
{ "instanceId": 11101 "instanceName": "ScmName1", "properties": [ { "propertyName": "FDGIT_URL", "propertyValue": "url" }, { "propertyName": "FDGIT_USER", "propertyValue": "user" }, { "propertyName": "FDGIT_PASSWORD", "propertyValue": "password" }, { "propertyName": "FDGIT_TIMEOUT", "propertyValue": "10000" } ], "scmType": "GIT", "description": "description", "instanceCode": "CODE1", "isActive": true } |
This POST service will create a new SCM instance with the same attributes as the given JSON object.
http://host:port/flexdeploy/rest/v1/topology/integrations/scminstance |
Parameters | Required | Type | Description |
---|---|---|---|
Id | Yes | URL | This is a URL parameter for the Id which is used to find and return an SCM instance with. |
description | No | String | This is the description that the SCM instance's description will be updated to. |
isActive | Yes | Boolean | This is the isActive Boolean that the SCM instance's isActive Boolean will be updated to. |
instanceCode | Yes | String | This is the code that the SCM instance's code will be updated to. |
properties | Yes/No | List<PropertyValue> | This is the list of Properties that will be updated in the SCM instance. The JSON object must have all of the properties of the SCM instance's type. |
instanceName | Yes | String | This is the name that the SCM instance's name will be updated to. |
scmType | Yes | String | This is the scm type of the SCM instance. |
HTTP Code | Description |
---|---|
201 | Instance was created successfully |
400 | Bad request |
401 | Authentication failure |
403 | Authorization failure (no access to resource) |
500 | Unexpected internal server error |
If the POST request receives the following JSON test instance object,
{ "instanceName": "ScmName1", "properties": [ { "propertyName": "FDGIT_URL", "propertyValue": "url" }, { "propertyName": "FDGIT_USER", "propertyValue": "user" }, { "propertyName": "FDGIT_PASSWORD", "propertyValue": "password" }, { "propertyName": "FDGIT_TIMEOUT", "propertyValue": "10000" } ], "scmType": "GIT", "description": "description", "instanceCode": "CODE1", "isActive": true } |
The following SCM instance object will then be created as a new row in the database.
{ "instanceId": 11101, "instanceName": "ScmName1", "properties": [ { "propertyName": "FDGIT_URL", "propertyValue": "url" }, { "propertyName": "FDGIT_USER", "propertyValue": "user" }, { "propertyName": "FDGIT_PASSWORD", "propertyValue": "password" }, { "propertyName": "FDGIT_TIMEOUT", "propertyValue": "10000" } ], "scmType": "GIT", "description": "description", "instanceCode": "CODE1", "isActive": true } |
This PUT service will update all attributes of a SCM instance with the given Id based on the attributes of a JSON object paramaters.
http://host:port/flexdeploy/rest/v1/topology/integrations/scminstance/{Id} |
Parameters | Required | Type | Description |
---|---|---|---|
Id | Yes | URL | This is a URL parameter for the Id which is used to find and return an SCM instance with. |
description | No | String | This is the description that the SCM instance's description will be updated to. |
isActive | Yes | Boolean | This is the isActive Boolean that the SCM instance's isActive Boolean will be updated to. |
instanceCode | Yes | String | This is the code that the SCM instance's code will be updated to. |
properties | Yes/No | List<PropertyValue> | This is the list of Properties that will be updated in the SCM instance. The JSON object must have all of the properties of the SCM instance's type. |
instanceName | Yes | String | This is the name that the SCM instance's name will be updated to. |
scmType | Yes | String | This is the SCM type of the SCM instance. |
HTTP Code | Description |
---|---|
200 | SCM Instance was found and updated |
400 | Bad request |
401 | Authentication failure |
403 | Authorization failure (no access to resource) |
404 | SCM Instance not found |
500 | Unexpected internal server error |
If we had a SCM instance in our database with an Id of 11101 and had the following attributes
{ "instanceName": "ScmName1", "properties": [ { "propertyName": "FDGIT_URL", "propertyValue": "url" }, { "propertyName": "FDGIT_USER", "propertyValue": "user" }, { "propertyName": "FDGIT_PASSWORD", "propertyValue": "password" }, { "propertyName": "FDGIT_TIMEOUT", "propertyValue": "10000" } ], "scmType": "GIT", "description": "description", "instanceCode": "CODE1", "isActive": true } |
When we run a PUT request at the following URL
http://host:port/flexdeploy/rest/v1/topology/integrations/scminstance/11101
And the PUT request recieves the following JSON SCM instace object,
{ "instanceId": 11101, "instanceName": "ScmName2", "properties": [ { "propertyName": "FDGIT_URL", "propertyValue": "urlPUT" }, { "propertyName": "FDGIT_USER", "propertyValue": "userPUT" }, { "propertyName": "FDGIT_PASSWORD", "propertyValue": "passwordPUT" }, { "propertyName": "FDGIT_TIMEOUT", "propertyValue": "10001" } ], "scmType": "GIT", "description": "descriptionPUT", "instanceCode": "CODE2", "isActive": true } |
The PUT request would then update the SCM instance with Id 11101 and return the following JSON SCM instance object
{ "instanceId": 11101, "instanceName": "ScmName2", "properties": [ { "propertyName": "FDGIT_URL", "propertyValue": "urlPUT" }, { "propertyName": "FDGIT_USER", "propertyValue": "userPUT" }, { "propertyName": "FDGIT_PASSWORD", "propertyValue": "passwordPUT" }, { "propertyName": "FDGIT_TIMEOUT", "propertyValue": "10001" } ], "scmType": "GIT", "description": "descriptionPUT", "instanceCode": "CODE2", "isActive": true } |
This PATCH service will update an existing SCM instance with the information passed through a JSON object. If an attribute of the JSON is null it will not be updated in the SCM instance.
http://host:port/flexdeploy/rest/v1/topology/integrations/scminstance/{Id} |
Parameters | Required | Type | Description |
---|---|---|---|
Id | Yes | URL | This is a URL parameter for the Id which is used to find and return an SCM instance with. |
description | No | String | This is the description that the SCM instance's description will be updated to. |
isActive | No | Boolean | This is the isActive Boolean that the SCM instance's isActive Boolean will be updated to. |
instanceCode | No | String | This is the code that the SCM instance's code will be updated to. |
properties | No | List<PropertyValue> | This is the list of Properties that will be updated in the SCM instance. Property values provided in input are updated, other values will be unchanged. |
instanceName | No | String | This is the name that the SCM instance's name will be updated to. |
scmType | Yes | String | This is the SCM type of the SCM instance. |
HTTP Code | Description |
---|---|
200 | SCM Instance was found and patched |
400 | Bad request |
401 | Authentication failure |
403 | Authorization failure (no access to resource) |
404 | SCM Instance not found |
500 | Unexpected internal server error |
If we had an test instance in our database with an Id of 11101 and had the following attributes
{ "instanceId": 11101, "instanceName": "ScmName2", "properties": [ { "propertyName": "FDGIT_URL", "propertyValue": "urlPUT" }, { "propertyName": "FDGIT_USER", "propertyValue": "userPUT" }, { "propertyName": "FDGIT_PASSWORD", "propertyValue": "passwordPUT" }, { "propertyName": "FDGIT_TIMEOUT", "propertyValue": "10001" } ], "scmType": "GIT", "description": "descriptionPUT", "instanceCode": "CODE2", "isActive": true } |
When we run a PATCH request at the following URL
http://host:port/flexdeploy/rest/v1/topology/integrations/scminstance/11101
And the PATCH request receives the following JSON SCM instance object,
{ "instanceName": null, "properties": [ { "propertyName": "FDGIT_URL", "propertyValue": "urlPatch" }, { "propertyName": "FDGIT_PASSWORD", "propertyValue": "passwordPatch" }, ], "scmType": "GIT", "description": null, "instanceCode": "CODE3", "isActive": true } |
The PATCH request would then update the SCM instance with Id 11101 and return the following JSON SCM instance object
{ "instanceId": 11101, "instanceName": "ScmName2", "properties": [ { "propertyName": "FDGIT_URL", "propertyValue": "urlPatch" }, { "propertyName": "FDGIT_USER", "propertyValue": "userPUT" }, { "propertyName": "FDGIT_PASSWORD", "propertyValue": "passwordPatch" }, { "propertyName": "FDGIT_TIMEOUT", "propertyValue": "10001" } ], "scmType": "GIT", "description": "descriptionPUT", "instanceCode": "CODE3", "isActive": true } |