REST API Reference > Platform REST API version 3 resources > Source control
  

Source control

You can use a Git source control repository to manage and track changes made to Informatica Intelligent Cloud Services objects such as projects, folders, and assets.
You can use the global Git repository for your organization. If the organization administrator enables project-level repositories, you can use repositories that are configured at the project level or use the global repository.
You can use the following resources:

Pulling objects

Use the pull resource to retrieve objects such as assets and projects from your repository and load them into your organization.
When you pull a project, all of the source-controlled assets in the project and the project's folders are included in the pull. If the assets already exist in the target organization, their contents are overwritten to match the assets' state at the specified commit hash. If the project and the project's folders already exist in the target organization, they're reused.
You can pull objects at the global repository or project level. The objects that you pull determine which repository is used. For example, if Project A is linked to Repo1, the pull is from Repo1. If Project B isn't linked to a project-level repository, the pull will be done from the global repository.
Dependent objects that are located in other projects are not included in the pull. If dependent objects are missing in the pull request, the response includes an error message that lists the missing dependent objects.
If an asset's connections, runtime environments, or schedule exist in the target organization, they're reused. If you want an asset to use a different connection or runtime environment in the target organization, you can map the connection or runtime environment to a connection or runtime environment in your organization using the objectSpecification object.
For example, an asset uses the SecureAgent_dev runtime environment in the dev organization and uses the SecureAgent_test runtime environment in the test organization. You can use the objectSpecification object to map the SecureAgent_dev runtime environment to the SecureAgent_test runtime environment.
Note: Informatica recommends that you include less than 1000 objects in a pull request.

POST request

To load the latest version of objects from your repository to your organization, use the following URI:
/public/core/v3/pull
Note: You might receive a response to the POST request before the pull operation completes.
You can include the following fields in the request:
Field
Type
Required
Description
commitHash
String
Yes
Unique commit hash.
The commit hash is validated during the operation.
If you use a GitHub repository, you can include a partial hash in the request by sending the first 7 characters of the hash instead of the full string.
relaxObjectSpecificationValidation
Boolean
No
Whether the sources specified in the objectSpecification object must exist in the assets being pulled. Use one of the following values:
  • - true. The objectSpecification objects are ignored if the sources don't exist in the assets that are included in the pull.
  • - false. An error occurs when an objectSpecification source doesn't exist in the assets that are included in the pull.
Default is false.
objects
List<Object>
Yes
Contains a list of all the objects to be pulled.
path
List<String>
Yes, if ID is not included
Include in the objects object.
Full path of the object to be pulled.
id
String
Yes, if path is not included
Include in the objects object.
ID of the object.
type
String
-
Include in the objects object.
Type of asset to be pulled. If not specified, default is project.
Can be one of the following types:
  • - DTEMPLATE. Mapping.
  • - MTT. Mapping task.
  • - DSS. Synchronization task.
  • - DMASK. Masking task.
  • - DRS. Replication task.
  • - DMAPPLET. Mapplet created in Data Integration.
  • - MAPPLET. PowerCenter mapplet.
  • - BSERVICE. Business service definition.
  • - HSCHEMA. Hierarchical schema.
  • - PCS. PowerCenter task.
  • - FWCONFIG. Fixed width configuration.
  • - CUSTOMSOURCE. Saved query.
  • - MI_TASK. Mass ingestion task.
  • - WORKFLOW. Linear taskflow.
  • - TASKFLOW
objectSpecification
List<Object>
-
Object specification for connection and runtime environments.
source
Object
Yes, if objectSpecification object is included and relaxObjectSpecificationValidation value is not true
Include in the objectSpecification object.
Contains information about the source object.
path
List<String>
Yes, if objectSpecification object is included
Include in the source object.
Full path of the connection or runtime environment in the repository.
type
String
Yes, if objectSpecification object is included
Include in the source object.
Asset type. Use one of the following values:
  • - Connection
  • - AgentGroup
target
Object
Yes, if objectSpecification object is included
Include in the objectSpecification object.
Contains information about the target object.
Include path and type or include ID. If path, type, and ID are included, ID takes precedence.
path
List<String>
Yes, if ID is not included
Include in the target object.
Path of the connection or runtime environment that is being mapped.
Use with type.
type
String
Yes, if ID is not included
Include in the target object.
Asset type.
Use with path.
Use one of the following values:
  • - Connection
  • - AgentGroup
id
String
Yes, if path and type are not included
Include in the target object.
ID of the target object.
additionalProviderFlags
Collection <complex type>
No
Additional object specifications.
Use key-value pairs to specify additional object specifications, such as in-out parameter values and sequence generator values.

POST response

If successful, a POST request returns the following information:
Field
Type
Description
pullActionId
String
ID for the pull operation.
status
Object
Status of the pull operation.
state
String
Returned in the status object.
Initial state of the pull operation. For a successful request, value will always be NOT_STARTED.
To see the status after the operation begins, use the Getting the status of a source control operation resource.
message
String
Returned in the status object
Descriptive status message for the pull operation.

POST request examples for projects

You can request a pull operation for one or more assets or projects in a single POST request. To request a pull operation for multiple projects using the path field to specify the projects to pull, you might send a request that's similar to the following example:
POST <baseApiUrl>/public/core/v3/pull
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID: <sessionId>

{
"commitHash": "7c525831c247cf792f595d1663396d1ae2c85033",
"objects": [
{
"path": ["Project2"]
},
{
"path": ["Default"]
}
]
}
To request a pull operation for the projects using project IDs, you might send a request that's similar to the following example:
POST <baseApiUrl>/public/core/v3/pull
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID: <sessionId>

{
"commitHash": "7c525831c247cf792f595d1663396d1ae2c85033",
"objects": [
{
"id": "4gmWUVziA1qe7zXbyN1l6E"
},
{
"id": "4TjbmrAGrk2eal3DOwdIk8"
}
]
}

POST request examples for assets

You can request a pull operation for one or more assets in a POST request. To request a pull operation for an asset using the path field to specify the asset to pull, you might send a request that's similar to the following example:
POST <baseApiUrl>/public/core/v3/pull
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID: <sessionId>

{
"commitHash": "1013f61bf318758cccec08f2165f59bbbb41e8f0",
"objects": [
{
"path": ["Default","Test_Mapping"],
"type": "DTEMPLATE"
}
]
}
To request a pull operation using the asset ID, you might send a request that's similar to the following example:
POST <baseApiUrl>/public/core/v3/pull
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID: <sessionId>

{
"commitHash": "1013f61bf318758cccec08f2165f59bbbb41e8f0",
"objects": [
{
"id": "6wLjSK4tS4rdjKq5uGuC0T"
}
]
}
To request a pull operation using the asset ID and include the connections, you might send a request that's similar to the following example:
POST <baseApiUrl>/public/core/v3/pull
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID: <sessionId>

{

"commitHash": "1013f61bf318758cccec08f2165f59bbbb41e8f0",
"objects": [
{
"id": "6wLjSK4tS4rdjKq5uGuC0T"
}
],
"objectSpecification":[
{
"source":
{
"path":["ff"],
"type":"Connection"
},
"target":
{
"path":["target_connection"],
"type":"Connection"
}
}
]
}
To request a pull operation using the asset ID, the source runtime environment, and the target ID, you might send a request that's similar to the following example:
POST <baseApiUrl>/public/core/v3/pull
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID: <sessionId>

{

"commitHash": "1013f61bf318758cccec08f2165f59bbbb41e8f0",
"objects": [
{
"id": "6wLjSK4tS4rdjKq5uGuC0T"
}
],
"objectSpecification":[
{
"source":
{
"path":["USW1MJ02YNFB"],
"type":"AgentGroup"
},
"target":
{
"id":"7UPtJVbrESTj0VkCBYAcUv"
}
}
]
}

POST response example

For a successful POST request, the POST response might look like the following example:
{
"pullActionId": "awRrziMMWXol7i42aTm1ih",
"status": {
"state": "NOT_STARTED",
"message": "Initialized"
}
}

Pulling objects in a commit

Use the pullByCommitHash resource to retrieve objects that were modified by a particular commit and load them into your organization.
When you use the pullByCommitHash resource, you include a commit hash in the request. The objects that changed in the commit are included in the pull. If you want to pull objects by path or object ID, use the pull resource instead.
If you use project-level repositories, include the repoConnectionId field in a pullByCommitHash request. You can find the repoConnectionId for projects by sending a repositoryConnection request. For more information about finding the repoConnectionId, see Getting repository connection details.
If you want an asset to use a different connection or runtime environment, you can map the connection or runtime environment to a connection or runtime environment in your organization using the objectSpecification object.
Note: Informatica recommends that you include less than 1000 objects in a pull request.

POST request

To load the objects that changed in a particular commit from your repository to your organization, use the following URI:
/public/core/v3/pullByCommitHash
Note: You might receive a response to the POST request before the pull operation completes.
You can include the following fields in the request:
Field
Type
Required
Description
commitHash
String
Yes
Unique commit hash.
The commit hash is validated during the operation.
If you use a GitHub repository, you can include a partial hash by sending the first 7 characters of the commit hash. For other repositories, include the full 40-character commit hash.
searchCustomRepositories
Boolean
No
Whether to search project-level repositories if the commit hash wasn't found for the global repository.
repoConnectionId
String
No
Connection ID of the project-level repository to search.
If not specified, the global repository is searched.
relaxObjectSpecificationValidation
Boolean
No
Whether the sources specified in the objectSpecification object must exist in the assets being pulled. Use one of the following values:
  • - true. The objectSpecification objects are ignored if the sources don't exist in the assets that are included in the pull.
  • - false. An error occurs when an objectSpecification source doesn't exist in the assets that are included in the pull.
Default is false.
objectSpecification
List<Object>
No
Object specification for connection and runtime environments.
source
Object
Yes, if objectSpecification object is included
Include in the objectSpecification object.
Contains information about the source object.
path
List<String>
Yes, if objectSpecification object is included
Include in the source object.
Name of the connection or runtime environment in the repository.
type
String
Yes, if objectSpecification object is included
Include in the source object.
Asset type. Use one of the following values:
  • - Connection
  • - AgentGroup
target
Object
Yes, if objectSpecification object is included
Include in the objectSpecification object.
Contains information about the target object.
Include path and type or include ID. If path, type, and ID are included, ID takes precedence.
path
List<String>
Yes, if ID is not included
Include in the target object.
Name of the connection or runtime environment.
Use with type.
type
String
Yes, if ID is not included
Include in the target object.
Asset type.
Use with path.
Use one of the following values:
  • - Connection
  • - AgentGroup
id
String
Yes, if path and type are not included
Include in the target object.
ID of the target object.
additionalProviderFlags
Collection <complex type>
No
Additional object specifications.
Use key-value pairs to specify additional object specifications, such as in-out parameter values and sequence generator values.

POST response

If successful, a POST request returns the following information:
Field
Type
Description
pullActionId
String
ID for the pull operation.
status
Object
Status of the pull operation.
state
String
Returned in the status object.
Initial state of the pull operation. For a successful request, value will always be NOT_STARTED.
To see the status after the operation begins, use the Getting the status of a source control operation resource.
message
String
Returned in the status object
Descriptive status message for the pull operation.

POST request examples

To request a pull operation for all changed assets in a commit, you might send a request that's similar to the following example:
POST <baseApiUrl>/public/core/v3/pullByCommitHash
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID: <sessionId>

{
"commitHash": "7c525831c247cf792f595d1663396d1ae2c85033"
}
To request a pull operation for all changed assets in a commit made to a project-level repository, you might send a request that's similar to the following example:
POST <baseApiUrl>/public/core/v3/pullByCommitHash
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID: <sessionId>

{
"commitHash": "7c525831c247cf792f595d1663396d1ae2c85033",
"searchCustomRepositories": true
}
To request a pull operation for all changed assets in a commit and include connections and runtime environments, you might send a request that's similar to the following example:
POST <baseApiUrl>/public/core/v3/pullByCommitHash
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID: <sessionId>

{

"commitHash": "1013f61bf318758cccec08f2165f59bbbb41e8f0",
"objectSpecification":[
{
"source":
{
"path":["ff"],
"type":"Connection"
},
"target":
{
"path":["target_connection"],
"type":"Connection"
}
},
{
"source": {
"path": ["USW1MJ02YNFB"],
"type": "AgentGroup"
},
"target": {
"id": "2ga6h3hRNZCf9Br0ZWB7EF"
}
}
]
}

POST response example

For a successful POST request, the response might look like the following example:
{
"pullActionId": "iW5TmGqUjmUcdZKk4c4VQH",
"status": {
"state": "NOT_STARTED",
"message": "Initialized"
}
}

Checking out objects

Use the checkout resource to check out a source-controlled object so that you can make changes to it. When you check out an object, the object is locked so that other users can't make changes to it.
You can check out multiple projects, folders, or assets in one request.
If multiple objects are included in the checkout and the checkout fails for any of them, none of the objects will be checked out. The objects that would have been successful will have a status of CANCELLED.
For more information about the checkout status, see Getting the status of a source control operation.

POST request

To check objects out of the repository, use the following URI:
/public/core/v3/checkout
In the request, you must provide either the object ID or the full path and object type.
You can include the following fields in the request:
Field
Type
Required
Description
objects
List<Object>
Yes
Contains a list of all the objects to be checked out.
id
String
Yes, if path and type are not included
Include in the objects object.
ID of the object.
path
List<String>
Yes, if ID is not included
Include in the objects object.
Full path of the object to be checked out.
type
String
Yes, if ID is not included
Include in the objects object.
Type of asset to be checked out.
Can be one of the following types:
  • - DTEMPLATE. Mapping.
  • - MTT. Mapping task.
  • - DSS. Synchronization task.
  • - DMASK. Masking task.
  • - DRS. Replication task.
  • - DMAPPLET. Mapplet created in Data Integration.
  • - MAPPLET. PowerCenter mapplet.
  • - BSERVICE. Business service definition.
  • - HSCHEMA. Hierarchical schema.
  • - PCS. PowerCenter task.
  • - FWCONFIG. Fixed width configuration.
  • - CUSTOMSOURCE. Saved query.
  • - MI_TASK. Mass ingestion task.
  • - WORKFLOW. Linear taskflow.
  • - TASKFLOW
  • - PROCESS. Application Integration process.
  • - AI_CONNECTION. Application Integration app connection.
  • - AI_SERVICE_CONNECTOR. Application Integration service connector.
  • - GUIDE. Application Integration guide.
  • - PROCESS_OBJECT. Application Integration process object.
  • - HUMAN_TASK. Application Integration human task.
includeContainerAssets
Boolean
-
Include in the objects object.
Whether all objects in a project or folder are included in the check-in. Use one of the following values:
  • - true. Include all objects in the project or folder.
  • - false. Do not include objects in the project or folder.
Default is false.

POST response

If successful, a POST request returns the following information:
Field
Type
Description
Id
String
ID for the checkout operation.
status
Object
Status of the checkout operation.
state
String
Returned in the status object.
Initial state of the checkout operation. For a successful request, value will always be NOT_STARTED.
To see the status after the operation begins, use the Getting the status of a source control operation resource.
message
String
Returned in the status object
Descriptive status message for the checkout operation.

POST request examples

To request a checkout operation for a project and include all of the assets in the project, you might send a request that's similar to the following example:
POST <baseApiUrl>/public/core/v3/checkout
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID: <sessionId>

{
"objects": [
{
"id": "ejZY66c19YUccBdbGwKG4P",
"includeContainerAssets": true
}
]
}
To request a checkout operation for a project and include two of the assets in the project, you might send a request that's similar to the following example:
POST <baseApiUrl>/public/core/v3/checkout
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID: <sessionId>

{
"objects": [
{
"id": "iIVBNZSpUKFg4N6g2PKUox",
"includeContainerAssets": false
},
{
"id": "l7bgB85m5oGiXObDxwnvK9"
},
{
"id": "1MW0GDAE1sFgnvWkvom7mK"
}
]
}
To request a checkout operation for an asset named Test_Mapping that's in the Default project, you might send a request that's similar to the following example:
POST <baseApiUrl>/public/core/v3/checkout
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID: <sessionId>

{
"objects": [
{
"path": [
"Default",
"Test_Mapping"
],
"type": "DTEMPLATE"
}
]
}
To request a checkout operation using the asset ID, you might send a request that's similar to the following example:
POST <baseApiUrl>/public/core/v3/checkout
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID: <sessionId>

{
"objects": [
{
"id": "3iWWHkLbM2giVppBmJmZgV"
}
]
}

POST response example

You might receive a response similar to the following example:
{
"id": "awRrziMMWXol7i42aTm1ih",
"status": {
"state": "NOT_STARTED",
"message": "Initialized"
}
}

Undoing a checkout

Use the undoCheckout resource to undo a checkout. The object will revert to the last version that was pulled.
You can undo the checkout of an asset, project, or folder. You can also undo a checkout for all objects that were included in a checkout. If you are logged in as an administrator, you can undo a checkout performed by another user.

POST request

To undo a checkout, use the following URI:
/public/core/v3/undoCheckout
In the request, include the ID or the path and type for each object that you want to perform the undo checkout operation. Or, include a checkout operation ID to undo the checkout for all objects that were included in a checkout operation.
Note: Source control logs are retained for seven days. If the checkout occurred more than seven days ago, the checkout operation ID no longer exists so it can't be used in an undo checkout operation.
If you want an asset to use a different connection or runtime environment, you can map the connection or runtime environment to a connection or runtime environment in your organization using the objectSpecification object.
You can include the following fields in the request:
Field
Type
Required
Description
checkoutOperationId
String
No
Checkout operation ID. If specified, all assets that were included in the checkout operation will revert to their original state.
objects
List<Object>
No
Contains a list of all the objects to be included in the undo checkout operation.
id
String
Yes, if the object's path and type are not included and checkoutOperation ID is not included
Include in the objects object.
ID of the object.
path
List<String>
Yes, if the object's ID is not included and checkoutOperation ID is not included
Include in the objects object.
Full path of the object.
type
String
Yes, if the object's ID is not included and checkoutOperation ID is not included
Include in the objects object.
Type of asset.
Can be one of the following types:
  • - DTEMPLATE. Mapping.
  • - MTT. Mapping task.
  • - DSS. Synchronization task.
  • - DMASK. Masking task.
  • - DRS. Replication task.
  • - DMAPPLET. Mapplet created in Data Integration.
  • - MAPPLET. PowerCenter mapplet.
  • - BSERVICE. Business service definition.
  • - HSCHEMA. Hierarchical schema.
  • - PCS. PowerCenter task.
  • - FWCONFIG. Fixed width configuration.
  • - CUSTOMSOURCE. Saved query.
  • - MI_TASK. Mass ingestion task.
  • - WORKFLOW. Linear taskflow.
  • - TASKFLOW
  • - PROCESS. Application Integration process.
  • - AI_CONNECTION. Application Integration app connection.
  • - AI_SERVICE_CONNECTOR. Application Integration service connector.
  • - GUIDE. Application Integration guide.
  • - PROCESS_OBJECT. Application Integration process object.
  • - HUMAN_TASK. Application Integration human task.
includeContainerAssets
Boolean
No
Include in the objects object.
Applicable to projects and folders.
Whether all objects in a project or folder are included in the undo checkout operation. Use one of the following values:
  • - true. Include all objects in the project or folder.
  • - false. Do not include objects in the project or folder.
Default is false.
objectSpecification
List<Object>
No
Object specification for connection and runtime environments.
source
Object
Yes, if objectSpecification object is included
Include in the objectSpecification object.
Contains information about the source object.
path
List<String>
Yes, if objectSpecification object is included
Include in the source object.
Full path of the connection or runtime environment in the repository.
type
String
Yes, if objectSpecification object is included
Include in the source object.
Asset type. Use one of the following values:
  • - Connection
  • - AgentGroup
target
Object
Yes, if objectSpecification object is included
Include in the objectSpecification object.
Contains information about the target object.
Include path and type or include ID. If path, type, and ID are included, ID takes precedence.
path
List<String>
Yes, if ID is not included
Include in the target object.
Path of the connection or runtime environment.
Use with type.
type
String
Yes, if ID is not included
Include in the target object.
Asset type.
Use with path.
Use one of the following values:
  • - Connection
  • - AgentGroup
id
String
Yes, if path and type are not included
Include in the target object.
ID of the target object.
additionalProviderFlags
Collection <complex type>
No
Additional object specifications.
Use key-value pairs to specify additional object specifications, such as in-out parameter values and sequence generator values.

POST response

If successful, a POST request returns the following information:
Field
Type
Description
id
String
ID for the undo checkout operation.
status
Object
Status of the undo checkout operation.
state
String
Returned in the status object.
Initial state of the undo checkout operation. For a successful request, value will always be NOT_STARTED.
To see the status after the operation begins, use the Getting the status of a source control operation resource.
message
String
Returned in the status object.
Descriptive status message for the undo checkout operation.

POST request examples

To request an undoCheckout operation using asset IDs, you might send a request that's similar to the following example:
POST <baseApiUrl>/public/core/v3/undoCheckout
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID: <sessionId>

{
"objects": [
{
"id": "4gmWUVziA1qe7zXbyN1l6E"
},
{
"id": "4TjbmrAGrk2eal3DOwdIk8"
}
]
}
To request an undo checkout operation for assets by path, you might send a request that's similar to the following example:
POST <baseApiUrl>/public/core/v3/undoCheckout
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID: <sessionId>

{
"objects": [
{
"path": ["Default","Test_Mapping1"],
"type": "DTEMPLATE"
},
{
"path": ["Default","Test_Mapping2"],
"type": "DTEMPLATE"
}
]
}
To request an undoCheckout operation for an asset and map the source connection and runtime environment to the target connection and runtime environment, you might send a request that's similar to the following example:
POST <baseApiUrl>/public/core/v3/undoCheckout
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID: <sessionId>

{
"objects": [
{
"id": "6wLjSK4tS4rdjKq5uGuC0T"
}
],
"objectSpecification":[
{
"source":
{
"path":["ff"],
"type":"Connection"
},
"target":
{
"path":["target_connection"],
"type":"Connection"
}
},
{
"source": {
"path": ["USW1MJ02YNFB"],
"type": "AgentGroup"
},
"target": {
"id": "2ga6h3hRNZCf9Br0ZWB7EF"
}
}
]
}
To request an undoCheckout operation using the checkout operation ID, you might send a request that's similar to the following example:
POST <baseApiUrl>/public/core/v3/undoCheckout
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID: <sessionId>

{
"checkoutOperationId": "<checkout operation ID>"
}

POST response example

For any of the request examples, you might receive a response similar to the following example:
{
"id": "awRrziMMWXol7i42aTm1ih",
"status": {
"state": "NOT_STARTED",
"message": "Initialized"
}
}

Checking in objects

Use the checkin resource to check updated objects in to the repository.

POST request

To check objects in to the repository, use the following URI:
/public/core/v3/checkin
In the request, you must provide either the object ID or the full path and object type.
You can include the following fields in the request:
Field
Type
Required
Description
objects
List<Object>
Yes
Contains a list of all the objects to be checked in. You can check in a single asset or check in any number of projects or folders.
id
String
Yes, if path and type are not included
Include in the objects object.
ID of the object.
path
List<String>
Yes, if ID is not included
Include in the objects object.
Full path of the object to be checked in.
type
String
Yes, if ID is not included
Include in the objects object.
Type of asset to be checked in.
Can be one of the following types:
  • - DTEMPLATE. Mapping.
  • - MTT. Mapping task.
  • - DSS. Synchronization task.
  • - DMASK. Masking task.
  • - DRS. Replication task.
  • - DMAPPLET. Mapplet created in Data Integration.
  • - MAPPLET. PowerCenter mapplet.
  • - BSERVICE. Business service definition.
  • - HSCHEMA. Hierarchical schema.
  • - PCS. PowerCenter task.
  • - FWCONFIG. Fixed width configuration.
  • - CUSTOMSOURCE. Saved query.
  • - MI_TASK. Mass ingestion task.
  • - WORKFLOW. Linear taskflow.
  • - TASKFLOW
  • - PROCESS. Application Integration process.
  • - AI_CONNECTION. Application Integration app connection.
  • - AI_SERVICE_CONNECTOR. Application Integration service connector.
  • - GUIDE. Application Integration guide.
  • - PROCESS_OBJECT. Application Integration process object.
  • - HUMAN_TASK. Application Integration human task.
includeContainerAssets
Boolean
-
Include in the objects object.
Whether all objects in a project or folder are included in the check-in. Use one of the following values:
  • - true. Include all objects in the project or folder.
  • - false. Do not include objects in the project or folder.
Default is false.
summary
String
Yes
Summary of the check-in.
Maximum length is 255 characters.
description
String
-
Description of the check-in.

POST response

If successful, a POST request returns the following information:
Field
Type
Description
Id
String
ID for the check-in operation.
status
Object
Status of the check-in operation.
state
String
Returned in the status object.
Initial state of the check-in operation. For a successful request, value will always be NOT_STARTED.
To see the status after the operation begins, use the sourceControlAction resource.
message
String
Returned in the status object
Descriptive status message for the check-in operation.

POST request examples for projects

You can request a check-in operation for one or more projects in a single POST request. To request a check-in operation for a project and include all of the assets in the project, you might send a request that's similar to the following example:
POST <baseApiUrl>/public/core/v3/checkin
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID: <sessionId>

{
"objects": [
{
"id": "3iWWHkLbM2giVppBmJmZgV",
"includeContainerAssets": true
}
],
"summary": "Revised mappings",
"description": "Revised m_custArch and m_custNew"
}
To request a check-in operation for an asset using the path and object type, you might send a request that's similar to the following example:
POST <baseApiUrl>/public/core/v3/checkin
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID: <sessionId>

{
"objects": [
{
"path": [
"Default",
"Test_Mapping"
],
"type": "DTEMPLATE"
}
]
}

POST request examples for assets

You can request a check-in operation for one asset in a POST request. To request a check-in operation for an asset named Test_Mapping that's in the Default project, you might send a request that's similar to the following example:
POST <baseApiUrl>/public/core/v3/checkin
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID: <sessionId>

{
"objects": [
{
"path": [
"Default",
"Test_Mapping"
],
"type": "DTEMPLATE"
}
]
}
To request a check-in operation using the asset ID, you might send a request that's similar to the following example:
POST <baseApiUrl>/public/core/v3/checkin
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID: <sessionId>

{
"objects": [
{
"id": "3iWWHkLbM2giVppBmJmZgV"
}
],
"summary": "Revised Revised m_custArch"
}

POST response example

A POST response might look like the following example:
{
"Id": "awRrziMMWXol7i42aTm1ih",
"status": {
"state": "NOT_STARTED",
"message": "Initialized"
}
}

Getting commit details

Use the commit resource to retrieve details about a commit from your repository.

GET request

To get the details for a commit, use the following URI:
/public/core/v3/commit/<commitHash>
You can include the following optional parameters in the URI:
Field
Type
Required
Description
searchCustomRepositories
Boolean
-
Whether to search project-level repositories if the commit hash wasn't found for the global repository.
repoConnectionId
String
-
Connection ID of the project-level repository to search.
To find the repository connection ID, you can send a repositoryConnection request. For more information, see <link to the new Getting repository connection details topic>

GET response

If successful, a GET request returns the following information:
Field
Type
Description
hash
String
Unique identifier for the commit. You can use this value in a pullByCommitHash request.
summary
String
Summary associated with the commit hash.
description
String
Detailed description associated with the commit hash.
username
String
Name of the user who performed the commit.
email
String
Email address of the user who performed the commit.
date
Date
The timestamp when the commit was submitted in the following format: yyyy-MM-dd'T'HH:mm:ss.SSSZ
committer
String
The Git user who filed the commit.
changes
List <Object>
Contains change details for each object included in the commit.
id
String
Included in the changes object.
Global unique identifier for the object.
Included if the object currently exists in your organization.
appContextId
String
Included in the changes object.
ID of the object in context, used in REST API version 2 calls.
Included if the object currently exists in your organization.
name
String
Included in the changes object.
Name of the asset, project, or folder.
type
String
Included in the changes object.
Type of object.
path
List <String>
Included in the changes object.
Full path of the object.
oldPath
List <String>
Included in the changes object.
Remote repository path for the object before the commit. Included when the object was moved or renamed.
action
String
Included in the changes object.
Indicates the type of changes made to the object during the commit. Includes one of the following values:
  • - ADDED
  • - DELETED
  • - MODIFIED
  • - MOVED

GET response example

A GET response might look like the following example:
{
"hash": "aca30f6c44de9bef23db59ed16967653481c5e23",
"summary": "Update. ",
"description": "Restructured and updated.",
"username": "testuser",
"email": "user@gmail.com",
"date": "2019-05-13T17:50:46.000Z"
"committer": "Alexander Freeman",
"changes": [
{
"id": "5G15DJ19Fw3j20XGL6oooL",
"appContextId": "N0A1700000000001J",
"name": "Mapping1",
"type": "DTEMPLATE",
"path": ["Versioned_Project2","Mapping1"],
"action": "MODIFIED"
},
{
"id": "2jFxl7stzKgi3lKAtVpWi3",
"appContextId": "N0A17000000003A02",
"name": "Versioned_Project",
"type": "Project",
"path": ["Versioned_Project"],
"action": "ADDED"
},
{
"id": "k3SYVglqhAafSWHuQuZdm1",
"appContextId": "N0F17000000000291",
"name": "Versioned_Folder",
"type": "Folder",
"path": ["Versioned_Project", "Versioned_Folder"],
"oldPath": ["Versioned_Project", "Test_Folder"],
"action": "MOVED"
},
{
"id": null,
"appContextId": null,
"name": "Mapping2",
"type": "DTEMPLATE",
"path": ["Versioned_Project2","Mapping2"],
"action": "DELETED"
}
]
}

Getting commit history

Use the commitHistory resource to get commit history for source-controlled objects in your organization.
You can request commit history for all source-controlled objects, specific projects or folders, or specific assets. You can also use query parameters to request commit history for all objects on a particular Explore page or a specified number of pages.

GET request

You can request the commit history for all of your organization's projects and assets or request the history for a particular project or asset.
To get commit history, use the following URI:
/public/core/v3/commitHistory?<query parameters>
To get the commit history for all objects in the organization, omit the query parameters.
To get the commit history for a particular project or asset, you can include the following query parameters in the URI:
Parameter
Type
Description
q
String
Query filter string. Include an object ID, project or folder name, or asset type.
perPage
String
Number of entries to include per page. Maximum of entries is 100.
Default is 100.
page
String
Show a specific page of results.
Default is page 1.
You can use the following fields to define the query filter:
Field
Type
Operators
Description
id
String
==
ID of the project, folder, or asset.
path
String
==
Project or path where the assets are located.
type
String
==
Asset type. Required to receive commit history for an asset.
Can be one of the following types:
  • - DTEMPLATE. Mapping.
  • - MTT. Mapping task.
  • - DSS. Synchronization task.
  • - DMASK. Masking task.
  • - DRS. Replication task.
  • - DMAPPLET. Mapplet created in Data Integration.
  • - MAPPLET. PowerCenter mapplet.
  • - BSERVICE. Business service definition.
  • - HSCHEMA. Hierarchical schema.
  • - PCS. PowerCenter task.
  • - FWCONFIG. Fixed width configuration.
  • - CUSTOMSOURCE. Saved query.
  • - MI_TASK. Mass ingestion task.
  • - WORKFLOW. Linear taskflow.
  • - TASKFLOW
  • - PROCESS. Application Integration process.
  • - AI_CONNECTION. Application Integration app connection.
  • - AI_SERVICE_CONNECTOR. Application Integration service connector.
  • - GUIDE. Application Integration guide.
  • - PROCESS_OBJECT. Application Integration process object.
  • - HUMAN_TASK. Application Integration human task.
branch
String
==
Repository branch, if different from the branch that's configured for the organization.

Query examples

The following examples show how you can use query parameters to get commit history for certain objects.

GET response

Returns a list of commits with the latest commit listed first. Returns an error if errors occur.
If successful, returns the following information for each commit in the commits object:
Field
Type
Description
commits
List<Object>
List of all of the commits.
hash
String
Unique identifier for the commit.
summary
String
Summary associated with the commit hash.
description
String
Detailed description associated with the commit hash.
username
String
Name of the user who performed the commit.
email
String
Email address of the user who performed the commit.
date
Date
The timestamp when the commit was submitted in the following format: yyyy-MM-dd'T'HH:mm:ss.SSSZ
committer
String
The Git user who filed the commit.
pagination
Object
Page information.
pageSize
Int
Number of elements on the page.
currentPage
Int
Current page number.
hasNext
Boolean
Whether there is another page after the current page.

Get response example

If successful, you might receive a response similar to the following example:
{
"commits": [
{
"hash": "b0bdc63a7fb9047db6c3bc29ad67d5ecbf7d1d47",
"summary": "Default Project v1",
"description": "Default Project v1",
"username": "testuser@gmail.com",
"email": "testuser@gmail.com",
"date": "2020-03-30T22:30:19.000Z",
"committer": "testuserinfa"
},
{
"hash": "fc6fcc318ad1b4aec17017d053bc2f0d1f605096",
"summary": "Synchronization Task1 - Copy 1 v1",
"description": "Synchronization Task1 - Copy 1 v1",
"username": "testuser@gmail.com",
"email": "testuser@gmail.com",
"date": "2020-03-30T22:22:02.000Z",
"committer": "testuserinfa"
},
{
"hash": "74d776c574dad3bc5cf7a44b22195cf423560fe9",
"summary": "Project2 Folder1 v1",
"description": null,
"username": "testuser@gmail.com",
"email": "testuser@gmail.com",
"date": "2020-03-30T22:17:48.000Z",
"committer": "testuserinfa"
},
{
"hash": "02c8b5950df4ef2110288ba7f77a220bc6f05b0a",
"summary": "v1 of project2",
"description": "v1 of project2",
"username": "testuser@gmail.com",
"email": "testuser@gmail.com",
"date": "2020-03-24T23:41:52.000Z",
"committer": "testuserinfa"
},
],
"pagination": null
}

Getting repository connection details

Use the repositoryConnection resource to get repository details such as the repository connection ID for a given project ID or project name. You can get the repository details for one or more projects in one request.
Use the repository connection ID that's included in the response to send a pullByCommitHash request for objects in project-level repositories.

GET request

To get details about the repository connection for a given project, use the following URL:
/public/core/v3/repositoryConnection
You can include the following fields in the request:
Field
Type
Required
Description
projectIds
List of String
-
Project ID that you want to find the repository connection details for.
projectNames
List of String
-
Project name that you want to find the repository connection details for.

GET response

If successful, a GET request returns the following information:
Field
Type
Description
pullActionId
String
ID for the pull operation.
projectRepoConnections
List <Object>
Object that contains repository details for each project ID or project name included in the request.
projectId
String
Returned in the projectRepoConnections object.
ID of the project. Included when the project ID was included in the request.
projectNames
String
Returned in the projectRepoConnections object.
Name of the project. Included when the project name was included in the request.
gitRepositoryURL
String
Git repository URL.
gitRepositoryBranch
String
Git repository branch.
globalRepository
Boolean
Whether project is configured with a global Git repository. If true, repoConnectionId is null.
repoConnectionId
String
Repository connection ID for the project.
Null if the project isn't configured with a project-level Git repository.

GET request example

To request repository connection details for two project using project ID, the request might look like the following example:
https://{{pod_link}}/saas/public/core/v3/repositoryConnection?projectIds=6ub6oUKHJ8Dkr3QXbGG9Sm,5FmdSKPASroei2vyeXwFeT

GET response example

For a successful GET request, the response might look like the following example:
{
"projectRepoConnections": [
{
"projectId": "6ub6oUKHJ8Dkr3QXbGG9Sm",
"projectNames": "customProject2",
"globalRepository": false,
"gitRepositoryURL": "https://priraj@dev.azure.com/priraj/infa-cloud-vcs-azure/_git/infa-cloud-vcs-azure",
"gitRepositoryBranch": "main",
"repoConnectionId": "1rMeeN2te0TetGYVtRS3GS"
},
{
"projectId": "5FmdSKPASroei2vyeXwFeT",
"projectNames": "TestProject",
"globalRepository": true,
"gitRepositoryURL": "https://priraj@dev.azure.com/priraj/infa-cloud-vcs/_git/infa-cloud-vcs",
"gitRepositoryBranch": "main",
"repoConnectionId": null
}
]
}

Getting the status of a source control operation

Use the sourceControlAction resource to get the status of a source control operation.
You can request the status of a source control operation.

GET request

To receive the status of a source control operation, include the action ID in the following URI::
/public/core/v3/sourceControlAction/<action ID>
To receive the status for each object in the source control operation, use the following URI:
/public/core/v3/sourceControlAction/<action ID>?expand=objects

GET response

Returns the following information for the source control operation:
Field
Type
Description
id
String
ID of the source control operation.
action
String
Type of operation. Returns one of the following values:
  • - CHECKIN
  • - CHECKOUT
  • - PULL
  • - UNLINK
  • - UNDO_CHECKOUT
commitHash
String
Unique commit hash. Included when the request is for checkin and pull operations.
startTime
TimeStamp
Start time of the operation.
endTime
TimeStamp
End time of the operation.
status
Object
Includes status information for the operation.
state
String
Included in the status object.
Status of the operation.
Returns one of the following values:
  • - NOT_STARTED
  • - IN_PROGRESS
  • - SUCCESSFUL
  • - FAILED
  • - WARNING
message
String
Included in the status object.
Descriptive status message for the operation.
objects
List<Object>
Lists each object included in the operation.
Returned when expand=objects is included in the URI.
target
Object
Included in the objects object.
Target object
id
String
Included in the target object.
ID of the target object.
path
List<String>
Included in the target object.
Complete path of the target object. For example, "Default" , "mt_MappingTask1".
type
String
Included in the target object.
Asset type of the target object.
status
Object
Included in the target object.
Status information for the target object.
state
String
Included in the status object.
Status of the operation.
Returns one of the following values:
  • - NOT_STARTED
  • - IN_PROGRESS
  • - SUCCSSFUL
  • - FAILED
  • - SKIPPED
  • - CANCELLED
  • - WARNING
message
String
Included in the status object.
Descriptive status message for the operation.

Get response example

If successful, you might receive a response similar to the following example:
{
"id": "drLV4N8PFiuhAbcprrur2W",
"action": "CHECKIN"
"commitHash": "1234567abcdefg"
"startTime": "2020-03-24T22:07:44Z",
"endTime": "2020-03-24T22:08:14Z",
"status": {
"state": "SUCCESSFUL",
"message": "Checkin Successful"
},
"objects": [
{
"target": {
"path": [
"Versioned_Project",
"Versioned_Folder",
"Versioned Mapping - Rename"
],
"id": "2CefbUuBsYxhG6eeKXvGmh",
"type": "MAPPING"
},
"status": {
"state": "SUCCESSFUL",
"message": "Checkin Successful"
}
},
{
"target": {
"path": [
"Versioned_Project",
"Versioned_Folder",
"Versioned Mapping - Edit"
],
"id": "2CefbUuBsYxhG6eeKXvGmh",
"type": "MAPPING"
},
"status": {
"state": "FAILED",
"message": "Checkin Failed."
}
]
}