REST API Reference > Platform REST API version 3 resources > Importing objects
  

Importing objects

Use this resource with the export resource to migrate objects from one organization to another.
Importing objects includes a series of requests and responses. To import objects, you perform the following tasks:
  1. 1Log in to the target organization.
  2. 2Send an import POST request to upload the ZIP file.
  3. Informatica Intelligent Cloud Services returns the job ID for the import job.
    See Uploading an import package.
  4. 3Send an import POST request to import objects.
  5. Informatica Intelligent Cloud Services returns the status of the import such as In Progress or Success, or returns an error message. The response also includes the source organization ID for the organization that created the export package.
    See Starting an import job.
  6. 4Send an import GET request to get the status of the import job. You can also request status at the object level.
  7. Informatica Intelligent Cloud Services returns the status of the import job and if requested, status of each object in the package.
    See Getting the import job status.

Uploading an import package

Use a POST request to upload an import package.

POST request

To upload the import package, use the following URI:
/public/core/v3/import/package
For Content-Type, use
multipart/form-data
In the request body, include a part with the name of package. For its content, use the export ZIP file that you want to import.
By default, Informatica Intelligent Cloud Services uses checksum validation to verify that no changes were made to the contents of the export ZIP file after it was created. If you want to upload an import package that contains a modified export ZIP file, include the relaxChecksum parameter and set the value to True.
The following image shows an example of the request body in Postman:
The image shows a post request body in Postman where "package" is the key and the export.zip file is the value.

POST response

If successful, returns the following information for the import job:
Field
Type
Description
jobId
String
ID of the import job.
jobStatus
Collection
Status of the package upload.
state
String
Returned in the status object.
Status of the import job, such as In Progress, Success, or Failed.
message
String
Returned in the status object.
Import job status message.
checksumValid
Boolean
Indicates whether the import package has valid checksum.

POST response example

You might receive a response similar to the following example:
{
"jobId": "2oZb7vFI2QQg4ncd4AyCGn",
"jobStatus": {
"state": "NOT_STARTED",
"message": null
}
"checksumValid": true
}

Starting an import job

Use a POST request to specify and start an import job. You can import objects such as assets, connections, Secure Agent configurations, and schedules.

POST request

In the request, include a list of objects to import and parameters to resolve any conflict resolution that might occur. An example of a conflict resolution might be if you try to import an asset that has the same name as another asset in the target organization.
You can specify a runtime environment that exists in the target organization to use instead of the source runtime environment provided that the connector types and versions are the same. To find a list of the runtime environments in the target organization, you can use the lookup resource.
When you import a Data Integration shared sequence or a mapping task that contains in-out parameters or sequences, you can choose to retain, reset, or overwrite persisted values.
To specify the import objects and start the import job, use the following URI:
/public/core/v3/import/<id>
The <id> is the import job ID received in the POST response for the import package upload.
To get the object IDs that you want to include in the request, you can use the lookup resource. For more information, see Lookup.
Include the following fields in the request:
Field
Type
Required
Description
name
String
Yes
Name of the import job.
Default name is job-<currentTimeInMilliseconds>
importSpecification
Complex type
-
Used to specify import specifications. By default, the import includes all objects in the import package with default conflict resolution settings.
defaultConflictResolution
String
-
Include in the importSpecification object.
Whether to overwrite existing objects with all of the objects in the import file. Includes the following options:
  • - OVERWRITE. Overwrite the existing objects with the objects in the import file.
  • Default value for assets.
  • - REUSE. Use the existing objects. If an object doesn't exist, it is created.
  • Default value for connections, runtime environments, projects, folders, and schedules.
includeObjects
Collection<String>
-
Include in the importSpecification object.
Objects to include in the import. You can use the lookup resource to find the object IDs.
By default, the import includes all objects in the import package.
If the specified object is a project, the import includes all assets that belong to the project and all dependent objects that are not already present in the target organization.
If the specified object is an asset, the import creates the asset's containers (project, folder) if they do not already exist.
Note: Informatica recommends that you include no more than 1000 objects in an import job.
objectSpecification
Collection <complex type>
-
Include in the importSpecification object.
Specifies the object properties. If properties are not specified for a particular object, the import uses the default conflict resolution settings.
conflictResolution
String
-
Include in the objectSpecification object.
Whether to overwrite an existing asset with an asset in the import file. Includes the following options:
  • - OVERWRITE. Overwrite the existing asset with the asset in the import file.
  • - REUSE. Use the existing object. If the object doesn't exist, it is created.
Applicable to assets, for example, Data Integration mapping tasks, Application Integration guides, B2B Gateway suppliers, and Data Quality dictionaries. Do not use for projects, folders, runtime environments, or connections.
Note: The import includes connections and runtime environments associated with the asset if they do not exist in the target organization.
sourceObjectId
String
Yes
Include in the objectSpecification object.
The object ID in the export package file.
Required if objectSpecification is present.
targetObjectId
String
-
Include in the objectSpecification object.
Used for Container to Container mapping, as well as some asset to asset mappings.
Use to specify a connection or runtime environment that exists in the target organization. The target object must use the same connector type and version that is used in the source object.
mergeTags
Boolean
-
Include in the objectSpecification object.
Determines whether to merge incoming asset tags with asset tags in the target project.
Default is False.
additionalProviderFlags
Collection <complex type>
-
Additional object specifications.
Use key-value pairs to retain, reset, or overwrite persisted values when you import a Data Integration shared sequence or a mapping task that contains in-out parameters or sequences.
For new assets, use the key, " mapping_conflict_new" and one of the following values:
  • - RESET. Creates the asset using the initial, default values as defined in the source.
  • - RETAIN. Creates the asset using the current values from the source.
For existing assets, use the key, "mapping_conflict_existing" and one of the following values:
  • - RESET. Resets persisted values to the initial, default value.
  • - RETAIN. Ignores the values coming from the source.
  • - REPLACE. Overwrites persisted values in the target with values from the source.

POST request example

You might use a request similar to the following example:
POST <baseApiUrl>/public/core/v3/import/2oZb7vFI2QQg4ncd4AyCGn
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID: <sessionId>

{ "name" : "testImportName",
"importSpecification" : {
"defaultConflictResolution" : "REUSE",
"includeObjects" : [
"jJGyAmd8Q8odiyvToQhhAQ",
"kDjmdtmJlkvfnAlWYaSe2S",
"9pJkLYz9B3ucEj4wpXjqg2",
"0VHocWvMryobgyuGUsObMJ",
"71ggUXTyXQxhb81D57aKs0"
],
"objectSpecification" : [{
"sourceObjectId" : "jJGyAmd8Q8odiyvToQhhAQ",
"conflictResolution" : "OVERWRITE",
"additionalProviderFlags":[
{
"key":"mapping_conflict_policy",
"value":"RESET"
}
]
},
{
"sourceObjectId": "kDjmdtmJlkvfnAlWYaSe2S",
"conflictResolution": "OVERWRITE"
},
{
"sourceObjectId": "9pJkLYz9B3ucEj4wpXjqg2",
"conflictResolution": "REUSE"
},
{
"sourceObjectId": "0VHocWvMryobgyuGUsObMJ",
"conflictResolution": "REUSE"
},
{
"sourceObjectId": "71ggUXTyXQxhb81D57aKs0",
"conflictResolution": "REUSE"
}]
}
}
}

POST response

If successful, returns the following information for the import job:
Field
Type
Description
jobId
String
ID of the import job.
createTime
String
Time the import job was created.
updateTime
String
last time the import job was updated.
name
String
Name of the import job.
startTime
String
Start time of the import job.
endTime
String
End time of the import job.
status
Collection
Status of the package upload.
state
String
Returned in the status object.
Import state of the individual object, such as IN PROGRESS, SUCCESS, or FAILED.
message
String
Returned in the status object.
Import job status message.
objects
Collection
Objects included in the import job.
sourceOrgId
String
Organization ID of the organization that created the export package that was imported.

POST response examples

If successful, you might receive a response similar to the following example:
{
"id": "2oZb7vFI2QQg4ncd4AyCGn",
"createTime": "2024-02-26T08:40:09.000Z",
"updateTime": "2024-02-26T08:55:53.238Z",
"name": "ImportName",
"startTime": "2024-02-26T08:55:53.232Z",
"endTime": "2024-02-26T08:53:03.000Z",
"status": {
"state": "IN_PROGRESS",
"message": "In Progress."
},
"objects": null,
"sourceOrgId": "0VOx1gScNH7dlDyA4tD8yX"
}
If you receive an error, you might see a response similar to the following example:
{
"error": {
"code": "MigrationSvc_040",
"message": "User does not have required permissions.",
"requestId": "2ataXVlgw3ydI1Yb2MA4sq"
}
}

Getting the import job status

Use a GET request to get the status of an import job or download an import job log.

GET request

To obtain status of the import job, use one of the following URIs, where <id> is the import job ID:
To download the import job log, use the following URI:
/public/core/v3/import/<id>/log

GET response

A request for an import job log returns the log in a text file.
A request for status returns the following import status information:
Field
Type
Description
id
String
ID of the import job.
createTime
String
Time the import job was created.
updateTime
String
Last time the import job was updated.
name
String
Name of the import job.
startTime
String
Start time of the import job.
endTime
String
End time of the import job.
status
Complex type
Status of the package upload.
state
String
Returned in the status object.
Status of the import job, such as IN PROGRESS, SUCCESS, or FAILED.
message
String
Returned in the status object.
Import job status message.
sourceOrgId
String
ID of the organization that created the export package that was imported.
objects
Collection
Objects included in the import.
sourceObject
Collection
Returned in the objects object.
Object included in the import.
id
String
Returned in the sourceObject object.
Global unique identifier for the object included in the import.
name
String
Returned in the sourceObject object.
Name of the objectincluded in the import.
path
String
Returned in the sourceObject object.
Complete path of the object included in the import.
type
String
Returned in the sourceObject object.
Type of object included in the import.
description
String
Returned in the sourceObject object.
Description of object included in the import.
targetObject
Collection
Returned in the objects object.
Target object.
id
String
Returned in the targetObject object.
Global unique identifier for the target object.
name
String
Returned in the targetObject object.
Name of the target object.
path
String
Returned in the targetObject object.
Complete path of the target object.
type
String
Returned in the targetObject object.
Type of target object.
description
String
Returned in the targetObject object.
Description of target object.
status
String
Returned in the targetObject object.
Status of the target object.
status
Complex type
Returned in the objects object.
Import status of the individual object.
state
String
Returned in the status object.
Import state of the individual object, such as IN PROGRESS, SUCCESS, or FAILED.
message
String
Returned in the status object.
Import status message for the individual object.

GET response example

If your request for an import job's status is successful, you might receive a response similar to the following example:
{
"id": "2oZb7vFI2QQg4ncd4AyCGn",
"createTime": "2017-10-26T08:40:09.000Z",
"updateTime": "2017-10-26T08:55:56.000Z",
"name": "ImportName",
"startTime": "2017-10-26T08:55:53.000Z",
"endTime": "2017-10-26T08:55:56.000Z",
"status": {
"state": "SUCCESSFUL",
"message": "Import completed successfully."
},
"objects": null,
"sourceOrgId": "0VOx1gScNH7dlDyA4tD8yX"
}
If your request included import status for individual objects, a successful response might be similar to the following example:
{
"id": "2oZb7vFI2QQg4ncd4AyCGn",
"createTime": "2017-10-26T08:40:09.000Z",
"updateTime": "2017-10-26T08:55:56.000Z",
"name": "ImportName",
"startTime": "2017-10-26T08:55:53.000Z",
"endTime": "2017-10-26T08:55:56.000Z",
"status": {
"state": "SUCCESSFUL",
"message": "Import completed successfully."
},
"objects": [
{
"sourceObject": {
"id": "ejZY66c19YUccBdbGwKG4P",
"name": "M1",
"path": "/Default",
"type": "MAPPING",
"description": "ab"
},
"targetObject": {
"id": null,
"name": "M1",
"path": "/default1",
"type": "MAPPING",
"description": null,
"status": null
},
"status": {
"state": "SUCCESSFUL",
"message": "Reuse existing."
}
},
{
"sourceObject": {
"id": "iIVBNZSpUKFg4N6g2PKUox",
"name": "abc_map",
"path": "/Default",
"type": "MAPPING",
"description": ""
},
"targetObject": {
"id": null,
"name": "abc_map",
"path": "/default1",
"type": "MAPPING",
"description": null,
"status": null
},
"status": {
"state": "SUCCESSFUL",
"message": "Overwrite existing."
}
}
],
"sourceOrgId": "0VOx1gScNH7dlDyA4tD8yX"
}
If you requested an import job log, the contents of the text file might be similar to the following example:
> OIE_002 INFO 2019-02-07T01:02:24.986Z Starting import operation.
Execution Client: API
Job Name: ImportExportMapping2-1541009746833
Organization: infa.doc
RequestId: 68srkYNhdSkdKCKfLBGxyd
User: janer2
> OIE_006 INFO 2019-02-07T01:02:25.416Z Successfully imported object [/Explore/ImportExport] of type [Project] id [3z0FL8tjqEbizNwVBV9LWR] to [/Explore/ImportExport]
> OIE_006 INFO 2019-02-07T01:02:25.931Z Successfully imported object [/SYS/CustFF] of type [SAAS_CONNECTION] id [76c7oud5pBzlyAC3tdfVK2] to [/SYS/CustFF]
> OIE_006 INFO 2019-02-07T01:02:26.598Z Successfully imported object [/Explore/ImportExport/ImportExportMapping2] of type [MAPPING] id [09wsnChCzUYl9OWCy6PKIe] to [/Explore/ImportExport/ImportExportMapping2]
> OIE_003 INFO 2019-02-07T01:02:26.598Z Finished import operation.
Job Name: ImportExportMapping2-1541009746833
Start Time: 2019-02-07T01:02:24.915Z
End Time: 2019-02-07T01:02:26.598Z
Started by: janer2
Start Method: API
Source Organization: infadoc2
Status: SUCCESSFUL