0% found this document useful (0 votes)
18 views611 pages

Informatica Cloud Services API Guide

The document is the REST API Reference for Informatica Intelligent Cloud Services, published in October 2025. It includes licensing information, trademark details, and outlines the structure of the API documentation, including chapters on API resources, request configurations, and job management. The document is subject to change and provides contact information for reporting issues.

Uploaded by

karthick.count
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
18 views611 pages

Informatica Cloud Services API Guide

The document is the REST API Reference for Informatica Intelligent Cloud Services, published in October 2025. It includes licensing information, trademark details, and outlines the structure of the API documentation, including chapters on API resources, request configurations, and job management. The document is subject to change and provides contact information for reporting issues.

Uploaded by

karthick.count
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Informatica® Intelligent Cloud Services

October 2025

REST API Reference


Informatica Intelligent Cloud Services REST API Reference
October 2025
© Copyright Informatica LLC 2016, 2025

This software and documentation are provided only under a separate license agreement containing restrictions on use and disclosure. No part of this document may be
reproduced or transmitted in any form, by any means (electronic, photocopying, recording or otherwise) without prior consent of Informatica LLC.

U.S. GOVERNMENT RIGHTS Programs, software, databases, and related documentation and technical data delivered to U.S. Government customers are "commercial
computer software" or "commercial technical data" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such,
the use, duplication, disclosure, modification, and adaptation is subject to the restrictions and license terms set forth in the applicable Government contract, and, to the
extent applicable by the terms of the Government contract, the additional rights set forth in FAR 52.227-19, Commercial Computer Software License.

Informatica, Informatica Cloud, Informatica Intelligent Cloud Services, PowerCenter, PowerExchange, and the Informatica logo are trademarks or registered trademarks
of Informatica LLC in the United States and many jurisdictions throughout the world. A current list of Informatica trademarks is available on the web at https://
[Link]/[Link]. Other company and product names may be trade names or trademarks of their respective owners.

Portions of this software and/or documentation are subject to copyright held by third parties. Required third party notices are included with the product.

The information in this documentation is subject to change without notice. If you find any problems in this documentation, report them to us at
infa_documentation@[Link].

Informatica products are warranted according to the terms and conditions of the agreements under which they are provided. INFORMATICA PROVIDES THE
INFORMATION IN THIS DOCUMENT "AS IS" WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING WITHOUT ANY WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND ANY WARRANTY OR CONDITION OF NON-INFRINGEMENT.

Publication Date: 2025-11-04


Table of Contents
Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Informatica Resources. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Informatica Documentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Informatica Intelligent Cloud Services web site. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Informatica Intelligent Cloud Services Communities. . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Informatica Intelligent Cloud Services Marketplace. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Data Integration connector documentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Informatica Knowledge Base. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Informatica Intelligent Cloud Services Trust Center. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Informatica Global Customer Support. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

Chapter 1: Informatica Intelligent Cloud Services REST API. . . . . . . . . . . . . . . . . . 13


Platform and service-specific REST APIs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
REST API versions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Header and body configuration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Request header. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Request body. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Return lists. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
JSON format example. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
XML format example. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Update modes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Date/time values. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Object IDs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Session IDs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
REST API responses. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Success object. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Error object. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
REST API rules and guidelines. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Documentation conventions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

Chapter 2: Platform REST API version 2 resources. . . . . . . . . . . . . . . . . . . . . . . . . . . 26


Activity logs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Logs for completed jobs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Logs for running jobs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Audit logs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Bundles. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
Bundle details. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
Bundle licenses. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Installing and uninstalling bundles. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Jobs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

Table of Contents 3
Starting a job. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Stopping a job. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Cleanly stopping a job. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Login. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Logging in. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Logging in using a JSON web token. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Logging in using SAML. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
Logging in using Salesforce. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
Logout. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
Logging out. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
Logging out and ending all sessions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
Organizations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
Organization management. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
Creating sub-organizations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
Runtime environments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
Getting runtime environment details. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
Creating, updating, and deleting Secure Agent groups. . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Managing Secure Agent group selections. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
Configuring Secure Agent service properties for Secure Agent groups. . . . . . . . . . . . . . . . . 89
Schedules. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
Secure Agents and services. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
Server time. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
Tasks. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
Users. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106

Chapter 3: Platform REST API version 3 resources. . . . . . . . . . . . . . . . . . . . . . . . . 111


Elastic runtime environments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
Environment configurations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
Images. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
Runtime environment associations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
Supplementary files. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
Tokens. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
Export and import. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
Exporting objects. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
Starting an export job. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
Getting the export job status. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
Downloading an export package. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
Identity providers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
Registering an identity provider. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
Getting identity provider details. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
Updating an identity provider . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
Deleting an identity provider. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
Importing objects. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151

4 Table of Contents
Uploading an import package. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
Starting an import job. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
Getting the import job status. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
IP addresses. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
Key rotation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
Getting key rotation interval settings. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
Changing key rotation intervals. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
Licenses. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
Getting license details. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
Updating a sub-organization's licenses. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
Login. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
Logout. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
Lookup. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
Metering data. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
Requesting summary IPU usage data. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
Requesting project-level metering data. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
Requesting asset-level data. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
Requesting job-level metering data. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
Getting the metering data export job status. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
Getting custom IPU alert configurations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
Downloading the metering data. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
Meter IDs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
Object state synchronization. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
fetchState. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
loadState. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
Objects. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
Finding an asset. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
Finding asset dependencies. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
Object permissions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
Creating permissions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
Updating permissions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
Deleting permissions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
Getting permission details. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
Checking permissions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
Passwords. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
Changing a password. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
Resetting a password. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
Privileges. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
Projects and folders. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
Creating a project. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
Updating a project. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
Deleting a project. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224

Table of Contents 5
Creating a folder. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
Updating a folder. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
Deleting a folder. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
Roles. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
Getting role details. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
Creating a role. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
Updating a role. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230
Deleting a role. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
SAML group and role mapping. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
Adding SAML group mappings. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
Adding SAML role mappings. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
Removing SAML group mappings. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
Removing SAML role mappings. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
Getting SAML group mapping details. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
Getting SAML role mapping details. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
Schedules. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
Getting schedule details. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
Creating a schedule. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243
Updating a schedule. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
Deleting a schedule. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252
SCIM tokens. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252
Listing SCIM tokens. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
Creating a SCIM token. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
Deleting a SCIM token. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254
Secure Agent services. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254
Security logs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255
Source control. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
Pulling objects. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
Pulling objects in a commit. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
Checking out objects. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268
Undoing a checkout. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
Checking in objects. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276
Getting commit details. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279
Getting commit history. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282
Comparing object versions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285
Getting repository connection details. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289
Getting the status of a source control operation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290
Tags. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292
Assigning tags. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293
Removing tags. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293
Users. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294
Getting user details. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295

6 Table of Contents
Creating a user. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298
Updating role assignments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300
Updating user group assignments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301
Deleting a user. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302
User groups. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302
Getting user group details. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
Creating a user group. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
Updating a user group. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306
Deleting a user group. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307

Chapter 4: Data Integration REST API. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308


Code tasks. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308
Create a code task . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309
Start a code task. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311
View a code task. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312
Status of a code task. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314
Cancel a code task. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316
Session logs for a code task. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316
Spark task results for a code task. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317
Connections. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318
CSV Flat File Connections. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325
FTP and SFTP Connections. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326
Microsoft Access Connections. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328
Microsoft Dynamics CRM Connections. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
Microsoft SQL Server Connections. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330
MySQL Connections. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331
NetSuite Connections. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331
ODBC Connections. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332
Oracle Connections. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333
Oracle CRM On Demand Connections. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334
Salesforce Connections. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335
SAP IDoc Reader Connections. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335
SAP IDoc Writer Connections. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336
Web Service Connections. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337
Connection migration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338
Connectors. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340
Data preview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342
Data services. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347
Dynamic mapping tasks. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
Logging in. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350
Getting dynamic mapping task details. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
Running a dynamic mapping task. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367
Fields. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368

Table of Contents 7
Getting field details. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368
Updating fields in flat files. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371
Updating fields in objects with non-flat file formats. . . . . . . . . . . . . . . . . . . . . . . . . . . . 372
File listeners. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374
Getting file listener details. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375
Creating a file listener. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379
Updating a file listener. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385
Deleting a file listener. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389
Starting a file listener. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390
Stopping a file listener. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391
Getting the status of a file listener. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391
Getting file listener job details. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392
Changing the owner of a file listener association. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393
File transfer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394
Transferring files to a remote server. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394
Receiving files from a remote server. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396
Getting job status. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398
File transfer tasks. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398
HTTPS file transfer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 411
Fixed-width configuration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416
Hierarchical mappers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421
Creating a hierarchical mapper. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421
Running a hierarchical mapper. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423
Getting hierarchical mapper metadata. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424
Job log files. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425
Logging in. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 426
Getting log information. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 427
Linear taskflows. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 432
Mappings. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437
Mapping tasks. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441
Mask rule parameter attributes for masking techniques. . . . . . . . . . . . . . . . . . . . . . . . . 460
Mask rule parameter attribute values. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 462
PowerCenter mapplets. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 466
Synchronization task conversion. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471
Testing compatibility. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471
Converting an asset to a data transfer task. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 472
Taskflows. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 474
Monitoring taskflow status with the status resource. . . . . . . . . . . . . . . . . . . . . . . . . . . 474
Publishing taskflows in bulk. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481
Unpublishing taskflows in bulk. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 483
Validating expressions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 484
Data Integration REST API supplemental information. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485

8 Table of Contents
Connector data types. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485
Connection user interface fields to REST API attributes mapping. . . . . . . . . . . . . . . . . . . 486

Chapter 5: File Ingestion and Replication REST API. . . . . . . . . . . . . . . . . . . . . . . . 488


Jobs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 488
Activity logs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 494
Tasks. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 501
View file ingestion and replication tasks. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 501
Create a file ingestion and replication task. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 505
Update a file ingestion and replication task. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 511
View the location of a file ingestion and replication task. . . . . . . . . . . . . . . . . . . . . . . . . 513

Chapter 6: Streaming Ingestion and Replication REST API. . . . . . . . . . . . . . . . . 515


Deploying, undeploying, starting, and stopping streaming ingestion and replication tasks. . . . . . . 515
Deploying a streaming ingestion and replication task. . . . . . . . . . . . . . . . . . . . . . . . . . . 515
Undeploying a streaming ingestion and replication task. . . . . . . . . . . . . . . . . . . . . . . . . 516
Starting a streaming ingestion and replication task. . . . . . . . . . . . . . . . . . . . . . . . . . . . 516
Stopping a streaming ingestion and replication task. . . . . . . . . . . . . . . . . . . . . . . . . . . 517
Copying a streaming ingestion and replication task. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 518
Updating a streaming ingestion and replication task. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 519
POST request. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 519
POST response. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 535
Getting details about a streaming ingestion and replication job. . . . . . . . . . . . . . . . . . . . . . . 548
Getting a list of streaming ingestion and replication jobs. . . . . . . . . . . . . . . . . . . . . . . . . . . 550
Job status. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 552
Job statistics. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 554
Job history. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 556

Chapter 7: RunAJob utility. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 558


RunAJob utility setup. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 559
Login properties. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 559
Job status. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 561
Log file detail. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 561
Java heap sizes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 562
Using the RunAJob utility. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 563
Task location. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 564
RunAJob utility arguments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 564
Job status codes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 566

Chapter 8: ParamSetCli utility. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 567


ParamSetCli utility requirements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 567
ParamSetCli utility setup. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 567
Login properties. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 568

Table of Contents 9
Using the ParamSetCli utility. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 569
ParamSetCli utility arguments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 569
Running the ParamSetCli commands. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 570

Chapter 9: REST API codes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 573


State codes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 573
Country codes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 574
Time zone codes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 581

Chapter 10: REST API resource quick references. . . . . . . . . . . . . . . . . . . . . . . . . . . 584


Platform resource quick reference. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 584
Data Integration resource quick reference. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 600

Index. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 607

10 Table of Contents
Preface
Use REST API Reference to learn how to use the Informatica Intelligent Cloud Services℠ REST API to interact
with your Informatica Intelligent Cloud Services organization.

Informatica Resources
Informatica provides you with a range of product resources through the Informatica Network and other online
portals. Use the resources to get the most from your Informatica products and solutions and to learn from
other Informatica users and subject matter experts.

Informatica Documentation
Use the Informatica Documentation Portal to explore an extensive library of documentation for current and
recent product releases. To explore the Documentation Portal, visit [Link]

If you have questions, comments, or ideas about the product documentation, contact the Informatica
Documentation team at infa_documentation@[Link].

Informatica Intelligent Cloud Services web site


You can access the Informatica Intelligent Cloud Services web site at [Link]
This site contains information about Informatica Cloud integration services.

Informatica Intelligent Cloud Services Communities


Use the Informatica Intelligent Cloud Services Community to discuss and resolve technical issues. You can
also find technical tips, documentation updates, and answers to frequently asked questions.

Access the Informatica Intelligent Cloud Services Community at:

[Link]

Developers can learn more and share tips at the Cloud Developer community:

[Link]
developers

Informatica Intelligent Cloud Services Marketplace


Visit the Informatica Marketplace to try and buy Data Integration Connectors, templates, and mapplets:

[Link]

11
Data Integration connector documentation
You can access documentation for Data Integration Connectors at the Documentation Portal. To explore the
Documentation Portal, visit [Link]

Informatica Knowledge Base


Use the Informatica Knowledge Base to find product resources such as how-to articles, best practices, video
tutorials, and answers to frequently asked questions.

To search the Knowledge Base, visit [Link] If you have questions, comments, or
ideas about the Knowledge Base, contact the Informatica Knowledge Base team at
KB_Feedback@[Link].

Informatica Intelligent Cloud Services Trust Center


The Informatica Intelligent Cloud Services Trust Center provides information about Informatica security
policies and real-time system availability.

You can access the trust center at [Link]

Subscribe to the Informatica Intelligent Cloud Services Trust Center to receive upgrade, maintenance, and
incident notifications. The Informatica Intelligent Cloud Services Status page displays the production status
of all the Informatica cloud products. All maintenance updates are posted to this page, and during an outage,
it will have the most current information. To ensure you are notified of updates and outages, you can
subscribe to receive updates for a single component or all Informatica Intelligent Cloud Services
components. Subscribing to all components is the best way to be certain you never miss an update.

To subscribe, on the Informatica Intelligent Cloud Services Status page, click SUBSCRIBE TO UPDATES. You
can choose to receive notifications sent as emails, SMS text messages, webhooks, RSS feeds, or any
combination of the four.

Informatica Global Customer Support


You can contact a Global Support Center through the Informatica Network or by telephone.

To find online support resources on the Informatica Network, click Contact Support in the Informatica
Intelligent Cloud Services Help menu to go to the Cloud Support page. The Cloud Support page includes
system status information and community discussions. Log in to Informatica Network and click Need Help to
find additional resources and to contact Informatica Global Customer Support through email.

The telephone numbers for Informatica Global Customer Support are available from the Informatica web site
at [Link]

12 Preface
Chapter 1

Informatica Intelligent Cloud


Services REST API
Use the Informatica Intelligent Cloud Services REST API to access information from your Informatica
Intelligent Cloud Services organization. You can also perform tasks such as create, update, and delete
connections and configure permissions.

To use the Informatica Intelligent Cloud Services REST API, you need a valid Informatica Intelligent Cloud
Services login and an understanding of REST API guidelines.

To configure a request using the REST API, use the appropriate resource and method, along with the
applicable objects. Informatica Intelligent Cloud Services returns the requested information, performs the
requested task, or returns an error and related messages.

Informatica Intelligent Cloud Services REST API supports the Transport Layer Security (TLS) version 1.2 and
TLS version 1.3 protocols.

Note that some of the features and functionality mentioned in this guide might not be available to your
organization due to licensing.

Platform and service-specific REST APIs


Informatica Intelligent Cloud Services includes common functionality that is the platform on which the
services in Informatica Intelligent Cloud Services are built. Each Informatica Intelligent Cloud service has
functionality that is only applicable to that service, in addition to platform functionality.

For example, tasks are applicable to most services in Informatica Intelligent Cloud Services. To get a list of
tasks in your organization, you use the platform resource, task. A mapping task is a type of task that is only
applicable to the Data Integration service. To get details about a mapping task or create a mapping task, you
use the Data Integration resource, mttask.

There are two versions of the Informatica Intelligent Cloud Services platform REST API. Use the version that
includes the resource you need. You can use both versions in the same session however the base URL and
headers are slightly different. For more information, see Chapter 2, “Platform REST API version 2
resources” on page 26 and Chapter 3, “Platform REST API version 3 resources” on page 111.

For information about Data Integration resources, see Chapter 4, “Data Integration REST API” on page 308.

13
REST API versions
Informatica Intelligent Cloud Services supports the platform REST API version 2 and version 3 resources, and
service-specific resources.

You can log in to Informatica Intelligent Cloud Services using the platform REST API version 2 or version 3
login resource. The version of any subsequent resource that you use does not need to match the version of
the login resource that you use to log in.

Note the following differences between REST API version 2 and version 3 calls:

Format

You can use the following formats depending upon which API version you use:

• Version 2 supports XML and JSON calls.


• Version 3 supports JSON calls.

Login URL

Use one of the following login URLs:

• For version 2, use [Link] region>.[Link]/ma/api/v2/user/login.


• For version 3, use [Link] region>.[Link]/saas/public/core/v3/login.

Your POD (Point of Deployment) region is based on the location of your Informatica Intelligent Cloud
Services data center. Use one of the following POD regions:

• For North America, use us


• For Europe, use em
• For Asia, use ap

The POD region is included in the URL you receive when you register with Informatica Intelligent Cloud
Services.

Base URL

The login response includes the base URL that you must include in subsequent calls.

The base URL includes the following components:

• The name and region of the POD that your organization uses, for example, [Link]-us.
• The Informatica Intelligent Cloud Services domain, [Link].
• The internal service that manages the API calls, for example, saas.

The following example is a base URL for an organization on the [Link]-us POD:
[Link]
In the login response, the attribute that provides the base URL depends on the API version that you use
to log in. For example:

• In a version 2 response, the attribute name is serverUrl.


• In a version 3 response, the attribute name is baseApiUrl.

Request URL

The URL that you use in requests differs between the version 2 and version 3 resources, for example:

• For version 2 resources, use <serverUrl>/api/v2/<REST API resource>, for example:


[Link]

14 Chapter 1: Informatica Intelligent Cloud Services REST API


• For version 3 resources, use <baseApiUrl>/public/core/v3/<REST API resource>, for example:
[Link]
Session ID

The login response includes a session ID that you must include in headers during the session. You can
use the same session ID for version 2 and version 3 resources. In the login response, the name of the
attribute for session ID depends on the API version that you use to log in. Use one of the following
attributes:

• For version 2 resources, use icSessionId in the header.


• For version 3 resources, use INFA-SESSION-ID in the header.

Header and body configuration


Configure the request header and request body as required, taking into consideration the format of the call
and the resource version that you use.

Request header
The request header is slightly different for version 2 and version 3 resources.

For version 2 calls, use the following format in the REST API request header:
<METHOD> <serverUrl>/<URI> HTTP/<HTTP version>
Content-Type: application/<json | xml>
Accept: application/<json | xml>
icSessionId: <SessionId>
For version 3 calls, use the following format in the REST API request header:
<METHOD> <baseApiUrl>/<URI> HTTP/<HTTP version>
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID: <SessionId>
Note that if you use a tool such as Postman, requests automatically include the HTTP version. If you enter
the HTTP version in the URL, the request is not successful because the HTTP version occurs twice in the
URL.

The following list describes the attributes of the version 2 and version 3 request header formats:

Attribute Required Description

METHOD Yes Method you want to use, such as GET, POST, or DELETE.

serverUrl Required for Base URL for all version 2 resources except login and register.
most v2 Use a placeholder for serverUrl, and replace the placeholder with the
resources Informatica Intelligent Cloud Services URL returned by the login resource.
For the login and register resources, use the URL listed in the resource.

baseApiUrl Required for Base URL for all version 3 resources except login.
most v3 Use a placeholder for baseApiUrl, and replace the placeholder with the
resources Informatica Intelligent Cloud Services URL returned by the login resource.
For the login resource, use the URL listed in the resource definition.

Header and body configuration 15


Attribute Required Description

URI Required for Resource URI.


most resources The URI includes the base URL and the resource name and can also include
parameters.
For the login and register resources, use the URL listed in the resource
definitions.

HTTP version Yes HTTP version that you are using.


Some tools such as Postman automatically include the HTTP version in the
header.

Content-Type Required for Format of the request. Use one of the following options:
POST requests - application/json. Reads request as JSON.
- application/xml. Reads request as XML. Only applicable to version 2
resources.
Default is json.

Accept No Request format that you want to receive. Use one of the following options:
- application/json. Sends response as JSON.
- application/xml. Sends response as XML. Only applicable to version 2
resources.
Default is json.

icSessionId Required for Informatica Intelligent Cloud Services session ID. Required for all version 2
most v2 resources except login and register.
resources Use a placeholder for sessionId, and replace the placeholder with the session ID
returned by the login resource.

INFA- Required for Informatica Intelligent Cloud Services session ID. Required for all version 3
SESSION-ID most v3 resources except login.
resources Use a placeholder for sessionId, and replace the placeholder with the session ID
returned by the login resource.

Request body
Use the request body to pass additional attributes for the resource. When you pass attributes in a request
body, you pass the attributes as part of an object.

For example, to log in with the login resource, you pass the required username and password attributes in a
login object.

Some requests include sub-objects for attributes. Declare the sub-objects before listing the related attributes.

JSON format
When you use the JSON format for version 2 REST API calls, you can optionally define a request object with
the @type attribute, as shown in the following examples:
{
"@type": "<request object>",
"<attribute1>": "<value1>",
"<attribute2>": "<value2>",
}

16 Chapter 1: Informatica Intelligent Cloud Services REST API


When an attribute includes an object, state the attribute and use the object name as follows:
{
"@type": "<request object>",
"<attribute1>": "<value1>",
"<attribute2>": {
"@type": "<attribute object>",
"<attributeA>": "<valueA>",
"<attributeB>": "<valueB>",}
"@type": "<attribute object>",
"<attributeD>": "<valueD>",
"<attributeE>": "<valueE>",}
"<attribute3>": "<value3>",
}
Note: For version 3 REST API calls, do not use the @type attribute.

XML format
When you use the XML format, define a request object as an enclosing set of tags, as follows:
<request object>
<attribute1>value1</attribute1>
<attribute2>value2</attribute2>
</request object>
When an attribute includes an object, enclose the attribute object within the attribute tags as follows:
<request object>
<attribute1>value1</attribute1>
<attribute2>
<attribute object>
<attributeA>valueA</attributeA>
<attributeB>valueB</attributeB>
</attribute object>
<attribute object>
<attributeC>valueC</attributeC>
<attributeD>valueD</attributeD>
</attribute object>
</attribute2>
<attribute3>value3</attribute3>
</request object>

Return lists
When the REST API returns a series of objects in XML, it encloses the list in the root tag, as follows:
<root>
<return object 1>
<attribute1>value1</attribute1>
<attribute2>value2</attribute2>
</return object 1>
<return object 2>
<attribute1>value1</attribute1>
<attribute2>value2</attribute2>
</return object 2>
</root>
In JSON, no additional attributes are used. The REST API encloses the list in square brackets ( [ ] ), as
follows:
[
{
"<attribute1>": "<value1>",
"<attribute2>": "<value2>",
}{
"<attribute1>": "<value1>",
"<attribute2>": "<value2>",
}
]

Header and body configuration 17


JSON format example
To log in using JSON, you might use the following request header and body:
POST [Link]
Content-Type: application/json
Accept: application/json

{
"username": "user@[Link]",
"password": "mypassword"
}
The login might return the following information:
{
"products": [
{
"name": "Integration Cloud",
"baseApiUrl": "[Link]
}
],
"userInfo": {
"sessionId": "9KA11tLGqxVcGeul8SQBK3",
"id": "9L1GFroXSDHe2IIg7QhBaT",
"name": "user",
"parentOrgId": "52ZSTB0IDK6dXxaEQLUaQu",
"orgId": "0cuQSDTq5sikvN7x8r1xm1",
"orgName": "MyOrg_INFA",
"groups": {},
"status": "Active"
}
}
You can then use the sessionId and the baseapiUrl to construct a request to obtain your organization's
license information, for example:
GET [Link]
52ZSTB0IDK6dXxaEQLUaQu
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID: 9KA11tLGqxVcGeul8SQBK3

XML format example


You can use XML calls with version 2 resources.

To log in using XML, you might use the following header and body:
POST [Link]
Content-Type: application/xml
Accept: application/xml

<login>
<username>useremail@[Link]</username>
<password>mypassword</password>
</login>
The login might return the following information:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<user>
<id>00000B03000000000001</id>
<orgId>00000B</orgId>
<name>user@[Link]</name>
<createTime>2012-06-14T15:00:00.000Z</createTime>
<updateTime>2012-06-14T15:00:00.000Z</updateTime>
<createdBy>System</createdBy>
<updatedBy>user@[Link]</updatedBy>

18 Chapter 1: Informatica Intelligent Cloud Services REST API


<firstName>Firstname</firstName>
<lastName>Lastname</lastName>
<title>Senior Software Engineer</title>
<password>********</password>
<phone>11111111111111111111</phone>
<timezone>America/Los_Angeles</timezone>
<serverUrl>[Link]
<icSessionId>IV4wOrJmd6YUtmKa8t</icSessionId>
</user>
You can then use the icSessionId and the serverUrl to construct a request to delete a schedule as follows.
The schedule ID is 000001D0000000000001.
DELETE [Link]
Accept: application/xml
icSessionId: IV4wOrJmd6YUtmKa8t
Note that Content-Type is not required because the DELETE method does not have additional attributes to
pass in the request body.

Update modes
For Data Integration calls, you can submit a POST request using full update mode or partial update mode.

Use partial mode to submit a POST request that only includes the changed object fields, instead of including
all of the object fields. For example, if you want to update the connection in an mttask object, you can submit
a POST request using partial mode that might look like the following example:
POST api/v2/mttask/<taskId>
Content-Type: application/json
Accept: application/json
icSessionId: <icSessionId>
Update-Mode: PARTIAL
{
"@type": "mtTask",
"parameters": [
{
"@type": "mtTaskParameter",
"name": "$NewSource$",
"type": "EXTENDED_SOURCE",
"sourceConnectionId": "<sourceConnectionId>"
}
]
}
If you do not use partial mode, you need to include the entire object in the request. By default, the REST API
uses full mode.

Partial mode is available for the following resources:

• connection
• fwConfig
• masterTemplate
• mttask
• schedule
• workflow

Update modes 19
When you submit a POST request in partial mode, format the request using JSON and include the following
line in the header:
Update-Mode=PARTIAL
Include the @type attribute for the updated object in the body.

Some fields are grouped in collections. To update a field that resides in a collection, include the key field for
the collection in the POST request. The following table lists the collections and corresponding key fields:

Resource/object Collection Key Field

fwConfig fwColumn name

masterTemplate mtParameter name


type

mttask mtTaskInOutParameter name

mttask sequenceDefinition txName

mttask mtTaskOverriddenField name

mttask mtTaskParameter name


type

extendedObject (object in mttask) objects name

workflow workflowTask taskId

Date/time values
With the REST API, Informatica Intelligent Cloud Services uses the UTC date format to pass all date/time
values.

Use the following UTC date format for all date/time values that you pass in requests. The same format is
used for all date/time values returned from Informatica Intelligent Cloud Services.
<yyyy>-<MM>-<dd>T<HH>:<mm>:<ss>.<SSS>Z
The following list describes the attributes of the UTC date format:

yyyy
Year expressed in four digits.

MM

Month expressed in two digits.

dd

Date of the month expressed in two digits.

Indicates the time portion of the format.

20 Chapter 1: Informatica Intelligent Cloud Services REST API


HH

Hour in the 24-hour format. For example, 0 for 12:00:00 a.m. and 23 for 11:00:00 p.m.

mm

Minutes expressed in two digits.

ss

Seconds expressed in two digits.

SSS

Microseconds expressed in three digits.

UTC time indicator.

For example, the following date string represents 3:00 pm on December 14, 2012:
2012-12-14T15:00:00.000Z

Object IDs
Many requests require an object ID, such as a connection ID or linear taskflow ID. To find the object ID that
you need, you can use the related GET request.

For example, to determine the linear taskflow ID that you need to update a linear taskflow, you can use a
workflow GET request to view the details of all linear taskflows in the organization. The return list of linear
taskflow details includes the linear taskflow ID. Similarly, to determine the ID of a user, you can perform a
user GET request.

Object IDs appear differently based on the REST API version you use. The REST API version 2 resources use
eight-character object IDs while version 3 resources use the FRS object ID. You can find the FRS object ID by
opening an asset in the Informatica Intelligent Cloud Services user interface. In the URL, the last string of
characters is the FRS ID. Other object IDs are not always readily available through the user interface.

Session IDs
When you log in to an Informatica Intelligent Cloud Services organization using the REST API, the login
resource returns the REST API session ID. You include this session ID in most subsequent REST API requests
during the session.

Prior to November 3, 2025, the session ID authentication type is always used after a user logs in. Effective
November 3, 2025, the organization administrator can configure the organization to use one of following
authentication types:

• Session ID. If the organization uses the session ID authentication type, the session ID expires after 30
minutes of inactivity. A grace period of up to 2 minutes might be included to account for any network or
unexpected delays.

Object IDs 21
• JSON Web Token (JWT). If the organization uses the JSON Web Token (JWT) authentication type, the
session ID value that's returned in a login response is a JWT token value. If you use custom scripts,
ensure that the scripts handle automatic re-authentication before the JWT token expires to avoid any
interruptions. For more information, see the JWT Support Knowledge article.

Include the session ID in the header for all API requests other than login requests. The attribute name in the
header can vary depending on the resource:

• For REST API version 2 resources, use the icSessionId attribute in the header to hold the session ID value.
• For REST API version 3 resources, use the INFA-SESSION-ID attribute in the header to hold the session ID
value.
• For other resources, use the IDS-SESSION-ID attribute in the header to hold the session ID value.

The following example shows how icSessionId is used in the header for a REST API version 2 call::
GET [Link]
Content-Type: application/xml
Accept: application/xml
icSessionId: <session ID>
The following example shows how INFA-SESSION-ID is used in the header for a REST API version 3 call:
GET [Link]
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID: 9KA11tLGqxVcGeul8SQBK3
You can submit a POST request to determine the status of a session ID. Use the following URI to submit the
request:
/api/v2/user/validSessionId
Include the following attributes in the request:

• userName. Your Informatica Intelligent Cloud Services user name.


• icToken. The session ID.

For example, you might use the following request:


POST [Link]
Content-Type: application/json
Accept: application/json

{
"@type": "validatedToken",
"userName": "user@[Link]",
"icToken": "9KA11tLGqxVcGeul8SQBK3"
}
The response returns whether the session ID is valid or not and the number of minutes left before the session
ID expires. For example, you might receive the following response:
{
"@type": "validatedToken",
"timeUntilExpire": 29,
"isValidToken": true
}
Note: The timeUntilExpire value changes to "0" when the session will expire in less than 1 minute. The
isValidToken value changes to "false" when the session expires. To avoid the risk of authentication failure,
reauthenticate when the timeUntilExpire value changes to 0.

22 Chapter 1: Informatica Intelligent Cloud Services REST API


REST API responses
A successful REST API response returns the requested object, an array of objects, or an HTTP success code.
A failed response returns an HTTP error code and can also return an error object.

Successul responses
The following table describes common successful responses to REST API requests:

Request type Response

GET For an information request, returns the requested object or an array of objects when applicable.
For an action request, returns the HTTP 200 success code. Can also return the REST API success
object.

POST Returns the object that you created or updated.


Can also return the HTTP 201 success code.

DELETE HTTP 200 success code.


Can also return the REST API success object.

For example, if you use a GET request to view a schedule, a successful response is the schedule object that
you requested. Or, if you use a POST request to update the time that the schedule runs, a successful
response is the schedule object that you updated, including the update. If you use a DELETE request to delete
a schedule that is no longer being used, a successful response is the 200 success code.

Failed responses
For a failed response, the REST API returns a standard HTTP error code and can also return an error object.
The following table describes some of the HTTP error codes that might be returned:

HTTP error Description


code

400 Bad request. Can be a field or format issue such as an invalid character or incorrect string length.

401 Authentication issue. For example, invalid credentials or invalid session IDs.

403 Generic error. For example, user doesn't have required permissions for a resource.

404 Resource can't be found.

500 Unexpected error. Generic error message that appears when an unexpected condition was
encountered.

502 Network issue.

503 Service unavailable. The server cannot handle the request.

REST API responses 23


Success object
When the REST API successfully performs an action, it returns a 200 or 201 success response. It might also
return a success object.

The success object has the following structure:


<xs:complexType name="success">
<xs:sequence>
<xs:element name="description" type="xs:string"/>
</xs:sequence>
</xs:complexType>

Error object
When the REST API encounters an error, it returns a REST API error object.

For REST API version 2 calls, the error object has the following structure:
{
"code": "UI_10000",
"description": "User name or password is not valid.",
"statusCode": 403,
"@type": "error"
}
For REST API version 3 calls, the error object has the following structure:
{
"error": {
"code": "IDS_085",
"message": "User name or password is not valid.",
"requestId": "9hr8e2ObIcChbwYftgDui7",
"details": null
}
}

REST API rules and guidelines


The following list is a summary of rules and guidelines to follow when working with the Informatica
Intelligent Cloud Services REST API:

• Use the login resource to start a REST API session. Reuse the session ID that's returned in the login
response in all of the requests that you make during the session.
You can use a placeholder for the session ID in request headers. Replace the placeholder with the session
ID data that's returned in the login response.
• A REST API session expires after 30 minutes of inactivity. However, best practice is to log out before the
session expires. To continue work with the REST API, start a new session.
• Do not include icSessionId or INFA-SESSION-ID in the request header for login and register resources.
• Don't log out of a REST API session until all the requests that you've sent have been executed.
• For all resources except login, use a placeholder for the base URL. For version 2 resources, replace the
placeholder with the URL returned in the serverUrl. For version 3 resources, replace the placeholder with
the URL returned in the baseApiUrl.

24 Chapter 1: Informatica Intelligent Cloud Services REST API


• All resources and attributes are case-sensitive.
• Specify the format of the request and response in the header. Use the Content-Type attribute to specify
the request format and the Accept attribute to specify the response format.
• If a request or response type isn't configured, Informatica Intelligent Cloud Services uses JSON by default.
• For requests in JSON that use version 2 resources, you can optionally use the @type attribute to define an
object. For requests in JSON that use version 3 resources, do not use the @type attribute.
• For requests in XML, use an enclosing <object name> tag to define an object.
• XML responses that include a list of objects return the objects enclosed in the <root> tag.
• For POST requests, you must include all fields in the request object unless you submit the request in
JSON format using partial mode. Partial mode is not applicable to most resources. By default, the REST
API uses full mode.
• Where indicated, enclose POST request attributes in the specified object. When no object is specified,
include attributes in the request body.

Documentation conventions
Informatica Intelligent Cloud Services REST API documentation uses the following conventions:

• Methods are in capital letters, such as GET.


• Request syntax uses the following conventions:
- Variables are enclosed in angle brackets ( < > ), such as <id> for a user ID.

- When listing a choice of attribute values, options are separated by a pipe ( | ).

- Optional attributes are in italics.

Documentation conventions 25
Chapter 2

Platform REST API version 2


resources
The REST API version 2 resources in this section apply to multiple services in Informatica Intelligent Cloud
Services.

When you use version 2 resources, note the following rules:

• Use JSON or XML format.


• Use the serverUrl value from the login response as the base URL. For example:
[Link]
• Use the following URI:
/api/v2/<API name>
• Use the following request header format:
<METHOD> <serverUrl>/<URI> HTTP/<HTTP version>
Content-Type: application/json
Accept: application/json
icSessionId: <SessionId>
In the following example, the serverUrl is [Link] and the URI
is /api/v2/agent:
<METHOD> [Link] HTTP/1.1
Content-Type: application/json
Accept: application/json
icSessionId: IV4wOrJmd6YUtmKa8t
Note: If you use a tool such as Postman that automatically includes the HTTP version, do not enter the HTTP
version in the URL. If the HTTP version appears twice in the URL, the request fails.

Activity logs
You can use the REST API to request log information for completed and running jobs.

26
Logs for completed jobs
Use this resource to request log information for completed jobs from the Monitor service. You can also
request error logs and session logs. To request log information for jobs that are running, use the
activityMonitor resource.

GET Request
You can request all of the log information or filter the log response. To request information from the log, use
the following URI:
/api/v2/activity/activityLog
To request information for a specific log ID, use the following URI:
/api/v2/activity/activityLog/<id>
To request information for a specific run ID, include the run ID and task ID in the following URI:
/api/v2/activity/activityLog?runId=<runId>&taskId=<taskId>
Note: The task ID is required whenever the run ID is included in a request.

To request information for a specific task, include the task ID in the following URI:
/api/v2/activity/activityLog?taskId=<taskId>
To specify the number of rows to skip, use the following URI:
/api/v2/activity/activityLog?offset=<offset>
To specify a row limit, use the following URI:
/api/v2/activity/activityLog?rowLimit=<rowLimit>
You can use any combination of these options. For example, you can use the following URI:
/api/v2/activity/activityLog?
offset=<offset>&rowLimit=<rowLimit>&taskId=<taskId>&runId=<runId>
You can also use the activityLog resource to get a session log. To get a session log, use the following URI:
/api/v2/activity/activityLog/<id>/sessionLog
You can use the following optional attributes in the activityLog GET URI:

Field Description

id Log entry ID.


Include this attribute if you want to receive information for a specific ID.

runId Job ID associated with the log entry ID. Whenever runId is included in a request, taskId is required.

taskId Task ID associated with the log entry ID. If taskId is not specified, all activityLog entries for all tasks are
returned.

offset The number of rows to skip. For example, you might want to skip the first three rows.

rowLimit The maximum number of rows to return. The maximum number you can specify is 1000.
If you omit this attribute, the activityLog returns all available rows, up to a maximum of 200 rows.

GET Response
Returns an activityLogEntry object for each row in the log or returns an activityLogEntry object for the
specified ID. Returns the error object if errors occur.

Activity logs 27
When you request information for each row in the log, the activityLogEntry object includes the following
attributes:

Field Type Description

id String Log entry ID.

type String The type of task. For Data Integration, returns one of the following codes:
- DMASK. Masking task.
- DRS. Replication task.
- DSS. Synchronization task.
- MTT. Mapping task.
- PCS. PowerCenter task.
- WORKFLOW. Linear taskflow.

objectId String Task ID.

objectName String Name of the task.

runId Long ID for the task run.

agentId String Agent that runs the task.

runtimeEnvironmentId String Runtime environment that runs the task.

startTime Date/time Start time for the task or linear taskflow. Uses Eastern Time Zone (ET).

endTime Date/time End time for the task or linear taskflow. Uses Eastern Time Zone (ET).

startTimeUtc Date/time Start time for the task or linear taskflow. Uses Coordinated Universal Time
(UTC).

endTimeUtc Date/time End time for the task or linear taskflow. Uses Coordinated Universal Time
(UTC).

state Short Indicates whether the task completed successfully. Returns one of the following
codes:
- 1. The task completed successfully.
- 2. The task completed with errors.
- 3. The task failed to complete.

failedSourceRows Long Number of rows that the task failed to read from the source.

successSourceRows Long Number of rows that the task successfully read from the source.

failedTargetRows Long Number of rows that the task failed to write to the target.

successTargetRows Long Number of rows that the task successfully wrote to the target.

scheduleName String Schedule name, if task was initiated by a schedule.

entries Indicates the start of information for a child object.

28 Chapter 2: Platform REST API version 2 resources


The entries object includes activityLogEntry child objects. The child objects include the following attributes:

Field Type Description

id String Activity log entry item ID.


Note: You can't use the ID from an activityLogEntry child object to request
information for a specific log.

type String The type of task. For Data Integration, returns one of the following codes:
- DMASK. Masking task.
- DRS. Replication task.
- DSS. Synchronization task.
- MTT. Mapping task.
- PCS. PowerCenter task.
- WORKFLOW. Linear taskflow.

objectName String Name of the task.

runId String ID for the task run.

agentId String Agent that runs the task.

runtimeEnvironmentId String Runtime environment that runs the task.

startTime Date/time Start time for the task or linear taskflow. Uses Eastern Time Zone (ET).

endTime Date/time End time for the task or linear taskflow. Uses Eastern Time Zone (ET).

startTimeUtc Date/time Start time for the task or linear taskflow. Uses Coordinated Universal Time
(UTC).

endTimeUtc Date/time End time for the task or linear taskflow. Uses Coordinated Universal Time
(UTC).

state Short Indicates whether the task completed successfully. Returns one of the
following codes:
- 1. The task completed successfully.
- 2. The task completed with errors.
- 3. The task failed to complete.
- 4. The task has not started.

UIState Short Used for internal purposes only.

failedSourceRows Long Number of rows that the task failed to read from the source.

successSourceRows Long Number of rows that the task successfully read from the source.

failedTargetRows Long Number of rows that the task failed to write to the target.

successTargetRows Long Number of rows that the task successfully wrote to the target.

errorMsg String Error message associated with the job.

startedBy String User who started the task.

Activity logs 29
Field Type Description

runContextType String Method through which the task was initiated. Returns one of the following
options:
- ICS_UI. Task was initiated through the user interface.
- SCHEDULER. Task was initiated through the task scheduler.
- REST-API. Task was initiated through the REST API.
- OUTBOUND MESSAGE. Task was initiated through an outbound message.

entries Indicates the start of information for a child object.

subTaskEntries Indicates the start of information for subtask child objects.

logEntryItemAttrs Indicates the start of metadata about the task, including the task's location and
the number compute units the job consumed.

sessionVariables Indicates the start of advanced session properties provided in the task.

totalSuccessRows Long Total number of rows that were successfully read from the source and written
to the target.

totalFailedRows Long Total number of rows that were not read from the source and written to the
target.

stopOnError Boolean Determines the runtime environment action to take when a nonfatal error
occurs. Includes the following values:
- True. The linear taskflow stops when an error occurs.
- False. The linear taskflow continues to process when an error occurs.

hasStopOnErrorRecord Boolean Indicates whether the task encountered an error and stopped.

contextExternalId String Task ID of the parent object.

isStopped Boolean Indicates whether the task was stopped by the user. A value of true is
possible if the task completed with errors or failed to complete.

transformationEntries Includes information in an entry object for each transformation.

When you request log information for a specific ID, the activityLogEntry object includes the following
attributes:

Field Type Description

id String Log entry ID.

type String The type of task. For Data Integration, returns one of the following codes:
- DMASK. Masking task.
- DRS. Replication task.
- DSS. Synchronization task.
- MTT. Mapping task.
- PCS. PowerCenter task.
- WORKFLOW. Linear taskflow.

objectId String Task ID.

30 Chapter 2: Platform REST API version 2 resources


Field Type Description

objectName String Name of the task.

runId String ID for the task run.

agentId String Agent that runs the task.

runtimeEnvironmentId String Runtime environment where the task runs.

startTime Date/time Start time for the task or linear taskflow. Uses Eastern Time Zone (ET).

endTime Date/time End time for the task or linear taskflow. Uses Eastern Time Zone (ET).

startTimeUtc Date/time Start time for the task or linear taskflow. Uses Coordinated Universal Time
(UTC).

endTimeUtc Date/time End time for the task or linear taskflow. Uses Coordinated Universal Time
(UTC).

state Short Indicates whether the task completed successfully. Returns one of the
following codes:
- 1. The task completed successfully.
- 2. The task completed with errors.
- 3. The task failed to complete.
- 4. The task has not started.

UIState Short Used for internal purposes only.

isStopped Boolean Indicates whether the task was stopped by the user. A value of true is
possible if the task completed with errors or failed to complete.

failedSourceRows Long Number of rows that the task failed to read from the source.

successSourceRows Long Number of rows that the task successfully read from the source.

failedTargetRows Long Number of rows that the task failed to write to the target.

successTargetRows Long Number of rows that the task successfully wrote to the target.

errorMsg String Error message associated with the job.

startedBy String User who started the task.

runContextType String Method through which the task was initiated. Returns one of the following
options:
- UI. Task was initiated through the user interface.
- SCHEDULER. Task was initiated through the task scheduler.
- REST-API. Task was initiated through the REST API.
- OUTBOUND MESSAGE. Task was initiated through an outbound message.

scheduleName String Schedule name, if task was initiated by a schedule.

orgId String Organization ID.

Activity logs 31
Field Type Description

totalSuccessRows Long Total number of rows that were successfully read from the source and written
to the target.

totalFailedRows Long Total number of rows that were not read from the source and written to the
target.

logFilename String The name of the generated log file.

errorFilename String The name of the generated error file.

errorFileDir String The location of the error file on the Secure Agent machine.

connType String Connection type.

stopOnError Boolean Determines the runtime environment action to take when a nonfatal error
occurs. Includes the following values:
- True. The linear taskflow stops when an error occurs.
- False. The linear taskflow continues to process when an error occurs.

items Includes an activityLogEntryItem object for each task.

type String Included in the activityLogEntryItem object.


The type of task. For Data Integration, returns one of the following codes:
- DMASK. Masking task.
- DRS. Replication task.
- DSS. Synchronization task.
- MTT. Mapping task.
- PCS. PowerCenter task.
- WORKFLOW. Linear taskflow.

objectId String Included in the activityLogEntryItem object.


Task ID.

objectName String Included in the activityLogEntryItem object.


Name of the task.

runId String Included in the activityLogEntryItem object.


ID for the task run.

agentId String Included in the activityLogEntryItem object.


Agent that ran the task.

runtimeEnvironmentId String Included in the activityLogEntryItem object.


Runtime environment where the task ran.

startTime Date/time Included in the activityLogEntryItem object.


Start time for the task or linear taskflow. Uses Eastern Time Zone (ET).

endTime Date/time Included in the activityLogEntryItem object.


End time for the task or linear taskflow. Uses Eastern Time Zone (ET).

32 Chapter 2: Platform REST API version 2 resources


Field Type Description

startTimeUtc Date/time Included in the activityLogEntryItem object.


Start time for the task or linear taskflow. Uses Coordinated Universal Time
(UTC).

endTimeUtc Date/time Included in the activityLogEntryItem object.


End time for the task or linear taskflow. Uses Coordinated Universal Time
(UTC).

state String Included in the activityLogEntryItem object.


Indicates whether the task completed successfully. Returns one of the
following codes:
- 1. The task completed successfully.
- 2. The task completed with errors.
- 3. The task failed to complete.

isStopped Boolean Included in the activityLogEntryItem object.


Indicates whether the task was stopped by the user. A value of true is
possible if the task completed with errors or failed to complete.

errorMsg String Included in the activityLogEntryItem object.


Error message associated with the job.

connType String Included in the activityLogEntryItem object.


Connection type.

children String Included in the activityLogEntryItem object.


Returns an activityLogEntryItem object for each table in the linear taskflow.

startedBy String User who started the task.

runContextType String Method through which the task was initiated. Returns one of the following
options:
- UI. Task was initiated through the user interface.
- SCHEDULER. Task was initiated through the task scheduler.
- REST-API. Task was initiated through the REST API.
- OUTBOUND MESSAGE. Task was initiated through an outbound message.

scheduleName String Schedule name, if task was initiated by a schedule.

transformationEntries Includes information in a transformationLogEntry object for each


transformation.

id String Included in the transformationLogEntry object.


Transformation ID.

txName String Included in the transformationLogEntry object.


Transformation name.
For target transformations, returns the target object name.

txType String Included in the transformationLogEntry object.


Transformation type.

Activity logs 33
Field Type Description

successRows Long Included in the transformationLogEntry object.


Number of successful rows for the transformation.

affectedRows Long Included in the transformationLogEntry object.


Number of rows affected by the defined task operation.
Applies to target transformations in data transfer tasks and mapping tasks
based on mappings that are not configured for full SQL ELT optimization.
Doesn't apply to mappings in SQL ELT mode or advanced mappings.

failedRows Long Included in the transformationLogEntry object.


Number of failed rows for the transformation.

sequenceValues Returns information generated from a task that includes the sequence
generator transformation. Includes a sequenceValueLogEntry object for each
transformation.

txName String Included in the sequenceValueLogEntry object.


Transformation name.
For target transformations, returns the target object name.

nextValue String Included in the sequenceValueLogEntry object.


The last value generated by the task.

inOutParameterValues The in-out parameter values used in the task. Includes an


inOutParameterValueLogEntry for each parameter.

name String Included in the inOutParameterValueLogEntry object.


Parameter name.

value String Included in the inOutParameterValueLogEntry object.


Parameter value.

GET Example
To request 20 rows of information returned from the log in JSON format, you might use the following request:
GET <serverUrl>/api/v2/activity/activityLog?rowLimit=20
Content-Type: application/json
Accept: application/json
icSessionId: <icSessionId>
A successful request returns a list: an activityLogEntry object for each entry returned from the log.

The following text is a sample return in JSON:


[
{
"@type": "activityLogEntry",
"id": "000001C100000000000C",
"type": "DRS",
"objectName": "drstask1",
"runId": 1,
"runtimeEnvironmentId": "00000C25000000000002",
"startTime": "2012-07-30T13:30:30.000Z",
"endTime": "2012-07-30T13:32:30.000Z",
"startTimeUtc": "2012-07-30T17:30:30.000Z",
"endTimeUtc": "2012-07-30T17:32:30.000Z",

34 Chapter 2: Platform REST API version 2 resources


"state": 1,
"failedSourceRows": 0,
"successSourceRows": 39,
"failedTargetRows": 0,
"successTargetRows": 39,
"errorMsg": null,
"entries": [
{
"@type": "activityLogEntry",
"id": "128964732",
"type": "DRS",
"objectName": "Contact",
"runId": 0,
"runtimeEnvironmentId": "00000C25000000000002",
"agentId: "01000008000000000006",
"startTime": "2012-07-30T13:32:31.000Z",
"endTime": "2012-07-30T13:35:31.000Z",
"startTimeUtc": "2012-07-30T17:32:31.000Z",
"endTimeUtc": "2012-07-30T17:35:31.000Z",
"state": 1,
"isStopped": FALSE,
"failedSourceRows": 0,
"successSourceRows": 39,
"failedTargetRows": 0,
"successTargetRows": 39,
"errorMsg": "No errors encountered.",
"entries": []
},
]
},
{
"@type": "activityLogEntry",
"id": "010000C1000000000PGP",
"type": "MTT_TEST",
"objectId": "0100000Z00000000001N",
"objectName": "Mapping-MultiSource",
"runId": 12,
"startTime": "2020-03-27T08:05:56.000Z",
"endTime": "2020-03-27T08:06:07.000Z",
"startTimeUtc": "2020-03-27T12:05:56.000Z",
"endTimeUtc": "2020-03-27T12:06:07.000Z",
"state": 2,
"failedSourceRows": 0,
"successSourceRows": 800,
"failedTargetRows": 200,
"successTargetRows": 600,
"startedBy": "di@[Link]",
"runContextType": "ICS_UI",
"entries": [
{
"@type": "activityLogEntry",
"id": "118964723",
"type": "MTT_TEST",
"objectName": "",
"runId": 12,
"agentId": "01000008000000000004",
"runtimeEnvironmentId": "01000025000000000004",
"startTime": "2020-03-27T08:05:56.000Z",
"endTime": "2020-03-27T08:06:07.000Z",
"startTimeUtc": "2020-03-27T12:05:56.000Z",
"endTimeUtc": "2020-03-27T12:06:07.000Z",
"state": 2,
"failedSourceRows": 0,
"successSourceRows": 800,
"failedTargetRows": 200,
"successTargetRows": 600,
"errorMsg": null,
"startedBy": "di@[Link]",
"runContextType": "ICS_UI",
"entries": [],

Activity logs 35
"subTaskEntries": [],
"logEntryItemAttrs": {
"CONSUMED_COMPUTE_UNITS": "0.0",
"ERROR_CODE": "0",
"IS_SERVER_LESS": "false",
"REQUESTED_COMPUTE_UNITS": "0.0",
"Session Log File Name": "s_mtt_0Sr7LdcbAG2ldG33Lp8koQ_2.log"
},
"totalSuccessRows": 0,
"totalFailedRows": 0,
"stopOnError": false,
"hasStopOnErrorRecord": false,
"contextExternalId": "0100000Z00000000001N",
"transformationEntries": [
{
"@type": "transformationLogEntry",
"id": "141332309",
"txName": "FFSource2",
"txType": "SOURCE",
"successRows": 600,
"failedRows": 0
},
{
"@type": "transformationLogEntry",
"id": "141332310",
"txName": "FFSource1",
"txType": "SOURCE",
"successRows": 200,
"failedRows": 0
},
{
"@type": "transformationLogEntry",
"id": "141332311",
"txName": "[Link]",
"txType": "TARGET",
"successRows": 600,
"affectedRows": 600,
"failedRows": 0
},
{
"@type": "transformationLogEntry",
"id": "141332312",
"txName": "MYSQLTarget",
"txType": "TARGET",
"successRows": 0,
"affectedRows": 0,
"failedRows": 200
}
]
}
]
}
]

Note: If you request log information for a job that includes both Data Integration Server and advanced cluster
subtasks, the response contains a transformation log entry for a temporary target.

Error Log Requests


You can request an error log from the server.

To request an error log from the server for a specific log ID, use the following URI:
/api/v2/activity/errorLog/id

36 Chapter 2: Platform REST API version 2 resources


To retrieve an error log from the server, you might use the following request:
GET <server URL>/api/v2/activity/errorLog/000002C10000000002BG HTTP/1.0
Accept:application/json
icSessionId: <icSessionId>
The server returns the error log as a string, as shown in the following example:
"Col1","Col2","Error"

"05/11/2015 00:00:00.000000000","05/11/2015 00:00:00.000000000","ERROR: Target table


[test] has no keys specified."

"05/11/2015 00:00:00.000000000","05/11/2015 00:00:00.000000000","ERROR: Target table


[test] has no keys specified."

"05/11/2015 00:00:00.000000000","05/11/2015 00:00:00.000000000","ERROR: Target table


[test] has no keys specified."

"05/11/2015 00:00:00.000000000","05/11/2015 00:00:00.000000000","ERROR: Target table


[test] has no keys specified."

"05/11/2015 00:00:00.000000000","05/11/2015 00:00:00.000000000","ERROR: Target table


[test] has no keys specified."

Session Log Requests


You can download session logs for all task types using the sessionLog API. For tasks that have subtasks
such as replication tasks and linear taskflows, you can download a ZIP file that contains all of the session
logs in the hierarchy. For replication tasks, which have two levels of tasks, you can specify an itemId to return
a session log for a subtask if you do not want all of the session logs. For linear taskflows, which have three
levels of tasks, you can specify an itemId or childItemId to return a session log for a particular subtask.

Use the following URI to download session logs:


/saas/api/v2/activity/activityLog/<Top_Level_Log_Entry_Id>/sessionLog?itemId=<child-log-
entry-item-id>&childItemId=<child-log-entry-item-id>
The following example requests include a request for a specific session log and requests for session logs for
subtasks:

• To request a session log, which may return a ZIP file if the task is a replication task or linear taskflow, you
might use the following request:
/saas/api/v2/activity/activityLog/000001C1000000000591/sessionLog
• To request a session log for a particular subtask for a replication task or linear taskflow, you might use
the following request:
/saas/api/v2/activity/activityLog/000001C1000000000591/sessionLog?itemId=233
• To request a session log for a sub-subtask in a linear taskflow, you might use the following request:
/saas/api/v2/activity/activityLog/000001C1000000000591/sessionLog?
itemId=233&childItemId=234

Logs for running jobs


Use this resource to request log information for running jobs from the Monitor service. To request log
information for completed jobs, use the activityLog resource.

GET Request
To request log information about running jobs, use the following URI:
/api/v2/activity/activityMonitor?details=<true|false>
You can use the following attribute in the activityMonitor GET URI:

Activity logs 37
details

Optional.

Log detail to be returned from Informatica Intelligent Cloud Services. Use one of the following options:

• true. Returns log information for tasks, linear taskflows, and child objects. Child objects can include
tasks within linear taskflows, and objects within replication tasks.
• false. Returns log information for tasks and linear taskflows.

Default is false. If you omit this optional attribute, Monitor does not return additional details.

GET Response
Returns an activityMonitorEntry object for each row in the log. Returns the error object if errors occur.

The activityMonitorEntry object includes the following GET response attributes:

Field Type Description

id String Log entry ID.

type String The type of task. Returns one of the following codes:
- DMASK. Masking task.
- DRS. Replication task.
- DSS. Synchronization task.
- MAPPING. Job type of the sub job when you run a dynamic mapping task.
- MTT. Mapping task.
- MTT_DP. Job type when you run data preview for a mapping.
- MTT_DP_CDIE. Job type when you run data preview for a mapping in
advanced mode.
- MTT_TEST. Job type when you use the Run button in the Mapping Designer.
- PCS. PowerCenter task.
- WORKFLOW. Linear taskflow.

taskId String Task ID.

taskName String Task name.

objectName String Source object used in the task, or the replication object being processed.

runId Long ID for the task run.

startTime Date/time Start time for the task or linear taskflow. Uses Eastern Time Zone (ET).

endTime Date/time End time for the task or linear taskflow. Uses Eastern Time Zone (ET).

startTimeUtc Date/time Start time for the task or linear taskflow. Uses Coordinated Universal Time
(UTC).

endTimeUtc Date/time End time for the task or linear taskflow. Uses Coordinated Universal Time
(UTC).

executionState String State of the task. Returns one of the following codes:
- QUEUED
- INITIALIZED
- RUNNING
- STOPPING
- FAILED
FAILED can be returned for linear taskflow subtasks only.

38 Chapter 2: Platform REST API version 2 resources


Field Type Description

failedSourceRows Long Number of rows that were not read from the source.

successSourceRows Long Number of rows that were successfully read from the source.

failedTargetRows Long Number of rows that were not written to the target.

successTargetRows Long Number of rows that were successfully written to the target.

errorMsg String Error message associated with the job.

entries Indicates the start of information for a child object. A child object might be a
task within a linear taskflow, or an object in a replication task.

agentId String Agent used for the activity.

runtimeEnvironmentId String Runtime environment used for the activity.

startedBy String User who started the task.

runContextType String Method through which the task was initiated. Includes the following values:
-UI. Task was initiated through the Data Integration user interface.
-SCHEDULER. Task was initiated through the task scheduler.
-REST-API. Task was initiated through the REST API.
-OUTBOUND MESSAGE. Task was initiated through an outbound message.

scheduleName String Schedule name, if task was initiated by a schedule.

callbackURL String Status of the job.

GET Example
To return log information including details about child objects in XML, you might use the following request:
GET <serverUrl>/api/v2/activity/activityMonitor?details=true
Content-Type: application/xml
Accept: application/xml
icSessionId: <icSessionId>
A successful request returns an activityMonitorEntry object for each item returned from Monitor.

The following text is a sample return in XML:


<root>
<activityMonitorEntry>
<id>000001C100000000000D</id>
<type>DSS</type>
<objectName>dss-f2f</objectName>
<runId>0</runId>
<startTime>2012-07-30T13:30:00.000Z</startTime>
<endTime></endTime>
<startTimeUtc>2012-07-30T17:30:00.000Z</startTimeUtc>
<endTimeUtc></endTimeUtc>
<executionState>RUNNING</executionState>
<failedSourceRows>0</failedSourceRows>
<successSourcerows>938</successSourceRows>
<failedTargetRows>0</failedTargetRows>
<successTargetRows>596</successTargetRows>
<errorMsg> </errorMsg>
<entries> </entries>
<agentId>00000C08000000000003</agentId>
<runtimeEnvironmentId>00000C25000000000002</runtimeEnvironmentId>

Activity logs 39
</activityMonitorEntry>
<activityMonitorEntry>
<id>000001C500000000000L</id>
<type>PCS</type>
<objectName>pcs-lookup</objectName>
<runId>2</runId>
<startTime>2012-07-30T13:30:03.001Z</startTime>
<endTime>2012-07-30T13:30:03.010Z</endTime>
<startTimeUtc>2012-07-30T17:30:03.001Z</startTimeUtc>
<endTimeUtc>2012-07-30T17:30:03.010Z</endTimeUtc>
<executionState>COMPLETE</executionState>
<failedSourceRows>0</failedSourceRows>
<successSourcerows>688</successSourceRows>
<failedTargetRows>0</failedTargetRows>
<successTargetRows>688</successTargetRows>
<errorMsg> </errorMsg>
<entries> </entries>
<agentId>00000C08000000000003</agentId>
<runtimeEnvironmentId>00000C25000000000002</runtimeEnvironmentId>
</activityMonitorEntry>
</root>

Audit logs
Use this resource to request entries from the audit log.

GET Request
To request the most recent 200 entries in the audit log, use the following URI:
/api/v2/auditlog
To request a specific batch of audit log entries, define the batch size and request a batch number with the
following URI:
/api/v2/auditlog?batchId=<batchId>&batchSize=<batchSize>
Include the following information in the GET URI:

Field Required Description

batchSize Yes Number of entries to include in a batch.

batchId Yes The batch that you want to view.


Use 0 for the first batch, which contains the most recent audit log entries.
For example, to view entries 26-50, use a batch size of 25, and request batch 1.

GET Response
Returns an auditLogEntry object for each audit log entry returned. Returns the error object if errors occur.

40 Chapter 2: Platform REST API version 2 resources


The auditLogEntry object includes the following attributes:

Field Type Description

id String Audit log entry ID.

version Int Version.

orgId String Organization ID.

username String User who performed the action.

entryTime Date/time Time the action occurred. Uses Eastern Time Zone (ET).

entryTimeUTC Date/time Time the action occurred.


Uses Coordinated Universal Time (UTC).

objectId String ID of the object used.

objectName String Name of the object used.

Audit logs 41
Field Type Description

category String Category of audit log entry. Returns one of the following codes:
- AGENT. Secure Agent installation, configuration, status updates, and operational
activities.
- AGREEMENT. Subscription agreement updates, renewals, and changes to terms of
service.
- AUTH. Authorization events such as user logins, logouts, password changes, and
permission changes.
- B2BGW_CUSTOMER. B2B Gateway customer interactions such as data exchange or
transaction processing.
- B2BGW_MONITOR. B2B Gateway monitoring activities such as performance tracking
and event logging.
- B2BGW_SUPPLIER. B2B Gateway supplier interactions such as transaction and
communication logging.
- BUNDLE. Creating, modifying, and deploying bundles.
- CONNECTION. Creating, modifying, and deleting connections.
- CONNECTOR. Informatica Cloud Connector setup, configuration, and updates.
- CUSTOM_FUNC. Mapplets or user-defined processes or functions.
- CUSTOM_SOURCE. Custom sources such as saved queries or custom data
connections.
- DATA_FILE. Creating, uploading, downloading, modifying, and deleting files.
- [Link] events such as applying, updating, and removing masking policies
on sensitive data.
- DOMAIN. Domain configuration changes and updates.
- DQA. Data assessment such as data quality checks, reporting, and issue resolution.
- DRS. Replication events such as configuring and running replication tasks and getting
status updates.
- DSS. Synchronizationevents when synchronizing data between systems.
- DTEMPLATE. Creating, modifying, and running mappings.
- EDITION. Informatica Cloud edition events such as edition changes in the
organization or edition updates.
- EXT_CONNECTION. Creating, modifying, and deleting exernal connections such as
connections stored on a local Secure Agent.
- GUIDE. Accessing, creating, and modifying user guides and process guides.
- MI_TASK. Setting up and running file ingestion tasks and getting status updates.
- MIGRATE. Migrating data, configurations, and applications between environments.
- MTT. Creating, modifying, running, and deleting mapping tasks.
- OBJECT_ACL. Object permissions including setting, modifying, and removing access
control lists (ACLs) on objects.
- ORG. Creating, modifying, and deleting organizations.
- ORG_EDITION. Changes to the organization edition association, such as reassigning
an organization to a new edition or updating edition features.
- PACKAGE. Configuring, updating, and deploying packages.
- PCS. PowerCenter events that involve workflows, mappings, and other
configurations.
- PROCESS. Creating, managing, and running processes.
- PROCESS_OBJECT. Process objects including updates, logs, and error reports.
- RUNTIME_ENVIRONMENT. Configuration changes, status changes, and updates to
runtime environments.
- SCHEDULE. Creating, modifying, and running scheduled tasks or processes.
- SCHEDULE_BLACKOUT. Blackout periods for schedules including configuration
changes and the start and end of these periods.
- SUB_ORG. Creating, modifying, and deleting sub-organizations.
- SUBSCRIPTION_BILLING. Invoices, payments, or changes to billing plans.
- SYSTEM_INFO. System status updates, logging, and updates to the configuration.
- TASKFLOW. Creating, modifying, and running taskflows.
- USER. Creating, modifying, and deleting user accounts and changes to role
assignments.
- USER_GROUP. Creating, modifying, and deleting user groups and changes to group
membership.

42 Chapter 2: Platform REST API version 2 resources


Field Type Description

- WORKFLOW. Creating, modifying, running, and deleting linear taskflows.

event String Type of action performed. Returns one of the following codes:
- ADD_TAG
- CREATE
- DELETE
- DEREGISTER
- DISABLE
- DOWNLOAD
- EDIT
- ENCRYPT
- EXPORT
- FETCHSTATE
- IMPORT
- LINK
- LOADSTATE
- MAKE_DEFAULT
- MIGRATED
- MOVE_CONNS_TO_AGENT
- MOVE_CONNS_TO_IOD
- PUBLISH
- RECONCILE
- REGISTER
- REMOVE_TAG
- RETRY_REGISTRATION
- RUN
- STOP
- UPDATE
- UPDATE_PERMISSION
- VERSION1
- VERSION2
- VERSION3
- VERSION4
- VERSION5
- VERSION6
- VERSION7

eventParam String Objects related to the action.


Note: The value can be a maximum of 1024 characters. If the value exceeds 1024
characters, it is truncated and prefixed with "Full Value Truncated."

message String Additional information.

GET Example
To view rows 21-40, you might use the following request:
GET <server URL>/api/v2/auditlog?batchId=1&batchSize=20
Content-Type: application/json
Accept: application/json
icSessionId: <SessionId>

Audit logs 43
Bundles
You can use the REST API to get bundle details and manage bundles in your organization.

You can perform the following tasks using the REST API:

• Get bundle details and push a published private bundle to sub-organizations


• Get license information about bundles installed on or available to the organization
• Install and uninstall bundles

Bundle details
Use this resource to request the details for a specific bundle or the details for all bundles published by the
organization or installed by the organization. You can also push a published private bundle to sub-
organizations.

GET Request
To request the details of a particular bundle, you can include the bundle ID or the bundle name in the URI. Use
one of the following URIs:
/api/v2/bundleObject/<id>
/api/v2/bundleObject/name/<name>
If you use the bundle name in the URI and the bundle name includes a space, replace the space with %20. For
example:
/api/v2/bundleObject/name/first%20bundle
To request the details for all bundles published by the organization, use one of the following URIs:
/api/v2/bundleObject/?published=true

/api/v2/bundleObject/?published=true&installed=false

To request the details for all bundles installed by the organization, use one of the following URIs:
/api/v2/bundleObject/?installed=true

/api/v2/bundleObject/?published=false&installed=true

GET Response
When you request the details for a bundle, returns the bundleObject for the bundle.

When you request a list of published bundles, returns a bundleObject for each bundle that the organization
published.

When you request a list of installed bundles, returns a bundleObject for each bundle that the organization
installed.

Returns the error object if errors occurred.

44 Chapter 2: Platform REST API version 2 resources


The bundleObject includes the following attributes:

Field Type Description

id String Bundle ID.

orgId String Organization ID.

name String Bundle name.

description String Description.

createTime Date/time Time the bundle was created.

updateTime Date/time Time the bundle was updated.

createdBy String User who created the bundle.

updatedBy String User who last updated the bundle.

lastVersion String The current published version of the bundle.

revokeTime Date/time This attribute is not used at this time.

paid Boolean Whether the bundle was purchased. Returns true for paid, false for free.

copyable Boolean Determines whether users can download the contents of the bundle locally. Returns
true or false.

accessType String Access type for the bundle. Returns the following codes in the
BundleObjectAccessType object:
- PUBLIC. Available to all Informatica Intelligent Cloud Services organizations.
- SUBORGS. Available to sub-organizations of the publishing organization.
- ACCESS_LIST. Available to the organization IDs in the sharedWith attribute.

objects Objects in the bundle. Includes information for each object in the bundleRefObject
object.

objectTypeCode String Included in the bundleRefObject object.


The type of bundle. Includes the following values:
- 17. Mapping.
- 0L. Mapplet.

objectId String Included in the bundleRefObject object.


Object identified in the bundle.

objectName String Included in the bundleRefObject object.


Name of the object in the bundle.

objectUpdateTime String Included in the bundleRefObject object.


The date and time that the object in the bundle was last updated.

publishOrgId String ID of the organization that published the bundle.

Bundles 45
Field Type Description

publishOrgName String Name of the organization that published the bundle.

externalId String External ID for the bundle.

POST Request
As part of a parent organization, you can share a private bundle with sub-organizations.

You can push a published private bundle to install the bundle on all sub-organizations. Push a published
private bundle when you want the objects in the bundle to be immediately available to all sub-organizations.

To push a bundle to a sub-organization, use the ID of the bundle object in the following URI:
/api/v2/bundleObject/push/<bundleId>

POST Response
Returns the success response if the request is successful. Returns the error object if errors occur.

Bundle licenses
Use this resource to request license information about bundles installed on or available to the organization.

GET Request
To request license information for a bundle associated with to the organization, use the bundle ID in the
following URI:
/api/v2/bundleObjectLicense/<bundleObjectId>
To request license information for all bundles associated with the organization, omit the optional bundle ID.

GET Response
If successful, returns the BundleObjectLicenseType for the requested bundle.

If you request license information for all bundles, returns the bundleObjectLicense object for all bundles
associated with the organization.

Returns the error object if errors occur.

The bundleObjectLicense object includes the following attributes:

Field Type Description

bundleObjectId String Bundle ID.

orgId String Organization ID.

updateOption String This attribute is not used at this time.

licenseType String Bundle type. Returns one of the following values:


- Free
- Trial
- Subscription

endDate Date/time Date the license expires. Returns NULL for free public bundles.

46 Chapter 2: Platform REST API version 2 resources


Field Type Description

numberOfDaysToApply Int Not used at this time.

numberOfMonthsToApply Int Not used at this time.

beginDate Date/time Publish date for the bundle.

bundleVersion String Version number for the bundle.

createTime Date/time Creation date for the bundle.

installed Boolean Indicates if the organization installed the bundle. Returns TRUE for installed
bundles and FALSE for available bundles.

active Boolean Indicates that the bundle is available and active. Returns TRUE.

accessCode String Required to install a licensed bundle. Used for sharing private bundles. Read
only.

Installing and uninstalling bundles


Use this resource to install and uninstall bundles.

POST Request
To install a bundle on the organization, use the following URI:
/api/v2/bundleObjectLicense
With this URI, use the following attribute in a bundleObjectLicense object:

Field Type Required Description

bundleObjectId String Yes The ID of the bundle.

POST Response
Returns the success response if the request is successful. Returns the error object if errors occur.

DELETE Request
To uninstall a bundle from the organization, use the following URI:
/api/v2/bundleObjectLicense?bundleObjectId=<bundleId>&updateOption=<updateOption>

Bundles 47
Use the following bundleObjectLicense Delete URI attributes:

Field Type Required Description

bundleObjectId String Yes The ID of the bundle.

updateOption String Defines what happens if objects in the bundle are used. Use one of the
following options:
- DELETE_EXISTING_OBJECTS. Deletes the objects that use the bundle
object.
- UPDATE_EXISTING_OBJECTS. Updates the object that uses the bundle
object.
- EXCEPTION_IF_IS_USED. Returns a message when a bundle object is used
and cancels the uninstallation.

DELETE Response
Returns the success response if the request is successful. Returns the error object if errors occur.

Jobs
Use the job resource to start or stop a task based on ID or name, including linear taskflows. You can also get
the job completion status.

To start or stop a task based on an ID, you can use the eight-character object ID for the task or the federated
task ID.

To find the eight-character object ID, see “Tasks” on page 105. However, this resource returns a task ID that
you can use only to run tasks located in the Default folder.

If your organization uses projects and folders, see “Lookup” on page 171 or “Objects” on page 205 to retrieve
the federated task ID.

For a Data Ingestion and Replication file ingestion and replication task, use the file ingestion and replication
job resource. For more information, see Chapter 5, “ File Ingestion and Replication REST API” on page 488.

Job Status
When you include the callbackURL in the job request, the service sends a request to the callback URL when
the job completes. The service always uses a JSON request for callbacks.

A callback might be called multiple times. For example, multiple callbacks might occur in the following
situations:

• Your callback server returns an HTTP status code other than 200.
• Your callback server doesn't respond within 30 seconds.
• Your callback server is down.
• There is a transient network failure.

In any of these situations, the URL connection breaks and the service counts the break as a failed attempt.
The service will make three immediate attempts to receive a successful response. Afterward, the attempts
will occur in exponential increments. For example, the attempts might begin with a 30-second interval and
progress up to a maximum 3-minute interval, until the total time reaches 30 minutes.

48 Chapter 2: Platform REST API version 2 resources


The service runs the POST request from the callback URL. The following text is a sample response:
{
@type:"callbackUrlResponse"
endTime: "2013-02-27T18:57:52.000Z",
objectId: "0034J90000000M",
objectName: "taskName",
runId: 5,
status: "COMPLETED" // or “FAILED”
}

Starting a job
Use the job resource to start a job.

POST request
Use the following URI:
/api/v2/job
The following table describes the attributes to use in a job object:

Field Type Required Description

taskId String Required if taskName or Task or linear taskflow ID. Use taskId or taskName in the
taskFederatedId isn't URI.
included. You can include this task ID when the task is located in
the Default folder.

taskFederatedId String Required if the task isn't Global unique identifier for the task, which includes the
located in the Default folder path to the task.
folder.

taskName String Required if taskId or Task or linear taskflow name. Use taskId or taskName in
taskFederatedId isn't the URI.
included.

taskType String Yes The type of task. For Data Integration, use one of the
following codes:
- DMASK. Masking task.
- DRS. Replication task.
- DSS. Synchronization task.
- MTT. Mapping task.
- PCS. PowerCenter task.
- WORKFLOW. Linear taskflow.

callbackURL String No A valid, publicly available URL. The service posts the job
status to the callbackURL.

runtime No Attribute that defines runtime properties.

parameterFileName String No Parameter file name.

parameterFileDir String No Parameter file directory on the Secure Agent machine.

POST response
The response returns the job object if the request is successful and an error object if an error occurs.

Jobs 49
The following table describes the attributes in the job object:

Field Type Description

taskId String Task or linear taskflow ID.

taskFederatedId String Global unique identifier for the task, which includes the folder path to the task.

taskName String Task or linear taskflow name.

taskType String The type of task. Returns one of the following codes for Data Integration:
- DMASK. Masking task.
- DRS. Replication task.
- DSS. Synchronization task.
- MTT. Mapping task.
- PCS. PowerCenter task.
- WORKFLOW. Linear taskflow.

runId Long ID of the job.

callbackURL String Status of the job.

POST request examples


To start a linear taskflow with ID 0034J90000000M, you might use the following request:
POST <serverUrl>/api/v2/job HTTP/1.0
Content-Type: application/json
Accept: application/json
icSessionId: <icSessionId>

{
"taskId": "0034J90000000M",
"taskType": "Workflow",
"callbackURL": "[Link]
}
To start a mapping task with ID 0100000Z000009, you might use the following request:
POST <serverUrl>/api/v2/job HTTP/1.0
Content-Type: application/json
Accept: application/json
icSessionId: <icSessionId>

{
"@type": "job",
"taskId": "0100000Z000009",
"taskType": "MTT",
"runtime": {
"@type": "mtTaskRuntime"
}
}
Because the request includes a runtime object, you can make additional requests to run the task
simultaneously in other runtime environments.

To start a mapping task using a parameter file, you might use the following request:
POST <serverUrl>/api/v2/job HTTP/1.0
Content-Type: application/json
Accept: application/json
icSessionId: <icSessionId>

{
"@type": "job",
"taskId": "0116Q70Z0000000000N4",

50 Chapter 2: Platform REST API version 2 resources


"taskType": "MTT",
"runtime": {
"@type": "mtTaskRuntime",
"parameterFileName": "[Link]",
"parameterFileDir": "/root/dev/FlatFiles"
}
}
You might get the following response:
{
"@type": "job",
"taskId": "0116Q70Z0000000000N4",
"taskType": "MTT",
"runId": 59,
"taskName": "mct_03126935_Oracle_FF_Parameter",
"runInParallel": false
}

Stopping a job
Use the job resource to stop a job.

POST request
Use the following URI:
/api/v2/job/stop
The following table describes the attributes to use in a job object:

Field Type Required Description

taskId String Required if taskName Task or linear taskflow ID. Use taskId or taskName in the URI.
isn't included. You can include this task ID when the task is located in the
Default folder.

taskFederatedId String Required if the task Global unique identifier for the task, which includes the folder
isn't located in the path to the task.
Default folder.

taskName String Required if taskId Task or linear taskflow name. Use taskId or taskName in the
isn't included. URI.

taskType String Yes The type of task. For Data Integration, use one of the following
codes:
- DMASK. Masking task.
- DRS. Replication task.
- DSS. Synchronization task.
- MTT. Mapping task.
- PCS. PowerCenter task.
- WORKFLOW. Linear taskflow.

POST response
The response returns the success object if the request is successful and an error object if an error occurs.

POST request example


To stop a linear taskflow with ID 0034J90000000M, you might use the following request:
POST <serverUrl>/api/v2/job/stop HTTP/1.0
Content-Type: application/json
Accept: application/json

Jobs 51
icSessionId: <icSessionId>

{
"@type": "job",
"taskId": "0034J90000000M",
"taskType": "Workflow"
}

Cleanly stopping a job


Use the job resource to cleanly stop a job.

POST request
Use the following URI:
/api/v2/job/stop?cleanStop=true
The following table describes the attributes to use in a job object:

Field Type Required Description

taskId String Required if taskName Task or linear taskflow ID. Use taskId or taskName in the URI.
not included. You can include this task ID when the task is located in the
Default folder.

taskFederatedId String Required if the task is Global unique identifier for the task, which includes the folder
not located in the path to the task.
Default folder.

taskName String Required if taskId not Task or linear taskflow name. Use taskId or taskName in the
included. URI.

taskType String Yes The type of task. For Data Integration, use one of the following
codes:
- DMASK. Masking task.
- DRS. Replication task.
- DSS. Synchronization task.
- MTT. Mapping task.
- PCS. PowerCenter task.
- WORKFLOW. Linear taskflow.

POST response
The response returns the success object if the request is successful and an error object if an error occurs.

POST request example


To cleanly stop a mapping task named MappingTask1, you might use the following request:
POST <serverUrl>/api/v2/job/stop?cleanStop=true
Content-Type: application/json
Accept: application/json
icSessionId: <SessionId>

{
"@type": "job",
"taskName": "MappingTask1",
"taskType": "MTT"
}

52 Chapter 2: Platform REST API version 2 resources


Login
You can use the REST API to log in to your organization using your Informatica Intelligent Cloud Services user
account, a JSON web token, SAML, or Salesforce.

Logging in
You can use this resource to log in to your organization using your Informatica Intelligent Cloud Services user
account.

The login response includes the base URL and session ID values that you include in requests that you send
during the REST API session.

Use the logout resource to end the session.

To log in using SAML single sign-on, see “Logging in using SAML” on page 62.

To log in using Salesforce credentials, see “Logging in using Salesforce” on page 65.

Note: Your team might use multiple organizations such as an organization for development and an
organization for testing. The user credentials that you use to log in determine the organization that you
access.

POST Request
To log in, use the following URL:
[Link] provider>-<region>.[Link]/ma/api/v2/user/login
The values for cloud provider and region correspond to the name of the POD (Point of Deployment) that your
organization uses. The following table lists the POD names and the corresponding cloud provider and region
to use in the login URL

POD name Cloud provider-region

USW1 dm-us

USE2 dm-us

USW3 dm-us

USE4 dm-us

USW5 dm-us

USE6 dm-us

USW1-1 dm1-us

USW3-1 dm1-us

USW1-2 dm2-us

CAC1 dm-na

APSE1 dm-ap

Login 53
POD name Cloud provider-region

APSE2 dm1-apse

APNE1 dm1-ap

APNE2 dm-apne

APAUC1 dm1-apau

EMW1 dm-em

EMC1 dm1-em

UK1 dm-uk

For example, if your organization uses the APNE1 POD, use the following URL:
[Link]
If you don't know the name of the POD that your organization uses, contact your organization administrator
or Informatica Global Customer Support.

For more information about the POD names and corresponding cloud providers and regions, see the
Product Availability Matrix (PAM) for Informatica Intelligent Cloud Services on the Knowledge Base.

Use the following attributes in a login object:

Field Type Required Description

username String Yes Informatica Intelligent Cloud Services user name for the organization that you want
to log in to.
Maximum length is 255 characters.

password String Yes Informatica Intelligent Cloud Services password.


Maximum length is 255 characters.

POST Response
Returns the user object if the request is successful. Returns the error object if errors occur.

The response includes the following information that you need to include in the header of subsequent REST
API calls:

• icSessionId. A REST API session ID that you include in the header for version 2 REST API calls.
For more information about session IDs, see “Session IDs” on page 21.
• serverUrl. The base URL that you use in all version 2 resource URIs except for login, for example:
<serverUrl>/api/v2/job

54 Chapter 2: Platform REST API version 2 resources


The user object includes the following attributes:

Field Type Description

id String User ID.

orgId String ID of the organization the user belongs to.


22 characters.
Note: Organizations that were created in legacy Informatica Cloud might have an
organization ID of 6 characters.

orgUuid String Unique identifier for the organization.

name String Informatica Intelligent Cloud Services user name.

description String Description of the user.

createTime String When the user account was created.

updateTime String When the user account was last updated

createdBy String Informatica Intelligent Cloud Services user who created the user account.

updatedBy String Informatica Intelligent Cloud Services user who last updated the user account.

sfUsername String Salesforce user name. Included when user is configured to authenticate through
Salesforce.

password String Salesforce user password. Included when user is configured to authenticate
through Salesforce.

firstName String First name for the user account.

lastName String Last name for the user account.

title String Title of the user.

phone String Phone number for the user.

securityQuestion String Security question. Returns one of the following codes:


- SPOUSE_MEETING_CITY
- FIRST_JOB_CITY
- CHILDHOOD_FRIEND
- MOTHER_MAIDEN_NAME
- PET_NAME
- CHILDHOOD_NICKNAME
- CUSTOM_QUESTION:"<question>"

securityAnswer String Answer to the security question.

roles Object that includes a role object for each role assigned to the user.

name String Included in role object.


Role name. Returns one of the following codes:
- Service Consumer
- Designer
- Admin

Login 55
Field Type Description

description String Included in role object.


Role description.

emails String Email address to be notified when the user changes the account password.

timezone String Time zone of the user. Time zone honors Daylight Saving Time.
For more information, see “Time zone codes” on page 581 .

serverUrl String Informatica Intelligent Cloud Services URL for the organization the user belongs
to. Use the serverUrl as a base for most version 2 REST API resource URIs.

spiUrl String This field is no longer applicable and has been deprecated.

uuId String Unique identifier for the user.

icSessionId String Informatica Intelligent Cloud Services session ID for version 2 REST API session.
Use in most version 2 REST API request headers.

forceChangePassword Boolean Determines if the user must reset the password after the user logs in for the first
time. Includes the following values:
- True. The user must reset the password.
- False. The user is not forced to reset the password.

POST Example
To log in to your Informatica Intelligent Cloud Services organization, you might use the following request:
POST [Link]
Content-Type: application/json
Accept: application/json

{
"@type": "login",
"username": "John@[Link]",
"password": "mypassword"
}
The response returns the user object which contains the serverUrl and icSessionId values to use in
subsequent calls, as shown in the following example:
{
"id": "0101TQ03000000000007",
"orgId": "0101TQ",
"orgUuid": "3FNFLs1uHe2IIgTs8tRjSJ",
"name": "John@[Link]",
"description": "",
"createTime": "2018-02-16T00:20:07.000Z",
"updateTime": "2018-07-17T22:45:50.000Z",
"createdBy": "System built-in user",
"updatedBy": "John@[Link]",
"sfUsername": null,
"firstName": "John",
"lastName": "Randall",
"title": "IICS Admin",
"password": "**********",
"phone": "123-456-7899",
"emails": "John@[Link]",
"timezone": null,
"serverUrl": "[Link]
"securityQuestion": "In what city were you born?",
"securityAnswer": "********",

56 Chapter 2: Platform REST API version 2 resources


"uuid": "a51jk7TB0IDcnWLwJdLaW2",
"forceChangePassword": false,
"roles": [
{
"name": "Admin",
"description": "Role for performing administrative tasks for an
organization. Has full access to all licensed services."
},
{
"name": "Data Preview",
"description": "Role to preview data"
},
{
"name": "Designer",
"description": "Role for creating assets, tasks, and processes. Can
configure connections, schedules, and runtime environments. Has access to the
Application Integration Console."
}
],
}
Using the session ID and server URL values in the above response as an example, to send a GET request to
obtain Secure Agent information, you might use the following request:
GET [Link]
Content-Type: application/json
Accept: application/json

Logging in using a JSON web token


Use this resource to log in to Informatica Intelligent Cloud Services using a JSON Web Token (JWT) access
token.

The JWT access token is provided by your identity provider, sometimes called an IDP. Retrieve the token from
your identity provider and include it in the loginOAuth request. The token can be used for one login request.

Before you can use the loginOAuth resource, the following prerequisites must be met:

• The organization is configured to use SAML. For information about SAML configuration, see User
Administration in the Administrator help.
• Users are set up as SAML users and are activated in the organization.
• The organization's identity provider is registered. For information about registering identity providers, see
“Identity providers” on page 145.
The following table lists the claims that must be present in the JWT access token:

Claim Description

iss Issuer of the the JWT. Includes the absolute URL of the identity provider issuer.
The JWT issuer claim must be the same as the issuer that appeared when the identity provider was
registered.

sub Subject of the JWT. Includes the user name or email address of the user.

Login 57
Claim Description

aud Audience for the JWT. The JWT access token's audience claim maps to the SAML entity ID configured in your
organization's SAML setup. The audience claim can be one of the following values:
- api://<orgId>.<cloud provider>-<region>.[Link]
- api://<cloud provider>-<region>.[Link].<orgId>
- api://<cloud provider>-<region>.[Link]/<orgId>
- [Link] provider>-<region>.[Link]
- [Link] provider>-<region>.[Link].<orgId>
- [Link] provider>-<region>.[Link]/<orgId>
Note: Optionally, you can include the resource in the audience claim. The resource name is customizable and
can be set to any value, for example, LoginResource1, or UserLoginResource.

exp Expiration time for the JWT.

nbf Time before which the JWT can't be accepted for processing.

iat Time at which the JWT was issued. This value can determine the age of the JWT.

jti/uti Unique identifier for the JWT. The identifier can be used to prevent the JWT from being replayed so that each
JWT is used only once.

Note: If a required claim is absent, the API rejects the request and returns an error.

After you log in to Informatica Intelligent Cloud Services, use the values from the following response fields to
make subsequent requests:

• icSessionId. REST API session ID that you include in the header for REST API calls. The session expires at
the earliest of the following values:
- Current time plus 30 minutes

- OAuth token expiration time

After the session ID expires, log in again to continue working with the REST API. For information on
retrieving session status details, see “Session IDs” on page 21.
• serverUrl. The base URL that you use in all resource URIs.
Use the logout resource to end the session.

POST request
The login request must include a JWT access token. To get a JWT access token, see the documentation
provided by your identity provider.

To log in, use the following URL:


[Link] provider>-<region>.[Link]/ma/api/v2/user/loginOAuth
For a list of cloud provider and region values, see “Logging in” on page 53.

Include the following attributes in the request:

Field Type Required Description

oauthToken String Yes JWT access token.

orgId String Yes ID of the organization the user belongs to.

58 Chapter 2: Platform REST API version 2 resources


POST response
Returns the user object if the request is successful. Returns the error object if errors occur.

Use the base URL and session ID returned in the response for subsequent requests during this session.

The user object includes the following attributes:

Field Type Description

id String User ID.

orgId String ID of the organization the user belongs to.

orgUuid String Unique identifier for the organization.

name String Informatica Intelligent Cloud Services user name.

description String Description of the user.

createTime String When the user account was created.

updateTime String When the user account was last updated

createdBy String Informatica Intelligent Cloud Services user who created the user account.

updatedBy String Informatica Intelligent Cloud Services user who last updated the user account.

sfUsername String Salesforce user name. Included when user is configured to authenticate through
Salesforce.

password String Salesforce user password. Included when user is configured to authenticate
through Salesforce.

firstName String First name for the user account.

lastName String Last name for the user account.

title String Title of the user.

password String User password, obfuscated.

phone String Phone number for the user.

emails String Email address to be notified when the user changes the account password.

timezone String Time zone of the user. Time zone honors Daylight Saving Time.
For more information, see “Time zone codes” on page 581 .

serverUrl String Informatica Intelligent Cloud Services URL for the organization that the user
belongs to. Use as a base for most version 2 and version 3 REST API resource
URIs.

icSessionId String Informatica Intelligent Cloud Services Session ID. Use in most version 2 and
version 3 REST API request headers.

Login 59
Field Type Description

securityQuestion String Security question. Returns one of the following codes:


- SPOUSE_MEETING_CITY
- FIRST_JOB_CITY
- CHILDHOOD_FRIEND
- MOTHER_MAIDEN_NAME
- PET_NAME
- CHILDHOOD_NICKNAME
- CUSTOM_QUESTION:"<question>"

securityAnswer String Answer to the security question, obfuscated.

uuId String Unique identifier for the user.

forceChangePassword Boolean Determines if the user must reset the password after the user logs in for the first
time. Includes the following values:
- True. The user must reset the password.
- False. The user is not forced to reset the password.

roles Object that contains roles assigned to the user.

name String Included in role object.


Role name. Returns one of the following codes:
- Service Consumer
- Designer
- Admin

description String Included in role object.


Role description.

usergroups Object that contains the usergroups assigned to the user.

id String Included in the usergroups object.


User group ID.

orgId String Included in the usergroups object.


ID of the organization the user group belongs to.

name String Included in the usergroups object.


Name of the user group.

description String Included in the usergroups object.


Description of the user group.

createTime String Included in the usergroups object.


Date and time the user group was created.

updateTime String Included in the usergroups object.


Date and time the user group was last updated.

createdBy String Included in the usergroups object.


User who created the user account.

60 Chapter 2: Platform REST API version 2 resources


Field Type Description

updatedBy String Included in the usergroups object.


User who last updated the user account.

spiUrl String This field is no longer applicable and has been deprecated.

POST example
To log in to Informatica Intelligent Cloud Services using a JWT access token, you might use the following
request:
POST [Link]
Content-Type: application/json
Accept: application/json

{
"orgId": "6xVpQpzHBAoizhbMOLzty9",
"oauthToken": "<JWT token>"
}
The response returns the user object which contains the serverUrl and icSessionId values to use in
subsequent calls, as shown in the following example:
{
"id": "01000103000000000002",
"orgId": "010001",
"orgUuid": "6xVpQpzHBAoizhbMOLzty9",
"name": "Larry@[Link]",
"description": null,
"createTime": "2023-07-20T15:13:12.000Z",
"updateTime": "2023-07-20T15:13:32.000Z",
"createdBy": "ma",
"updatedBy": "Scott@[Link]",
"sfUsername": null,
"firstName": "Larry",
"lastName": "Felyne",
"title": "Manager",
"password": "********",
"phone": "423435546657652",
"emails": "Larry@[Link]",
"timezone": null,
"serverUrl": "[Link]
"securityQuestion": "In what city did you meet your spouse/significant other?",
"securityAnswer": "********",
"uuid": "6qnnXdzBdtUbObUTYhyWO1",
"forceChangePassword": false,
"roles": [
{
"name": "Admin",
"description": "Role for performing administrative tasks for an
organization. Has full access to all licensed services."
},
{
"name": "Data Preview",
"description": "Role to preview data"
},
{
"name": "Designer",
"description": "Role for creating assets, tasks, and processes. Can
configure connections, schedules, and runtime environments. Has access to the
Application Integration Console."
}
],
"usergroups": [
{

Login 61
"id": "aRfrqNzCfg7e9SDOJ3y1Yn",
"orgId": "010001",
"name": "G2",
"description": "",
"createTime": "2023-08-01T05:33:22.000Z",
"updateTime": "2023-08-01T05:33:23.000Z",
"createdBy": "Scott@[Link]",
"updatedBy": "Scott@[Link]"
}
],
"spiUrl": null
}
As an example of using the serverUrl and icSessionId values in subsequent requests, to send a GET request
to obtain Secure Agent information, you might use the following request:
GET [Link] HTTP/<HTTP version>
Content-Type: application/json
Accept: application/json

Logging in using SAML


Use this version 2 API resource to log in to Informatica Intelligent Cloud Services using a Security Assertion
Markup Language (SAML) token. The SAML token is a Base64-encoded XML file that contains a SAML
assertion. This token is provided by your identity provider (IDP) after successful login.

Note: If a SAML token was already used to perform SSO login, it can't be used to perform API logins, even if
the token hasn't expired yet. You must log in using your username and password.

The loginSaml response includes the session ID and base URL that you include in subsequent REST API calls.
Use values from the following fields returned in the response:

• icSessionId. A 30-minute REST API session ID that you include in the header for version 2 REST API calls.
After the session ID expires, log in again to continue working with the REST API.
For information on retrieving session status details, see “Session IDs” on page 21.
• serverUrl. The base URL that you use in all version 2 resource URIs except for loginSaml, for example:
<serverUrl>/api/v2/job

Use the logout resource to end the session.

POST Request
The login request must include a SAML token, which you can obtain from your identity provider.

To log in, use the following URL:


[Link] provider>-<region>.[Link]/ma/api/v2/user/loginSaml
For a list of cloud provider and region values, see “Logging in” on page 53.

With this URL, use the following attributes in a login object:

Field Type Required Description

samlToken String Yes SAML token.

orgId String Yes Informatica Intelligent Cloud Services organization ID.


To find the organization ID, log in using the user interface and click the
organization name in the top right corner.

62 Chapter 2: Platform REST API version 2 resources


POST Response
Returns the user object if the request is successful. Returns the error object if errors occur.

Use the base URL and session ID returned in the response for subsequent requests during this session.

The user object includes the following attributes:

Field Type Description

id String User ID.

orgId String ID of the organization the user belongs to.


22 characters.
Note: Organizations that were created in legacy Informatica Cloud might have an organization
ID of 6 characters.

orgUuid String Unique identifier for the organization.

name String Informatica Intelligent Cloud Services user name.

description String Description of the user.

createTime String When the user account was created.

updateTime String When the user account was last updated

createdBy String Informatica Intelligent Cloud Services user who created the user account.

updatedBy String Informatica Intelligent Cloud Services user who last updated the user account.

firstName String First name for the user account.

lastName String Last name for the user account.

title String Title of the user.

phone String Phone number for the user.

roles Object that contains roles assigned to the user.

name String Included in role object.


Role name. Returns one of the following codes:
- Service Consumer
- Designer
- Admin

description String Included in role object.


Role description.

email String Email address to be notified when the user changes the account password.

timezone String Time zone of the user. Time zone honors Daylight Saving Time.
For more information, see “Time zone codes” on page 581 .

Login 63
Field Type Description

serverUrl String Informatica Intelligent Cloud Services URL for the organization the user belongs to. Use the
serverUrl as a base for most version 2 REST API resource URIs.

icSessionId String Informatica Intelligent Cloud Services session ID for version 2 REST API session. Use in most
version 2 REST API request headers.

spiUrl String This field is no longer applicable and has been deprecated.

uuId String Unique identifier for the user.

POST Example
To log in to Informatica Intelligent Cloud Services using SAML single sign-on, you might use the following
request:
POST [Link]
Content-Type: application/json
Accept: application/json

{
"@type": "login",
"samlToken": "<SAML token>",
"orgId": "3FNFLs1uHe2IIgTs8tRjSJ"
}
The response returns the user object which contains the serverUrl and icSessionId values to use in
subsequent calls, as shown in the following example:
{
"id": "0101TQ03000000000007",
"orgId": "3FNFLs1uHe2IIgTs8tRjSJ",
"orgUuid": "3FNFLs1uHe2IIgTs8tRjSJ",
"name": "John@[Link]",
"description": "",
"createTime": "2018-02-16T00:20:07.000Z",
"updateTime": "2018-07-17T22:45:50.000Z",
"createdBy": "System built-in user",
"updatedBy": "John@[Link]",
"sfUsername": null,
"firstName": "John",
"lastName": "Randall",
"title": "IICS Admin",
"phone": "123-456-7899",
"emails": "John@[Link]",
"timezone": null,
"serverUrl": "[Link]
"securityQuestion": "In what city were you born?",
"securityAnswer": "********",
"uuid": "a51jk7TB0IDcnWLwJdLaW2",
"forceChangePassword": false,
"roles": [
{
"name": "Admin",
"description": "Role for performing administrative tasks for an
organization. Has full access to all licensed services."
},
{
"name": "Data Preview",
"description": "Role to preview data"
},
{
"name": "Designer",
"description": "Role for creating assets, tasks, and processes. Can

64 Chapter 2: Platform REST API version 2 resources


configure connections, schedules, and runtime environments. Has access to the
Application Integration Console."
}
],
}
Using the above response as an example, to send a GET request to obtain Secure Agent information, you
might use the following request:
GET [Link]
Content-Type: application/json
Accept: application/json

Logging in using Salesforce


Use this resource to log in to an Informatica Intelligent Cloud Services organization using Salesforce
credentials.

The login response includes the session ID and base URL that you need to include in subsequent REST API
calls.

Note: You must activate your Informatica Intelligent Cloud Services user account before you can log in using
the loginSf resource.

Use the Salesforce Web Services API to generate a Salesforce session ID and to retrieve the Salesforce
server URL. For more information, see the Salesforce Web Services API Developer's Guide.

Use the logout resource to end the session.

POST Request
To log in using Salesforce credentials, use the following URL:
[Link] provider>-<region>.[Link]/ma/api/v2/user/loginSf
For a list of cloud provider and region values, see “Logging in” on page 53.

Use the following attributes in a loginSf object:

Field Type Required Description

sfSessionId String Yes Salesforce session ID. For information about generating the Salesforce session
ID, see the login resource in the Salesforce Web Services API Developer's Guide.

sfServerUrl String Yes Salesforce server URL.


Retrieve the Salesforce server URL from the Salesforce API login resource
response.

POST Response
Returns the user object if the request is successful. Returns the error object if errors occur.

The response includes the following information that you need to include in the header of subsequent REST
API calls:

• icSessionId. A REST API session ID that you include in the header for version 2 REST API calls. The
session ID expires after 30 minutes of inactivity. After the session ID expires, log in again to continue
working with the REST API.
For information on retrieving session status details, see “Session IDs” on page 21.
• serverUrl. The base URL that you use in all version 2 resource URIs except for login, for example:
<serverUrl>/api/v2/job

Login 65
The user object includes the following attributes:

Field Type Description

id String User ID.

orgId String ID of the organization the user belongs to.


22 characters.
Note: Organizations that were created in legacy Informatica Cloud might have an
organization ID of 6 characters.

orgUuid String Unique identifier for the organization.

name String Informatica Intelligent Cloud Services user name.

description String Description of the user.

createTime String When the user account was created.

updateTime String When the user account was last updated

createdBy String Informatica Intelligent Cloud Services user who created the user account.

updatedBy String Informatica Intelligent Cloud Services user who last updated the user account.

sfUsername String Salesforce user name. Included when user is configured to authenticate through
Salesforce.

password String Salesforce user password. Included when user is configured to authenticate
through Salesforce.

firstName String First name for the user account.

lastName String Last name for the user account.

title String Title of the user.

phone String Phone number for the user.

securityQuestion String Security question. Returns one of the following codes:


- SPOUSE_MEETING_CITY
- FIRST_JOB_CITY
- CHILDHOOD_FRIEND
- MOTHER_MAIDEN_NAME
- PET_NAME
- CHILDHOOD_NICKNAME
- CUSTOM_QUESTION:"<question>"

securityAnswer String Answer to the security question.

roles Object that includes a role object for each role assigned to the user.

name String Included in role object.


Role name. Returns one of the following codes:
- Service Consumer
- Designer
- Admin

66 Chapter 2: Platform REST API version 2 resources


Field Type Description

description String Included in role object.


Role description.

emails String Email address to be notified when the user changes the account password.

timezone String Time zone of the user. Time zone honors Daylight Saving Time.
For more information, see “Time zone codes” on page 581 .

serverUrl String Informatica Intelligent Cloud Services URL for the organization the user belongs
to. Use the serverUrl as a base for most version 2 REST API resource URIs.

spiUrl String This field is no longer applicable and has been deprecated.

uuId String Unique identifier for the user.

icSessionId String Informatica Intelligent Cloud Services session ID for version 2 REST API session.
Use in most version 2 REST API request headers.

forceChangePassword Boolean Determines if the user must reset the password after the user logs in for the first
time. Includes the following values:
- True. The user must reset the password.
- False. The user is not forced to reset the password.

POST Example
To log in to your Informatica Intelligent Cloud Services organization, you might use the following request:
POST [Link]
Content-Type: application/json
Accept: application/json

{
"@type": "loginSf",
"sfSessionId": "00Df40000000coF!ARYAQDO2SvoD3eRXOrNaiOb9a3Pp",
"sfServerUrl": "[Link]
}
The response returns the user object which contains the serverUrl and icSessionId values to use in
subsequent calls, as shown in the following example:
{
"id": "0101TQ03000000000007",
"orgId": "0101TQ",
"orgUuid": "3FNFLs1uHe2IIgTs8tRjSJ",
"name": "John@[Link]",
"description": "",
"createTime": "2018-02-16T00:20:07.000Z",
"updateTime": "2018-07-17T22:45:50.000Z",
"createdBy": "System built-in user",
"updatedBy": "John@[Link]",
"sfUsername": "JohnR",
"firstName": "John",
"lastName": "Randall",
"title": "IICS Admin",
"password": "**********",
"phone": "123-456-7899",
"emails": "John@[Link]",
"timezone": null,
"serverUrl": "[Link]
"securityQuestion": "In what city were you born?",
"securityAnswer": "********",

Login 67
"uuid": "a51jk7TB0IDcnWLwJdLaW2",
"forceChangePassword": false,
"roles": [
{
"name": "Admin",
"description": "Role for performing administrative tasks for an
organization. Has full access to all licensed services."
},
{
"name": "Data Preview",
"description": "Role to preview data"
},
{
"name": "Designer",
"description": "Role for creating assets, tasks, and processes. Can
configure connections, schedules, and runtime environments. Has access to the
Application Integration Console."
}
],
}
Using the above response as an example, to send a GET request to obtain Secure Agent information, you
might use the following request:
GET [Link]
Content-Type: application/json
Accept: application/json

Logout
You can use the REST API to log out of an organization and end the version 2 REST API session, or you can
end all version 2 REST API sessions for the organization.

Logging out
Use this resource to log out of an organization and end the version 2 REST API session specified in the
request.

Don't log out of a REST API session until all the requests that you've sent have been executed.

POST Request
To log out an organization and end the version 2 REST API session, include the session ID in the request
header with the following URI:
/api/v2/user/logout

POST Response
Returns the 200 response code if the request is successful.

Returns the error object if errors occur.

POST Example
To log out of your organization, you might use the following request:
POST <serverURL>/api/v2/user/logout
Content-Type: application/json
Accept: application/json
icSessionId: <icSessionId>

68 Chapter 2: Platform REST API version 2 resources


Logging out and ending all sessions
Use this resource to log out of an organization and end all version 2 REST API sessions for the organization.

Don't log out of the sessions until all the API requests have been executed.

POST Request
To log out of an organization and end all version 2 REST API sessions for the organization, use the following
URL:
[Link] provider>-<region>.[Link]/ma/api/v2/user/logoutall
With this URL, use the following attributes in a logout object:

username

Informatica Intelligent Cloud Services user name.

password

Informatica Intelligent Cloud Services password.

POST Response
Returns the success object if the request is successful.

Returns the error object if errors occur.

POST Example
To log out of an organization and all version 2 REST API sessions, you might use the following request:
POST [Link]
Content-Type: application/json
Accept: application/json
icSessionId: <SessionId>

{
"@type": "logout",
"username": "useremail@[Link]",
"password": "mypassword"
}

Organizations
You can use the REST API to request details of your Informatica Intelligent Cloud Services organization or a
related sub-organization, update an organization or related sub-organization, delete a sub-organization, and
create a sub-organization.

Organization management
Use this resource to request the details of your Informatica Intelligent Cloud Services organization or a
related sub-organization. You can use this resource to update an organization or related sub-organization.
You can also delete a sub-organization.

GET Request
To request the details of your organization, use the following URI:
/api/v2/org

Organizations 69
To request the details of a sub-organization related to your organization, you can include the sub-
organization ID or sub-organization name in the URI. Use one of the following URIs:
/api/v2/org/<sub-organization ID>
/api/v2/org/name/<sub-organization name>
If you use an organization name in the URI and the name includes a space, replace the space with %20. For
example:
/api/v2/org/name/my%20suborg

GET Response
When you request the details of an organization, Informatica Intelligent Cloud Services returns the org object
in list format.

If the organization is a parent organization in an organization hierarchy, the org object includes the IDs and
names of all sub-organizations.

Returns the error object if errors occurred.

The org object includes the following attributes:

Field Type Description

id String Organization ID.

orgId String Organization ID.

name String Organization name.

description String Description of the organization.

createTime Date/time Time the organization was created.

updateTime Date/time Last time the organization was updated.

createdBy String ser who created the organization.

updatedBy String Last user who updated the organization.

parentOrgId String Organization ID for the parent organization.


Returns 0 if the organization is a stand-alone or parent organization.

address1 String Address for the organization.

address2 String Additional address information for the organization.

address3 String Additional address information for the organization.

city String City where the organization is based.

state String State where the organization is based. Returns a state code.
For more information, see “State codes” on page 573 .

zipcode String Postal code of the area where the organization is based.

70 Chapter 2: Platform REST API version 2 resources


Field Type Description

timezone String Time zone of the organization. For more information, see “Time zone
codes” on page 581 .

country String Country where the organization is based. Returns a country code.
For more information, see “Country codes” on page 574 .

employees String Range of employees in the organization.

offerCode String Offer code assigned to Informatica Intelligent Cloud Services partners.

successEmails String Email address to receive notification of tasks that complete successfully.

warningEmails String Email address to receive notification of tasks that complete with errors.

errorEmails String Email address to receive notification of tasks that fail to complete.

campaignCode String Campaign code.

atlasProjectId String Atlas project ID.

zuoraAccountId String Zuora account ID.

spiUrl String This field is no longer applicable and has been deprecated.

devOrg Boolean Indicates the organization is a development organization.


Returns 1 for a development organization. Returns 0 for a production
organization.

maxLogRows Int Maximum number of rows to keep in the activity log.

minPasswordLength Int Minimum number of characters for a user account password.

minPasswordCharMix Int Mix of characters each password must contain.


Passwords can contain a mix of the following character sets: lowercase
letters, capital letters, numbers, and special characters.
Returns one of the following values:
- 1. Contains at least one of the character sets.
- 2. Contains at least two of the character sets.
- 3. Contains at least three of the character sets.
- 4. Contains all four character sets.

passwordReuseInDays Int Number of days until a previous password can be used again.
A value of 0 means a password can always be reused.

passwordExpirationInDays Int Number of days until a password expires.


A value of 0 means a password will never expire.

subOrgLimit Int Number of sub-organizations allowed. If the limit has been customized, the
REST API returns the custom limit. Otherwise, the REST API returns the limit
associated with the edition.

Organizations 71
Field Type Description

restApiSessionLimit Int Number of concurrent REST API sessions allowed. If the limit has been
customized, the REST API returns the custom limit. Otherwise, the REST API
returns the limit associated with the edition.

parentOrgId String Organization ID of the parent organization.


0 indicates the organization is a stand-alone or parent organization.

jobExecUserProfile String Informatica Intelligent Cloud Services user account configured to run
contact validation tasks.

orgUUID String Unique identifier for the organization.

subOrgs Object that contains information for each sub-organization.

id String Included in subOrgs object.


ID of the sub-organization.

name String Included in subOrgs object.


Name of the sub-organization.

POST Request
You can update an Informatica Intelligent Cloud Services organization if the user that started the REST API
session has the Admin role and belongs to either the organization that you want to update or the parent
organization.

You can update a sub-organization if your organization has the appropriate license and if the user that
started the REST API session has the Admin role in the parent organization.

To update the details of a sub-organization related to your parent organization, use the organization ID in the
following URI. To update the details of your organization, omit the optional ID.
/api/v2/org/<id>
Note: When you update an organization through the REST API, the action is a full update. If a field isn't
included in the request, the value resets to the default.

You cannot update the organization ID, offer code, or organization administrator user account created with
the organization.

With this URI, you can use the following attributes in the org object:

Field Type Required Description

name String Yes Organization name.

address String Yes Address of organization.

address2 String Additional address information for the organization.

address3 String Additional address information for the organization.

city String Yes City where the organization is based.

72 Chapter 2: Platform REST API version 2 resources


Field Type Required Description

state String Required State where the organization is based. Use the appropriate
when Country state code.
is US Required when Country is set to US.
For more information, see Appendix A , “State codes” on page
573 .

zipcode String Required Postal code of the area where the organization is based.
when Country Required when Country is set to US
is US

country String Yes Country where the organization is based. Use the appropriate
country code.
For more information, see Appendix A , “Country codes” on page
574 .

timezone String Time zone of the organization. Time zone honors Daylight
Saving Time.
For more information, see Appendix A , “Time zone codes” on
page 581 .

description String Description of the organization. Maximum length is 255


characters.

successEmails String Default email address for notification of successful job


completion.

warningEmails String Default email addresses for warnings about job completion.

errorEmails String Default email address for notification about job failure.

employees String Yes Range of employees in the organization. Use one of the
following ranges:
- "0_10"
- "11_25"
- "26_50"
- "51_100"
- "101_500"
- "501_1000"
- "1001_5000"
- "5001_"

offerCode String Offer code assigned to Informatica Intelligent Cloud Services


partners.

passwordReuseInDays Int Number of days until a previous password can be used again.
Maximum number of days is 730 (2 years).
A value of 0 means a password can always be reused.

passwordExpirationInDays Int Number of days until the password expires.


Maximum number of days is 180.
A value of 0 means a password will never expire.

POST Response
If successful, returns the org request object for the organization that you created or updated.

Organizations 73
Returns the error object if errors occur.

DELETE Request
You can delete an Informatica Intelligent Cloud Services sub-organization if the user that started the REST
API session has the Admin role and belongs the parent organization.

To delete an Informatica Intelligent Cloud Services organization, use the organization ID with the following
URI:
/api/v2/org/<id>

DELETE Response
Returns the 200 response code if the request is successful.

Returns the error object if errors occur.

POST Example
To update a sub-organization with an ID of 02340000, you might use the following request:
POST <serverUrl>/api/v2/org/02340000
Content-Type: application/xml
Accept: application/xml
icSessionId: <icSessionId>

<org>
<name>Dev Org</name>
<address1>333 Main Street</address1>
<city>City</city>
<state>MD</state>
<zipcode>90001</zipcode>
<country>US</country>
<timezone>America/Chicago</timezone>
</org>
A successful request returns the org request object for the sub-organization that you updated.

Creating sub-organizations
Use this resource to create an Informatica Intelligent Cloud Services sub-organization. For Informatica
Intelligent Cloud Services partners only.

You can create an Informatica Intelligent Cloud Services sub-organization if your organization has the
appropriate license and if the user that started the REST API session has the Admin role in the parent
organization.

register POST Request


To create an Informatica Intelligent Cloud Services sub-organization, use the following URI.
/api/v2/user/register
Use the session ID from the login response in the request header. Use the serverUrl from the login response
as the base URL.

74 Chapter 2: Platform REST API version 2 resources


You can use the following attributes in a registration object:

Field Type Required Description

org Attribute that defines an Informatica Intelligent Cloud Services


organization.

offerCode String Include in the org object.


Offer code assigned to Informatica Intelligent Cloud Services
partners.

name String Yes Include in the org object.


Name for the new Informatica Intelligent Cloud Services
organization.

address1 String Yes Include in the org object.


Address where the organization is located.

address2 String Include in the org object.


Additional address information for the organization.

address3 String Include in the org object.


Additional address information for the organization.

city String Yes Include in the org object.


City where the organization is located.

state String Yes Include in the org object.


State where the organization is located. Use the appropriate state
code.
Required for the United States.
For more information, see Appendix A, “State codes” on page 573 .

zipcode String Yes Include in the org object.


Postal code where the organization is located.

country String Yes Include in the org object.


Country where the organization is located. Use the appropriate
country code.
For more information, see Appendix A, “Country codes” on page 574 .

timezone String Include in the org object.


Note:
Informatica Intelligent Cloud Services uses America/Los_Angeles as
the default time zone. After you create the sub-organization, you can
use the org resource to change the time zone or you can change the
time zone in Administrator.

Organizations 75
Field Type Required Description

employees String Yes Include in the org object.


Number of employees in the organization. Use one of the following
ranges:
- "0_10"
- "11_25"
- "26_50"
- "51_100"
- "101_500"
- "501_1000"
- "1001_5000"
- "5001_"

user Attribute that defines the organization administrator user account.

name String Yes Include in the user object.


Email address for the organization administrator account.

password String Yes Include in the user object.


Password for the organization administrator account.

firstName String Yes Include in the user object.


First name of the organization administrator.

lastName String Yes Include in the user object.


Last name of the organization administrator.

title String Yes Include in the user object.


Title of the organization administrator.

phone String Yes Include in the user object.


Phone number for the organization administrator.

emails String Yes Include in the user object.


Email address that receives notification from Informatica Intelligent
Cloud Services.

timezone String Include in the user object.


Time zone of the organization administrator.
Note:
Informatica Intelligent Cloud Services uses America/Los_Angeles as
the default time zone. After you create the sub-organization, you can
use the org resource to change the time zone or you can change the
time zone in Administrator.

76 Chapter 2: Platform REST API version 2 resources


Field Type Required Description

securityQuestion String Include in the user object.


Security question. Use one of the following codes to select the
security question:
- SPOUSE_MEETING_CITY
- FIRST_JOB_CITY
- CHILDHOOD_FRIEND
- MOTHER_MAIDEN_NAME
- PET_NAME
- CHILDHOOD_NICKNAME
- CUSTOM_QUESTION:"<question>"

securityAnswer String Include in the user object.


Answer to the security question.

forceChangePassword Boolean Include in the user object.


Determines if the user must reset the password after the user logs in
for the first time. Includes the following values:
- True. The user must reset the password.
- False. The user is not forced to reset the password.

optOutOfEmails Boolean Include in the user object.


Whether the user opts in or out of receiving marketing
communication from Informatica. TRUE indicates that the user does
not want to receive marketing communication.

registrationCode String Registration code.

sendEmail Boolean When registration completes, sends an email to the user email
address with temporary login information. Use TRUE to send an
email.

POST Response
Returns the user object if the request is successful. Returns the error object if errors occur.

The user object includes the following attributes.

Field Type Description

id String User ID.

orgId String ID of the organization the user belongs to.


22 characters.
Note: Organizations that were created in legacy Informatica Cloud might have an
organization ID of 6 characters.

orgUuid String Unique identifier for the organization.

name String Informatica Intelligent Cloud Services user name.

description String Description of the user.

createTime String When the user account was created.

Organizations 77
Field Type Description

updateTime String When the user account was last updated

createdBy String Informatica Intelligent Cloud Services user who created the user account.

updatedBy String Informatica Intelligent Cloud Services user who last updated the user account.

sfUsername String Salesforce user name. Included when user is configured to authenticate through
Salesforce.

password String Salesforce user password. Included when user is configured to authenticate
through Salesforce.

firstName String First name for the user account.

lastName String Last name for the user account.

title String Title of the user.

phone String Phone number for the user.

securityQuestion String Security question. Returns one of the following codes:


- SPOUSE_MEETING_CITY
- FIRST_JOB_CITY
- CHILDHOOD_FRIEND
- MOTHER_MAIDEN_NAME
- PET_NAME
- CHILDHOOD_NICKNAME
- CUSTOM_QUESTION:"<question>"

securityAnswer String Answer to the security question.

roles Object that includes a role object for each role assigned to the user.

name String Included in role object.


Role name. Returns one of the following codes:
- Service Consumer
- Designer
- Admin

description String Included in role object.


Role description.

emails String Email address to be notified when the user changes the account password.

timezone String Time zone of the user. Time zone honors Daylight Saving Time.
For more information, see “Time zone codes” on page 581 .

serverUrl String Informatica Intelligent Cloud Services URL for the organization the user belongs
to. Use the serverUrl as a base for most version 2 REST API resource URIs.

spiUrl String This field is no longer applicable and has been deprecated.

uuId String Unique identifier for the user.

78 Chapter 2: Platform REST API version 2 resources


Field Type Description

icSessionId String Informatica Intelligent Cloud Services session ID for version 2 REST API session.
Use in most version 2 REST API request headers.

forceChangePassword Boolean Determines if the user must reset the password after the user logs in for the first
time. Includes the following values:
- True. The user must reset the password.
- False. The user is not forced to reset the password.

POST Examples
To register an organization in JSON, you might use the following request:
POST <serverUrl>/api/v2/user/register
Content-Type: application/json
Accept: application/json
icSessionId: <SessionId>

{
"@type" : "registration",
"user" : {
"@type" : "user",
"name" : "useremail@[Link]",
"emails" : "useremail@[Link]",
"firstName" : "firstName",
"lastName" : "lastName",
"title" : "jobTitle",
"phone" : "(0)1234 567 890",
"timezone" : null,
"forceChangePassword" : "true"
"optOutOfEmails" : "true"
},
"org" : {
"@type" : "org",
"offerCode" : "PPC30daytrial",
"campaignCode" : "PPC",
"name" : "myOrg",
"address1" : "1 Main St",
"city" : "Mycity",
"state" : "CA",
"zipcode" : "90210",
"country" : "US",
"employees" : "5001_"
},
"registrationCode" : "ics-standard",
"sendEmail" : true
}
A successful request returns the user object that was created, which includes the organization ID for the
organization that was created.

Runtime environments
You can use the runtimeEnvironment resource to request runtime environment details and manage Secure
Agent groups.

You can perform the following tasks using the REST API:

• Get details about runtime environments.

Runtime environments 79
• Create, update, delete Secure Agent groups.
• Enable and disable Informatica Intelligent Cloud Services and connectors for Secure Agent groups.
• Configure Secure Agent service properties for Secure Agent groups.

Getting runtime environment details


Use the runtimeEnvironment resource to get runtime environment details.

You can request the details for a specific runtime environment or details for all of an organization's runtime
environments,

To request runtime environment information for an organization, use the following URI:
/api/v2/runtimeEnvironment
To request the details of a particular runtime environment, you can include the runtime environment ID or
name in the URI. Use one of the following URIs:
/api/v2/runtimeEnvironment/<id>
/api/v2/runtimeEnvironment/name/<name>
If you use the runtime environment name in the URI and the runtime environment name includes a space,
replace the space with %20. For example:
/api/v2/runtimeEnvironment/name/my%20runtime%20environment

GET Response
Returns runtime environment information for the requested runtime environment. The runtimeEnvironment
object includes the following attributes:

Field Type Description

id String Runtime environment ID.

orgId String Organization ID.

name String Runtime environment name.

description String Description of the runtime environment.

createTime Date/time Date and time the runtime environment was created.

updateTime Date/time Date and time that the runtime environment was last updated.

createdBy String User who created the runtime environment.

updatedBy String User who last updated the runtime environment.

agents Agents assigned to the runtime environment. See the agent resource.

isShared Boolean Indicates whether the Secure Agent group is shared. Returns one of the following
values:
- true. The Secure Agent group is shared.
- false. The Secure Agent group is not shared.

80 Chapter 2: Platform REST API version 2 resources


Field Type Description

federatedId String Global unique identifier.

serverlessConfig Attribute that defines serverless runtime environment properties.

If you get information about a serverless runtime environment, the runtimeEnvironment object also includes
the serverlessConfig object. The serverlessConfig object includes the following attributes:

Field Type Description

platform String Cloud platform that hosts the serverless runtime environment.

applicationType String Application that can use the serverless runtime environment.

status String Status of the serverless runtime environment.

statusMessage String Status message for the serverless runtime environment.

statusMessageDetails String Validation error data from AWS for the serverless runtime environment.

cloudProviderConfig Defines basic properties and Data Integration properties.

infaAccountNumber String Included in the cloudProviderConfig object.


Informatica's account number on the cloud platform.

externalId String Included in the cloudProviderConfig object.


External ID to associate with the role.

configurationName String Included in the cloudProviderConfig object.


Name of the serverless runtime environment.

configurationDescription String Included in the cloudProviderConfig object.


Description of the serverless runtime environment.

params Defines the AWS resource configuration properties.

s3 String Included in the params object.


Location on Amazon S3 to store supplementary files.

subnet String Included in the params object.


ID of the subnet.

role String Included in the params object.


Name of the role that the serverless runtime environment assumes.

vpc String Included in the params object.


ID of the VPC (Amazon Virtual Private Cloud).

externalId String Included in the params object.


External ID that is configured for the role.

Runtime environments 81
Field Type Description

securityGroup String Included in the params object.


Security group ID.

accountNumber String Included in the params object.


Your account number on the cloud platform.

referenceId String Included in the params object.


Internal ID used to reference the serverless runtime environment.

computeUnits String Included in the params object.


Maximum number of serverless compute units that a task can use.

executionTimeout String Included in the params object.


Amount of time in minutes to wait for a task to complete.

cloudInstanceId String Included in the params object.


Instance ID.

zone String Included in the params object.


Availability zone ID.

region String Included in the params object.


Region on the cloud platform.

infaAccountNumber String Included in the params object.


Informatica's account number on the cloud platform.

awsTags String Included in the params object.


AWS tags.

maxComputeUnits String Maximum number of serverless compute units that a task can use.

executionTimeout String Amount of time in minutes to wait for a task to complete.

Get Example
To request the details of a particular runtime environment, you might use the following request:
GET <serverUrl>/api/v2/runtimeEnvironment/00000425000000000004
Content-Type: application/json
Accept: application/json
icSessionId: <icSessionId>
The following text is a sample return in JSON:
{
"@type": "runtimeEnvironment",
"id": "00000425000000000004",
"orgId": "000004",
"name": "SUT_Agent",
"createTime": "2016-12-09T12:34:01.000Z",
"updateTime": "2016-12-09T17:54:00.000Z",
"createdBy": "org1@[Link]",
"updatedBy": "org1@[Link]",
"agents": [],
"isShared": true,

82 Chapter 2: Platform REST API version 2 resources


"federatedId": "<ID>"
}
The following text is a sample return for a serverless runtime environment:
{
"@type": "runtimeEnvironment",
"id": "01000000000000000039",
"orgId": "010211",
"name": "Serverless runtime environment 1",
"description": "My serverless runtime environment",
"createTime": "2020-08-25T13:21:16.000Z",
"updateTime": "2020-08-25T13:29:43.000Z",
"createdBy": "admin",
"updatedBy": "admin",
"agents": [],
"isShared": false,
"federatedId": "<ID>",
"serverlessConfig": {
"platform": "AWS",
"applicationType": "CDI",
"status": "RUNNING",
"statusMessage": "Serverless runtime is running",
"cloudProviderConfig": {
"cloudConfig": [
{
"infaAccountNumber": "<ACCT_NUMBER>",
"externalId": "<EXT_ID>",
"configurationName": "Serverless runtime environment 1",
"configurationDescription": "My serverless runtime environment",
"params": {
"s3": "s3://my-bucket",
"subnet": "subnet-12345",
"role": "CDI_Serverless_Role",
"vpc": "vpc-12345",
"externalId": "<EXT_ID>",
"securityGroup": "sg-<SG_NUMBER>",
"accountNumber": "<ACCT_NUMBER",
"referenceId": "<REF_ID>",
"computeUnits": "1",
"executionTimeout": "2880",
"cloudInstanceId": "i-123456789",
"zone": "usw2-az3",
"region": "us-west-2",
"infaAccountNumber": "<ACCT_NUMBER>",
"awsTags": "Key=NAME,Value=test1
Key=EMAIL,Value=test1@[Link]"
}
}
]
},
"maxComputeUnits": "1",
"executionTimeout": "2880"
}

Creating, updating, and deleting Secure Agent groups


You can use the runtimeEnvironment resource to create, update, and delete Secure Agent groups.

Use a POST request to create and update Secure Agent groups. Use a DELETE request to delete a Secure
Agent group.

POST request
To create a Secure Agent group, use the following URI:
/api/v2/runtimeEnvironment

Runtime environments 83
Include the following fields in the request:

Field Type Required Description

name String Yes Name of the Secure Agent group.

isShared Boolean - Whether the Secure Agent group can be shared with sub-organizations.

To update a Secure Agent group, include the agent group ID as shown in the following URI:
/api/v2/runtimeEnvironment/<id>
You can add or remove agents and rename Secure Agent groups. To move an agent from one Secure Agent
group to another group, send a request to remove the agent from its current group and then send a request to
add the agent to the new group.

Include the following fields in the request:

Field Type Required Description

name String Yes Name of the Secure Agent group.

isShared Boolean - Whether the Secure Agent group can be shared with sub-organizations.

agents Array Yes Agents assigned to the Secure Agent group.

orgId String Yes Organization ID.

id String Yes Agent ID.

POST response

Field Type Description

id String Secure Agent group ID.

orgId String Organization ID.

name String Secure Agent group name.

description String Description of the Secure Agent group.

createTime Date/time Date and time the Secure Agent group was created.

updateTime Date/time Date and time that the Secure Agent group was last updated.

createdBy String User who created the Secure Agent group.

updatedBy String User who last updated the Secure Agent group.

agents Array Agents assigned to the Secure Agent group. For more information, see the agent
resource.

84 Chapter 2: Platform REST API version 2 resources


Field Type Description

isShared Boolean Indicates whether the Secure Agent group is shared. Returns one of the following
values:
- true. The Secure Agent group is shared.
- false. The Secure Agent group is not shared.

federatedId String Global unique identifier.

serverlessConfig Attribute that defines serverless runtime environment properties.

POST request examples


The following example shows a request to create a Secure Agent group:
POST <serverUrl>/api/v2/runtimeEnvironment HTTP/<HTTP version>
Content-Type: application/json
Accept: application/json
icSessionId: <icSessionId>

{
"@type": "runtimeEnvironment",
"name": "14402",
"isShared": true
}
The following example shows a request to add an agent to a Secure Agent group:
POST <serverUrl>/api/v2/runtimeEnvironment/00000425000000000004
Content-Type: application/json
Accept: application/json
icSessionId: <icSessionId>

{
"@type": "runtimeEnvironment",
"name": "14401",
"agents": [
{
"@type": "agent",
"id": "01000308000000000003",
"orgId": "010003"
}
],
"isShared": false
}

POST response example


You might receive a response similar to the following example:
{
"@type": "runtimeEnvironment",
"id": "01000325000000000005",
"orgId": "010003",
"name": "USW1MJ02W6PP-2",
"createTime": "2021-11-09T17:20:55.583Z",
"updateTime": "2021-11-09T17:20:55.583Z",
"createdBy": "ctan",
"updatedBy": "ctan",
"agents": [],
"isShared": false,
"federatedId": "9F4z0pY1kKqdlmLp5kYXkF",
"createTimeUTC": "2021-11-09T22:20:55.583Z",
"updateTimeUTC": "2021-11-09T22:20:55.583Z",
"serverlessConfig": {
"cloudProviderConfig": {
"cloudConfig": []

Runtime environments 85
}
}
}

DELETE request
To delete a Secure Agent group, include the agent group ID as shown in the following URI:
/api/v2/runtimeEnvironment/00000425000000000034

Managing Secure Agent group selections


You can use the runtimeEnvironment resource to enable or disable Informatica Intelligent Cloud Services and
connectors for a Secure Agent group. You can also get details about the selections.

Use a GET request to get the details about a Secure Agent group's enabled and disabled selections. Use a
PUT request to assign a Secure Agent group to services and connectors.

GET request
You can request information about the selections that are enabled for a Secure Agent group. You can also
request information about all of the selections that are available for a Secure Agent group based on the
organization's license. The response includes the names and IDs of the available services and connectors.

To get information about enabled selections, use the following URI:


/api/v2/runtimeEnvironment/<id>/selections
To get information about all of the selections that are available to a Secure Agent group, use the following
URI:
/api/v2/runtimeEnvironment/<id>/selections/details

GET response
Returns the Secure Agent group selections. If successful, returns the following fields:

Field Type Description

services Contains selection information for services.

selections Contains information for enabled services.


If the request is to include details, also contains selection information for disabled
services.

id String Included in the selections object.


Service ID.

name String Included in the selections object.


Service name.

enabled Boolean Included in the selections object.


Whether the service is enabled for the Secure Agent group.

connectors Contains selection information for connectors.

selections Contains information for enabled connectors.


If the request is to include details, also contains selection information for disabled
connectors.

86 Chapter 2: Platform REST API version 2 resources


Field Type Description

id String Included in the selections object.


Connector ID.

name String Included in the selections object.


Connector name.

enabled Boolean Included in the selections object.


Whether the connector is enabled for the Secure Agent group.

Additional Contains selection information for additional services, for example, Git.
services

selections Contains information for additional services that are enabled.


If the request is to include details, also contains selection information for additional
services that are disabled.

id String Included in the selections object.


Service ID.

name String Included in the selections object.


Service name.

enabled Boolean Included in the selections object.


Whether the service is enabled for the Secure Agent group.

GET request example


The following example shows a request to get information about enabled selections:
GET <serverUrl>/api/v2/runtimeEnvironment/00000425000000000004/selections
Content-Type: application/json
Accept: application/json
icSessionId: <icSessionId>
The following example shows a request to get information about enabled and disabled selections:
GET <serverUrl>/api/v2/runtimeEnvironment/00000425000000000004/selections/details
Content-Type: application/json
Accept: application/json
icSessionId: <icSessionId>

GET response example


If the request is for enabled and disabled selections, you might receive a response similar to the following
example:
{
"services": {
"selections": [
{
"id": "00000047000000000002",
"name": "Data Integration",
"enabled": true
}
]
},
"connectors": {
"selections": [
{

Runtime environments 87
"id": "01000000000005L",
"name": "Amazon Redshift v2",
"enabled": true
},

{
"id": "01000000000005Q",
"name": "Amazon S3",
"enabled": false
}
]
},
"additionalServices": {
"selections": [
{
"id": "00000048000000000002",
"name": "Git",
"enabled": false
}
]
}
}

PUT request
To enable services and connectors for a Secure Agent group, include the agent group ID as shown in the
following URI:
/api/v2/runtimeEnvironment/<id>/selections
To see a list of all of the services and connectors that are available and find the selection IDs, use a GET
request to obtain information about enabled and disabled selections.

Include the following fields in the request:

Field Type Required Description

id String Yes The selection object ID.

name String - The selection object name.

enabled Boolean - Whether to enable or disable the selection.

PUT request example


If you want to select the Data Integration service, the Amazon Redshift v2 connector, and the Git service for a
Secure Agent group, the request might be similar to the following example:
PUT <serverUrl>/api/v2/runtimeEnvironment/00000425000000000004/selections HTTP/<HTTP
version>
Content-Type: application/json
Accept: application/json
icSessionId: <icSessionId>

{
"services": {
"selections": [
{
"id": "00000047000000000002",
"name": "Data Integration",
"enabled": true
}
]
},
"connectors": {
"selections": [

88 Chapter 2: Platform REST API version 2 resources


{
"id": "01000000000005L",
"name": "Amazon Redshift v2",
"enabled": false
},
{
"id": "01000000000005M",
"name": "Amazon S3 v2",
"enabled": false
}
]
},
"additionalServices": {
"selections": [
{
"id": "00000047000000000013",
"name": "Self-hosted Git Repo",
"enabled": true
}
]
}
}
Note: The IDs shown in the example are examples only. Use a GET request to find the selection IDs and
names that are available to the Secure Agent group.

Configuring Secure Agent service properties for Secure Agent


groups
You can use the runtimeEnvironment resource to configure Secure Agent service properties for a Secure
Agent group. When you add a Secure Agent to the Secure Agent group, the agent uses the group-level
property settings by default instead of using the Secure Agent service default settings.

The Secure Agent service properties that you can configure for a Secure Agent group depend on which
services and connectors are assigned to the group. To see the editable properties for a particular Secure
Agent group, you can send a GET request for configuration details.

The following rules apply when you configure Secure Agent service properties for a Secure Agent group:

• When you add a Secure Agent to a Secure Agent group that is configured to use group-level property
settings, the group-level property settings replace the agent's property settings. If the agent has custom
properties, the custom properties are removed.
• When you move a Secure Agent from a Secure Agent group that is configured to use group-level property
settings to a group that doesn't use group-level property settings, the agent retains the property settings
that were configured at the group level.

Warning: Do not configure agent-level Secure Agent service property settings for an agent in a Secure Agent
group that uses group-level property settings. If you want to configure agent-level property settings, delete
the group-level property settings before you configure the agent properties.

GET request
Use a GET request to get a list of editable Secure Agent service properties that you can configure for a
Secure Agent group.

You can also get a list of group-level properties that have overridden Secure Agent service default property
settings.

Include the Secure Agent group ID in the URI. Optionally, include the platform in the URI. You can use linux64
or win64. The default platform is linux64.

Runtime environments 89
Use one of the following URIs:

• To get a list of editable properties, use the following URI:


/api/v2/runtimeEnvironment/<id>/configs/details/<platform>
• To get a list of group-level properties that override the Secure Agent service default property settings, use
the following URI:
/api/v2/runtimeEnvironment/<id>/configs/<platform>

GET response
A successful response returns the Secure Agent services, property types, and the following fields in the
property type object:

Field Type Description

name String Property name.

value String Value used for all agents added to the Secure Agent group.

isCustom Boolean Whether the property is a custom property.

isSensitive Boolean Whether the property value is sensitive data that is masked.

GET response example


The following example shows a request to get information about the properties that have overridden the
Secure Agent service default property settings:
GET <serverUrl>/api/v2/runtimeEnvironment/<id>/configs/<platform>
Content-Type: application/json
Accept: application/json
icSessionId: <SessionId>
If you request the properties that have overridden the Secure Agent service default property settings, you
might receive a response similar to the following example:
{
"Data_Integration_Server": [
{
"TOMCAT_CFG": [
{
"name": "MySQL_JDBC_DRIVER_JARNAME",
"value": "[Link]"
},
{
"name": "NetworkTimeoutPeriod",
"value": "335"
}
]
},
{
"PMRDTM_CFG": [
{
"name": "SalesforceConnectionTimeout",
"value": "311"
},
{
"name": "customConfig-DTM-DIX-linux",
"value": "custom-new",
"isCustom": "true"
}
]
}

90 Chapter 2: Platform REST API version 2 resources


]
}

PUT request
Use to configure Secure Agent service properties for a Secure Agent group. The properties that you configure
will override the default property settings for the specified Secure Agent service. Include the Secure Agent
group ID in the URI.

Optionally, include the platform in the URI. You can use linux64 or win64. The default platform is linux64.

Use the following URI:


/api/v2/runtimeEnvironment/<id>/configs/<platform>
In the body of the request, include the Secure Agent service name, the property type, and a name/value pair
for the property, for example:
{
"<Secure Agent service name>": [
{
"<Property type 1>": [
{
"name": "<property name>",
"value": "<property value>"
},
{
"name": "<property name>",
"value": "<property value>"
}
]
},
{
"<Property type 2>": [
{
"name": "<property name>",
"value": "<property value>"
},
{
"name": "<property name>",
"value": "<property value>"
}
]
}
]
}
Use the service and property names as shown in a GET response. For example, for the Data Integration
Server service, use Data_Integration_Server.

The properties that you don't include in the request will retain their existing settings.

Include the following fields in the property type object:

Field Type Required Description

name String Yes Property name.

value String Yes Value to use for all agents added to the Secure Agent group.
To use the system default value, use APP_DEFAULT.

Runtime environments 91
Field Type Required Description

isCustom Boolean - Whether the property is a custom property.


Default is False.

isSensitive Boolean - Whether the property value is sensitive data that you want to mask.
Default is False.

Returns a success code if successful or errors if unsuccessful.

PUT request example


If you want to configure the TOMCAT_CFG property type for the Data Integration Server service, the request
might be similar to the following example:
PUT <serverUrl>/api/v2/runtimeEnvironment/00000425000000000004/configs
Content-Type: application/json
Accept: application/json
icSessionId: <icSessionId>
{
"Data_Integration_Server": [
{
"TOMCAT_CFG": [
{
"name": "MySQL_JDBC_DRIVER_JARNAME",
"value": "[Link]"
},
{
"name": "customConfig-Tomcat-DIS-linux",
"value": "custom-new",
"isCustom": "true"
}
]
}
]
}

DELETE request
You can delete Secure Agent service property settings that were configured for a Secure Agent group. When
you delete the group-level properties, the settings for all of the Secure Agents in the group change to the
Secure Agent service default settings. Custom properties that were created for the Secure Agent group are
removed.

To delete the property settings for a Secure Agent group, include the Secure Agent group ID in the following
URI:
/api/v2/runtimeEnvironment/<id>/configs
Returns a success code if successful or errors if unsuccessful.

Schedules
Use this resource to request the details of a schedule or the details of all schedules in the organization. You
can create or update a schedule. You can also delete a schedule.

Note: To leverage full scheduling capabilities, use the version 3 schedule resource instead of the version 2
schedule resource.

92 Chapter 2: Platform REST API version 2 resources


GET Request
To view the details of all schedules in the organization, use the following URI:
/api/v2/schedule
To request the details of a particular schedule, you can include the schedule ID or schedule name in the URI.
Use one of the following URIs:
/api/v2/schedule/<id>
/api/v2/schedule/name/<name>
If you use the schedule name in the URI and the schedule name includes a space, replace the space with %20.
For example:
/api/v2/schedule/name/my%20schedule

GET Response
If successful, returns the schedule object for the requested schedule. Or, if you request the details for all
schedules, returns the schedule object for each schedule in the organization.

Returns the error object if errors occur.

The schedule object includes the following attributes:

Field Type Description

id String Schedule ID.

orgId String Organization ID.

name String Schedule name.

description String Description of the schedule.

createTime Date/time Time the schedule was created.

updateTime Date/time Last time the schedule was updated.

createdBy String User who created the schedule.

updatedBy String User who last updated the schedule.

startTime Date/time Date and time when the schedule starts running.

startTimeUTC Date/time Date and time when the schedule starts running the tasks. Uses Coordinated Universal
Time (UTC).

endTime Date/time Date and time when the schedule stops running .

Schedules 93
Field Type Description

interval String Interval or repeat frequency at which the schedule runs. Returns one of the following
codes:
- None. The schedule does not repeat.
- Minutely. Tasks run on an interval based on the specified number of minutes, days,
and time range.
- Hourly. Tasks run on an hourly interval based on the start time of the schedule.
- Daily. Tasks run on a daily interval based on the start time of the schedule.
- Weekly. Tasks run on a weekly interval based on the start time of the schedule.
- Biweekly. Tasks run every two weeks based on the start time of the schedule.
- Monthly. Tasks run on a monthly interval based on the start time of the schedule.

frequency Int Frequency that the schedule runs for the specified interval. For example, if the interval
is Hourly, a frequency of 2 means the task runs every 2 hours.
Returned for Minutely, Hourly, and Daily intervals only.

rangeStartTime Date/time The start of the time range within a day that tasks run.
Returned for Minutely and Hourly intervals only.

rangeEndTime Date/time The end of the time range within a day that tasks run.
Returned for Minutely and Hourly intervals only.

sun Boolean Tasks run on Sunday.


Returns one of the following codes:
- true
- false
Returned for Minutely, Hourly, Weekly, and Biweekly intervals only.

mon Boolean Tasks run on Monday.


See description for sun.

tue Boolean Tasks run on Tuesday.


See description for sun.

wed Boolean Tasks run on Wednesday.


See description for sun.

thu Boolean Tasks run on Thursday.


See description for sun.

fri Boolean Tasks run on Friday.


See description for sun.

sat Boolean Tasks run on Saturday.


See description for sun.

weekDay Boolean Tasks run on weekdays only. Returns one of the following codes:
- true
- false
Returned for Daily interval only.

dayOfMonth Int Date of the month that tasks run. Returns a date between 1-28.
Returned for Monthly interval only.

94 Chapter 2: Platform REST API version 2 resources


Field Type Description

weekOfMonth String Week of the month that tasks run. Returns one of the following codes:
- First. The tasks run in the first week of the month.
- Second. The tasks run in the second week of the month.
- Third. The tasks run in the third week of the month.
- Fourth. The tasks run in the fourth week of the month.
- Last. The tasks run in the last week of the month.
Returned for Monthly interval only.

dayOfWeek String Day of the week that tasks run. Returns one of the following codes:
- Day. Tasks run on the first day or last day of the month, based on the selected
weekOfMonth option.
- Sunday
- Monday
- Tuesday
- Wednesday
- Thursday
- Friday
- Saturday
Returned for Monthly interval only.

timeZone String Time zone of the user who last updated the schedule. Time zone honors Daylight
Saving Time.

POST Request
To update a schedule, use the schedule ID with the following URI. To create a schedule, omit the optional
schedule ID.
/api/v2/schedule/<id>
You can submit a partial update using partial mode. To submit a request using partial mode, use a JSON
request and include the following line in the header:
Update-Mode=PARTIAL
You can use the following attributes in a schedule object:

Field Type Required Description

id String Required Schedule ID.


for
updates
only

orgId String Yes Organization ID.

name String Yes Schedule name.

description String Description of the schedule.

startTime Date/time Yes Date and time when the schedule starts running.

startTimeUTC Date/time Yes Date and time when the schedule starts running. Uses Coordinated
Universal Time (UTC).

Schedules 95
Field Type Required Description

endTime Date/time Date and time when the schedule stops running. If you do not use this
parameter, the schedule runs indefinitely.

96 Chapter 2: Platform REST API version 2 resources


Field Type Required Description

interval String Yes Interval or repeat frequency at which the schedule runs. Use one of the
following options:
- None. Tasks run at the schedule start time. The schedule does not
repeat.
- Minutely. Tasks run on an interval based on the specified number of
minutes, days, and time range. You can use the following parameters:
- frequency. Frequency in minutes that tasks run.
- sun, mon, tue, wed, thu, fri, sat. The days of the week that tasks
run.
- startTimeRange and endTimeRange. The time range within a day
tasks should run. Do not use if you want tasks to run all day.
- endTime. When the schedule should stop running. Do not use if you
want the schedule to run indefinitely.
- Hourly. Tasks run on an hourly interval based on the start time of the
schedule. You can use the following parameters:
- frequency. Frequency in hours that tasks run.
- sun, mon, tue, wed, thu, fri, sat. The days of the week that tasks
run.
- startTimeRange and endTimeRange. The time range within a day
tasks should run. Do not use if you want tasks to run all day.
- endTime. When the schedule should stop running. Do not use if you
want the schedule to run indefinitely.
- Daily. Tasks run on a daily interval based on the start time configured
for the schedule. You can use the following parameters:
- frequency. Frequency in days that tasks run.
- weekDay. Runs the tasks every weekday. Do not use if you want the
tasks to run every day.
- endTime. When the schedule should stop running. Do not use if you
want the schedule to run indefinitely.
- Weekly. Tasks run on a weekly interval based on the start time of the
schedule. You can use the following parameters:
- sun, mon, tue, wed, thu, fri, sat. The days of the week that tasks
run.
- endTime. When the schedule should stop running. Do not use if you
want the schedule to run indefinitely.
- Biweekly. Tasks run every two weeks based on the start time of the
schedule. You can use the following parameters:
- sun, mon, tue, wed, thu, fri, sat. The days of the week that tasks
run.
- endTime. When the schedule should stop running. Do not use if you
want the schedule to run indefinitely.
- Monthly. Tasks run on a monthly interval based on the start time of
the schedule. You can use the following parameters:
- dayOfMonth. Day of the month when you want tasks to run,
between 1-28.
- dayOfWeek. Day of the week when you want tasks to run.
- weekOfMonth. Week of the month when you want tasks to run.
- endTime. When the schedule should stop running. Do not use if you
want the schedule to run indefinitely.
To indicate when tasks should run, use dayOfWeek with
weekOfMonth, such as the First Monday. Or use dayOfMonth, such as
1.
Tip: To run tasks on the last day of the month, use the Last
weekOfMonth parameter with the Day dayOfWeek parameter.

Schedules 97
Field Type Required Description

frequency Int Yes Repeat frequency for tasks. Use one of the following values:
- For the Minutely interval, use one of the following options: 5, 10, 15,
20, 30, 45.
- For the Hourly interval, use one of the following options: 1, 2, 3, 4, 6,
8, 12.
- For Daily intervals, use number of days between 1 -30.
Default is 1.
Use with Minutely, Hourly, and Daily intervals only.

rangeStartTime Date/time The start of the time range within a day that you want tasks to run.
Enter a date and time using standard date/time format. Only the time
portion is used.
Use with Minutely and Hourly intervals only.

rangeEndTime Date/time The end of the time range within a day that you want tasks to run. Enter
a date and time using standard date/time format. Only the time portion
is used.
Use with Minutely and Hourly intervals only.

sun Boolean Runs tasks on Sunday at the configured time.


You can use the sun - sat parameters to run tasks on several days of the
week.
Use with Minutely, Hourly, Weekly, and Biweekly intervals only.

mon Boolean Runs tasks on Monday at the configured time.


See description for sun.

tue Boolean Runs tasks on Tuesday at the configured time.


See description for sun.

wed Boolean Runs tasks on Wednesday at the configured time.


See description for sun.

thu Boolean Runs tasks on Thursday at the configured time.


See description for sun.

fri Boolean Runs tasks on Friday at the configured time.


See description for sun.

sat Boolean Runs tasks on Saturday at the configured time.


See description for sun.

weekDay Boolean Runs tasks on weekdays. Use one of the following options:
- True. Run tasks on Monday through Friday. Does not run tasks on the
weekend.
- False. Run tasks every day.
Use with the Daily interval only.

dayOfMonth Int Date of the month that tasks should run. Use a date between 1-28.
Use with the Monthly interval only.
Tip: To run tasks on the last day of the month, use the Last
weekOfMonth parameter with the Day dayOfWeek parameter.

98 Chapter 2: Platform REST API version 2 resources


Field Type Required Description

weekOfMonth String Week of the month that tasks should run. Use with dayOfWeek to
specify the day and week of the month that tasks should run. For
example, the First Day or the Last Wednesday of the month.
Use one of the following options:
- First
- Second
- Third
- Fourth
- Last
Use with the Monthly interval only.

dayOfWeek String Day of the week that tasks should run. Use with weekOfMonth to specify
the day and week of the month that tasks should run. For example, the
First Day or the Last Wednesday of the month.
Use one of the following options:
- Day
- Sunday
- Monday
- Tuesday
- Wednesday
- Thursday
- Friday
- Saturday
Use with the Monthly interval only.

timeZone String Time zone to use for the schedule. If no valid time zone is passed,
Informatica Intelligent Cloud Services uses the user's time zone.
For more information, see Appendix A, “Time zone codes” on page 581

POST Response
Returns the schedule response object for the schedule that you created or updated.

Returns an error object if errors occur.

DELETE Request
To delete a schedule, use the schedule ID with the following URI:
/api/v2/schedule/<id>

DELETE Response
Returns the 200 response code if the request is successful.

Returns an error object if errors occur.

GET Example
To request information about all schedules in the organization, you might use the following request:
GET <serverUrl>/api/v2/schedule
Content-Type: application/json
Accept: application/json
icSessionId: <icSessionId>
A successful request returns a schedule object for each schedule in the organization.

Schedules 99
Secure Agents and services
Use this resource to receive an install token to register a Secure Agent, download the checksum of the agent
installation program, request the details about Informatica Cloud Secure Agents or Secure Agent services, or
delete a Secure Agent.

GET request for Secure Agent install token and checksum


To request an install token so that you can complete the Secure Agent registration process or to get the
checksum of the agent installation program, include the platform type in the URI as follows:
/api/v2/agent/installerInfo/<platform>
Use one of the following values for the platform:

• win64
• linux64

GET response for Secure Agent install token and checksum


A successful request returns the download URL, install token, and checksum download URL, as shown in the
following sample response:
{
"@type": "agentInstallerInfo",
"downloadUrl": "[Link]
agent64_install_ng_ext/6403/win64/agent64_install_ng_ext.[Link]",
"installToken":
"PJ7NVrQ0SGpnpbmJ8K5yte18HLDw305DwPgP_jxG1R4KiOY9BL6qxV7jWiv7wSEfg7mQHKRWX6kcEVph1xjswX",
"checksumDownloadUrl": "[Link]
agent64_install_ng_ext/6403/win64/agent64_install_ng_ext.6403_win64.sha256"
}
To verify the checksum on Windows, use a third-party utility, for example, HashMyFiles or 7-Zip, to find the
checksum for the Secure Agent installation program and compare it to the checksum in the [Link]
file. The hashing algorithm is CRC-32.

To verify the checksum on Linux, run the command cksum <Secure Agent installer filename> and
compare the checksum to the checksum in the [Link] file. The first column of the command output is
the checksum.

GET request for agent details


You can request the details about Secure Agents or details about the services that run on Secure Agents.

Secure Agent details

To request the details about all Secure Agents in the organization, use the following URI:
/api/v2/agent
To request a list of all the Secure Agents that are currently not assigned to any group, use the following
URI:
/api/v2/agent/?includeUnassignedOnly=true
To request the details about a particular Secure Agent, you can include the Secure Agent ID or the
Secure Agent name in the URI. Use one of the following URIs:
/api/v2/agent/<agent ID>
/api/v2/agent/name/<name>

100 Chapter 2: Platform REST API version 2 resources


If you use the Secure Agent name in the request and the Secure Agent name includes a space, replace
the space with %20. For example:
/api/v2/agent/name/special%20agent
Secure Agent services status and details

To request the status of services that run on all of the Secure Agents in the organization, use the
following URI:
/api/v2/agent/details
To request the status of services that run on a particular Secure Agent, include the agent ID in the URI as
follows:
/api/v2/agent/details/<agent ID>
If you want the response to include Secure Agent details in addition to the status, include the following
parameter in the request: ?onlyStatus=false. For example, the following request returns the
agentEngineStatus and agentEngineConfigs objects for a specified Secure Agent:
/api/v2/agent/details/<agent ID>?onlyStatus=false

GET response for agent details


Returns the agent object for the requested Secure Agent ID or Secure Agent name.

If you request information for all Secure Agents in the organization, returns an agent object for each Secure
Agent in the organization.

If you request details for agent services, returns an AgentEngine object in addition to the agent object.

Returns the error object if errors occur.

The agent object includes the following attributes:

Field Type Description

id String Secure Agent ID.

orgId String Organization ID.

name String Secure Agent name.

description String Description of the Secure Agent.

createTime Date/time Time the Secure Agent was created.

updateTime Date/time Last time the Secure Agent was updated.

createdBy String User who created the Secure Agent.

updatedBy String User who updated the Secure Agent.

active Boolean Whether the Secure Agent is active. Returns true or false.

readyToRun Boolean Whether the Secure Agent is ready to run a task. Returns true or false.

platform String Platform of the Secure Agent machine. Returns one of the following values:
- win64
- linux64

Secure Agents and services 101


Field Type Description

agentHost String Host name of the Secure Agent machine.

proxyHost String Host name of the outgoing proxy server that the Secure Agent uses.

proxyPort Int Port number of the outgoing proxy server.

proxyUser String User name to connect to the outgoing proxy server.

agentVersion String Secure Agent version.

spiUrl String This field is no longer applicable and has been deprecated.

upgradeStatus String Upgrade status.

lastUpgraded Date/time Last time the Secure Agent was upgraded.

lastUpgradeCheck Date/time Last time the Secure Agent was checked for upgrade.

lastStatusChange Date/time Last time the Secure Agent status was updated.

packages String This field is no longer applicable and has been deprecated.

configUpdateTime Date/time Last time a user updated Secure Agent properties.

agentGroupId String ID of the Secure Agent group.

agentConfigs This object is no longer applicable and has been deprecated.

name String Included in the agentConfig object.


Deprecated.

type String Included in the agentConfig object.


Deprecated.

subtype String Included in the agentConfig object.


Deprecated.

value String Included in the agentConfig object.


Deprecated.

customized Boolean Included in the agentConfig object.


Deprecated.

overridden Boolean Included in the agentConfig object.


Deprecated.

defaultValue String Included in the agentConfig object.


Deprecated.

platform String Included in the agentConfig object.


Deprecated.

102 Chapter 2: Platform REST API version 2 resources


If you request details for the services that run on Secure Agents, the agent object also includes the
AgentEngine object. The AgentEngine object includes the following attributes:

Field Type Description

agentEngineStatus Status of the agent service, which includes information in the AgentEngineStatus
object.

appname String Included in the AgentEngineStatus object.


The service name that is used internally.

appDisplayName String Included in the AgentEngineStatus object.


The service name that displays in the user interface.

appversion String Included in the AgentEngineStatus object.


The service version. The version number changes each time you modify the
service.

replacePolicy - Used for internal purposes only.

status String Included in the AgentEngineStatus object.


The status of the service. Possible values include:
- RUNNING. The service is running and ready to accept jobs.
- DEPLOYING: The service is being provisioned.
- STOPPED. The service has been stopped.
- ERROR. The service is in an error state.
- NEED_RUNNING. The start process is set to begin or has started.
- NEED_STOP. The stop process is set to begin or has started.

desiredStatus - Used for internal purposes only.

subState String Included in the AgentEngineStatus object.


A value of 0 indicates that the service is operational. All other values indicate
that the service is not operational.

createTime Date/time Included in the AgentEngineStatus object.


The time the service was created.

updateTime Date/time Included in the AgentEngineStatus object.


The last time the service was updated.

agentEngineConfigs Defines agent service properties. Includes information in an engineConfig object


for each agent service property.
Included when the request includes the parameter statusOnly=false.

type String Included in the engineConfig object.


Configuration type.

name String Included in the engineConfig object.


Configuration property name.

value String Included in the engineConfig object.


Value of the property.

Secure Agents and services 103


Field Type Description

platform String Included in the engineConfig object.


Deprecated. Use the platform field in the agent object instead.

customized Boolean Included in the engineConfig object.


Whether the property is in the custom configuration details. Returns true or false.

GET example
To request the details about the Secure Agent with an ID of 10044030000000000GC, to be returned in JSON
format, you might use the following request:
GET <serverUrl>/api/v2/agent/10044030000000000GC
Content-Type: application/json
Accept: application/json
icSessionId: <icSessionId>
The following example shows a successful response:
{
"@type": "agent",
"id": "10044030000000000GC",
"orgId": "010025",
"name": "MyAgent",
"createTime": "2021-02-25T00:42:39:000Z",
"updateTime": "2021-02-25T00:42:39:000Z",
"createdBy": "larry104",
"updatedBy": "larry104",
"active": "false",
"readyToRun": "false",
"platform": "linux64",
"agentHost": "agentHost5",
"serverUrl": "[Link]
"proxyPort": "0",
"upgradeStatus": "NotUpgrading",
"federatedId": "6iPQuOsH1YAfnJvhZWPZjI",
"createTimeUTC": "2021-02-25T00:42:39:000Z",
"updateTimeUTC": "2021-02-25T00:42:39:000Z",
"agentGroupId": "01000125000000000002"
}

DELETE request
You can delete a Secure Agent if it is not associated with any connections. Before you delete a Secure Agent,
update associated connections to use another Secure Agent.

To delete a Secure Agent, use the Secure Agent ID in the following URI:
/api/v2/agent/<id>

DELETE response
Returns the 200 response code if the request is successful.

Returns the error object if errors occur.

104 Chapter 2: Platform REST API version 2 resources


Server time
Use this resource to return the local time for the Informatica Intelligent Cloud Services server.

GET Request
To request the local time of the Informatica Intelligent Cloud Services server, use the following URI.
/api/v2/server/serverTime

GET Response
Returns the serverTime object if the request is sucessful. Returns an error object if errors occur.

The serverTime object includes the following attribute:


time

Local time of the Informatica Intelligent Cloud Services server.

GET Example
To check the local time of the Informatica Intelligent Cloud Services server, you might use the following
request:
GET <serverUrl>/api/v2/server/serverTime
Content-Type: application/xml
Accept: application/xml
icSessionId: <icSessionId>

Tasks
Use this resource to request a list of tasks of a specified type. You can use this resource to retrieve the name
and ID for a task.

Do not use this resource to obtain a task ID to run a job. Instead, use the lookup resource. The lookup
resource returns the federated task ID which is required to run a task that is not located in the Default folder.

Do not use this resource for a file ingestion and replication task. Instead, use the file ingestion and
replication job resource. For more information see, “Tasks” on page 501.

GET Request
To request a list of tasks of a specified type, use the task type code in the following URI:
/api/v2/task?type=<type>
Use the following attribute in the URI:

Field Required Description

type Yes For Data Integration, use one of the following codes:
- DMASK. Masking task.
- DRS. Replication task.
- DSS. Synchronization task.
- MTT. Mapping task.
- PCS. PowerCenter task.

Server time 105


GET Response
If the request is successful, returns the task object for every task of the requested type. Returns the error
object if errors occur.

The task object includes the following attributes:

Field Type Description

id String Task ID.

orgId String Organization ID.

name String Task name.

description String Description.

createTime String Time the task was created.

updateTime String Last time the task was updated.

createdBy String User who created the task.

updatedBy String User who last updated the task.

GET Example
To view a list of all synchronization tasks, use the following request.
GET <ServerUrl>/api/v2/task?type=DSS
Content-Type: applicaion/json
Accept: application/json
icSessionId: <SessionId>

Users
Use this resource to request the details of an Informatica Intelligent Cloud Services user account or the
details of all user accounts in the organization. If you have administrator privileges, you can also use this
resource to create or update a user account and to delete a user account. To ensure organization security,
this resource does not display or update the password for a user account.

Note: To leverage full user management capabilities, use the version 3 users resource instead of the version
2 user resource. The version 3 users resource supports users, user groups, and roles. The version 2 user
resource does not support user groups and roles, and a GET request might not return all users in the
organization.

GET Request
To request the details of all Informatica Intelligent Cloud Services user accounts, use the following URI:
/api/v2/user

106 Chapter 2: Platform REST API version 2 resources


To request the details of a particular Informatica Intelligent Cloud Services user account, you can include the
user account ID or user name in the URI. Use one of the following URIs:
/api/v2/user/<id>
/api/v2/user/name/<name>
If you use the user name in the URI and the user name includes a space, replace the space with %20. For
example:
/api/v2/user/name/Fred%20Smith

GET Response
When you request the details for a user account, Informatica Intelligent Cloud Services returns the user
object for the requested user account. When you request the details of all user accounts, Informatica
Intelligent Cloud Services returns the user object for each user account in the organization.

The user object includes the following attributes:

Field Type Description

id String User ID.

orgId String ID of the organization the user belongs to.


22 characters.
Note: Organizations that were created in legacy Informatica Cloud might have an
organization ID of 6 characters.

orgUuid String Unique identifier for the organization.

name String Informatica Intelligent Cloud Services user name.

description String Description of the user.

createTime String When the user account was created.

updateTime String When the user account was last updated

createdBy String Informatica Intelligent Cloud Services user who created the user account.

updatedBy String Informatica Intelligent Cloud Services user who last updated the user account.

sfUsername String Salesforce user name. Included when user is configured to authenticate through
Salesforce.

password String Salesforce user password. Included when user is configured to authenticate
through Salesforce.

firstName String First name for the user account.

lastName String Last name for the user account.

title String Title of the user.

phone String Phone number for the user.

Users 107
Field Type Description

securityQuestion String Security question. Returns one of the following codes:


- SPOUSE_MEETING_CITY
- FIRST_JOB_CITY
- CHILDHOOD_FRIEND
- MOTHER_MAIDEN_NAME
- PET_NAME
- CHILDHOOD_NICKNAME
- CUSTOM_QUESTION:"<question>"

securityAnswer String Answer to the security question.

roles Object that includes a role object for each role assigned to the user.

name String Included in role object.


Role name. Returns one of the following codes:
- Service Consumer
- Designer
- Admin

description String Included in role object.


Role description.

emails String Email address to be notified when the user changes the account password.

timezone String Time zone of the user. Time zone honors Daylight Saving Time.
For more information, see “Time zone codes” on page 581 .

serverUrl String Informatica Intelligent Cloud Services URL for the organization the user belongs
to. Use the serverUrl as a base for most version 2 REST API resource URIs.

spiUrl String This field is no longer applicable and has been deprecated.

uuId String Unique identifier for the user.

icSessionId String Informatica Intelligent Cloud Services session ID for version 2 REST API session.
Use in most version 2 REST API request headers.

forceChangePassword Boolean Determines if the user must reset the password after the user logs in for the first
time. Includes the following values:
- True. The user must reset the password.
- False. The user is not forced to reset the password.

POST Request
You must be logged in as an administrator in order to create users or update user details. To update the
details of an existing user account, use the user account ID in the following URI.
/api/v2/user/<id>
To create a new Informatica Intelligent Cloud Services user account, omit the optional user account ID in the
URI.

To create a SAML single sign-on user account, do not include password.

108 Chapter 2: Platform REST API version 2 resources


You can use the following attributes in a user object:

Field Type Required Description

orgId String Yes ID of the organization the user will belong to.
22 characters.
Note: Organizations that were created in legacy Informatica Cloud
might have an organization ID of 6 characters. You can find the
organization ID using the login resource.

name String Yes Informatica Intelligent Cloud Services user name. Must be a valid
email address when creating a user account using this resource.
Maximum length is 255 characters.

sfUsername String - Salesforce user name.

password String Yes, unless Informatica Intelligent Cloud Services password.


the user is a Do not include if the user is a SAML single sign-on user and the
SAML single organization is SAML enabled.
sign-on
user. Maximum length is 255 characters.

firstName String Yes First name for the user account.

lastName String Yes Last name for the user account.

title String Yes Title of the user.

phone String Yes Phone number for the user.

emails String - Email address to be notified when the user changes the account
password.

description String - Description of the user.

timezone String - Time zone of the user. Time zone honors Daylight Saving Time. Use
the appropriate time zone code.
If no valid time zone is passed, Informatica Intelligent Cloud
Services uses America/Los_Angeles by default.
For more information, see “Time zone codes” on page 581 .

securityQuestion String - Security question. Use one of the following codes to select the
security question:
- SPOUSE_MEETING_CITY
- FIRST_JOB_CITY
- CHILDHOOD_FRIEND
- MOTHER_MAIDEN_NAME
- PET_NAME
- CHILDHOOD_NICKNAME
- CUSTOM_QUESTION:"<question>"

securityAnswer String - Answer to the security question.

roles Yes Object that includes a role object for each role to be assigned to
the user.

Users 109
Field Type Required Description

name String Yes Include in the role object.


Role to assign to the user. Use one of the following values:
- Service Consumer
- Designer
- Admin

description String - Include in the role object.


Description of the role.

forceChangePassword String - Determines if the user must reset the password after the user logs
in for the first time. Includes the following values:
- True. The user must reset the password.
- False. The user is not forced to reset the password.

POST Response
Returns the user response object for the requested user account. Or, if you requested information for all user
accounts, returns the user response object for each user account in the organization.

Returns an error object if errors occur.

DELETE Request
To delete a user, use the user account ID in the following URI.
/api/v2/user/<id>

DELETE Response
Returns the 200 response code if the request is successful.

Returns an error object if errors occur.

POST Example
To create a new user, you might use the following request:
POST <serverUrl>/api/v2/user/<id>
Content-Type: application/xml
Accept: application/xml
icSessionId: <icSessionId>

<user>
<orgId>00342000</orgId>
<name>username@[Link]</name>
<firstName>User</firstName>
<lastName>Name</lastName>
<title>developer</title>
<password>UserPassword</password>
<phone>5555555555</phone>
<email>larry@[Link]</email>
<roles>
<role>
<name>Designer</name>
</role>
</roles>
<timezone>America/Chicago</timezone>
</user>

110 Chapter 2: Platform REST API version 2 resources


Chapter 3

Platform REST API version 3


resources
The REST API version 3 resources in this section apply to multiple services under Informatica Intelligent
Cloud Services.

When you use version 3 resources, note the following rules:

• Use JSON format.


• Use the baseApiUrl value from the login response as the base URL. For example:
[Link]
• Use the following URI:
/public/core/v3/<API name>
• Use the following request header format:
<METHOD> <baseApiUrl>/<URI> HTTP/<HTTP version>
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID: <SessionId>
In the following example, the baseApiUrl is [Link] and the URI
is /public/core/v3/schedule:
<METHOD> [Link] HTTP/1.1
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID: 9KA11tLGqxVcGeul8SQBK3
Note: If you use a tool such as Postman that automatically includes the HTTP version, do not enter the HTTP
version in the URL. If the HTTP version appears twice in the URL, the request fails.

Elastic runtime environments


Manage an elastic runtime environment, including its environment configuration, images, runtime
environment association, supplementary file specification, and tokens.

Environment configurations
Use the ClusterConfig resource to retrieve, create, and update the environment configuration for an elastic
runtime environment.

111
Getting configuration details
You can request the details for a specific configuration.

GET request
To get configuration details, use the following URI:
/public/core/v3/ClusterConfig/<config_id>

GET response
If successful, returns the following information for a configuration:

Field Type Description

id String Configuration ID.

orgId String ID of the organization the configuration belongs to.

infaManaged Boolean Whether the configuration is managed by Informatica.

clusterName String Name of the configuration.

description String Description of the configuration.

cloudPlatform String Cloud platform hosting the configuration.

haEnabled Boolean Whether high availability is enabled.

region String Region in which the configuration is located.

subnets Array Subnets used within the network.

masterNodeInstanceType String Instance type to host the master node.

maxWorkerNodes Integer Maximum number of worker nodes to use.

minWorkerNodes Integer Minimum number of worker nodes to use.

workerNodeIdleTimeout Integer Amount of time in minutes before a worker node times out.

workerNodeInstanceType String Instance type to host a worker node.

workerNodeVolumeSize Integer Volume size of a worker node.

systemDiskConfig Escaped string Properties of the system storage, if configured. Includes the
representation of JSON file system, source mount, and access point.

dataDisksConfig Escaped string Properties of the data storage, if configured. Includes the file
representation of JSON system, source mount, and access point.

initScriptPath String Not used. An elastic runtime environment doesn't use


initialization scripts.

masterNodeIAMRole String IAM role for the master node.

workerNodeIAMRole String IAM role for the worker nodes.

112 Chapter 3: Platform REST API version 3 resources


Field Type Description

imageRegistryHost String Domain name or IP address of the registry hosting the


container images.

imageRegistryUser String User name to log into the image registry host.

imageRegistryPassword String Password to log into the image registry host.

dateDeployed Date Date when the image was deployed.

miscTags Escaped string Tags associated with the cloud ecosystem.


representation of JSON

GET response example


To get configuration details, use the following request:
GET <baseApiUrl>/public/core/v3/ClusterConfig/<config_id>
Content-type: application/json
Accept: application/json
INFA-SESSION-ID: <SessionId>
If successful, you might receive a response like the following example:
[
{
"id": "5MdLmj0YXoce2osMD2mT0r",
"orgId": "dx7DSOIGiiPh6XQoZKpAmC",
"infaManaged": false,
"clusterName": "test-cluster",
"description": "Description of the cluster",
"cloudPlatform": "AWS",
"haEnabled": false,
"region": "us-west-1",
"subnets": [
"subnet-1",
"subnet-2"
],
"masterNodeInstanceType": "[Link]",
"maxWorkerNodes": 10,
"minWorkerNodes": 1,
"workerNodeIdleTimeout": 5,
"workerNodeInstanceType": "[Link]",
"workerNodeVolumeSize": 100,
"systemDiskConfig": "{\"id\": \"\", \"sourceMount\": \"\", \"accessPoint\": \"\"}",
"dataDisksConfig": "[{\"id\": \"\", \"sourceMount\": \"\", \"targetMount\": \"\",
\"accessPoint\": \"\"}]",
"initScriptPath": "/path/to/script",
"masterNodeIAMRole": "masterRole",
"workerNodeIAMRole": "workerRole",
"imageRegistryHost": "[Link]",
"imageRegistryUser": null,
"imageRegistryPassword": null,
"dateDeployed": null,
"miscTags": "{\"cloudEcosystemTags\":[{\"key\":\"k1\",\"val\":\"v1\"},{\"key
\":\"k2\",\"val\":\"v2\"}],\"runtimeProperties\":[{\"key\":\"k1\",\"val\":\"v1\"},{\"key
\":\"k2\",\"val\":\"v2\"}]}"
}
]

Elastic runtime environments 113


Creating a configuration
If you have administrator privileges, you can use the ClusterConfig resource to create a configuration.

POST request
To create a configuration, send a POST request using the following URI:
/public/core/v3/ClusterConfig
Include the following information:

Field Type Required Description

orgId String Yes ID of the organization the configuration belongs to.

infaManaged Boolean Yes Whether the configuration is managed by Informatica.


Set to false.

clusterName String Yes Name of the configuration.

description String - Description of the configuration.

cloudPlatform String Yes Cloud platform hosting the configuration. Set to AWS.

haEnabled Boolean Yes Whether high availability is enabled.

region String Yes Region in which the configuration is located.

subnets Array Yes Subnets used within the network. Enter the subnet
name, not the subnet ID.
Note: The subnets field is dependent on the haEnabled
field:
- If haEnabled = true, subnets should have two values.
- If haEnabled = false, subnets should be empty or
null.

masterNodeInstanceType String Yes Leave this field empty.

maxWorkerNodes Integer Yes Maximum number of worker nodes to use.

minWorkerNodes Integer Yes Minimum number of worker nodes to use.

workerNodeIdleTimeout Integer Yes Amount of time in minutes before a worker node times
out.

workerNodeInstanceType String Yes Instance type to host a worker node.

workerNodeVolumeSize Integer Yes Volume size of a worker node.

systemDiskConfig Escaped string Yes Properties of the system storage, if configured.


representation of Includes the file system, source mount, and access
JSON point.

dataDisksConfig Escaped string Yes Properties of the data storage, if configured. Includes
representation of the file system, source mount, and access point.
JSON

114 Chapter 3: Platform REST API version 3 resources


Field Type Required Description

initScriptPath String Yes Not used. An elastic runtime environment doesn't use
initialization scripts.

masterNodeIAMRole String Yes IAM role for the master node.

workerNodeIAMRole String - Not used.

imageRegistryHost String - Not used.

imageRegistryUser String - Not used.

imageRegistryPassword String - Not used.

dateDeployed Date - Leave this field empty.

miscTags Escaped string Yes Cloud ecosystem tags and runtime properties.
representation of Each tag category is required, but their values can be
JSON empty. For example:
"miscTags": "{\"cloudEcosystemTags\":
[],\"runtimeProperties\":[]}"

POST response
If successful, returns the ClusterConfig object in the POST request.

POST example
To create a configuration, send a request similar to the following example:
POST <baseApiUrl>/public/core/v3/ClusterConfig
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID: <sessionId>
{
"orgId": "dx7DSOIGiiPh6XQoZKpAmC",
"infaManaged": false,
"clusterName": "test-cluster-102",
"description": "Description of the cluster",
"cloudPlatform": "AWS",
"haEnabled": false,
"region": "ap-south-1",
"subnets": [
"subnet-name1",
"subnet-name2"
],
"masterNodeInstanceType": "",
"maxWorkerNodes": 10,
"minWorkerNodes": 1,
"workerNodeIdleTimeout": 5,
"workerNodeInstanceType": "c4.2xlarge",
"workerNodeVolumeSize": 100,
"systemDiskConfig": "{\"id\": \"\", \"sourceMount\": \"\", \"accessPoint\": \"\"}",
"dataDisksConfig": "[{\"id\": \"\", \"sourceMount\": \"\", \"targetMount\": \"\",
\"accessPoint\": \"\"}]",
"initScriptPath": "/path/to/script",
"masterNodeIAMRole": "masterRole",
"workerNodeIAMRole": "workerRole",
"imageRegistryHost": "[Link]",
"imageRegistryUser": "user",
"imageRegistryPassword": "password",

Elastic runtime environments 115


"dateDeployed": null,
"miscTags": "{\"cloudEcosystemTags\":[{\"key\":\"k1\",\"val\":\"v1\"},{\"key
\":\"k2\",\"val\":\"v2\"}],\"runtimeProperties\":[{\"key\":\"k1\",\"val\":\"v1\"},{\"key
\":\"k2\",\"val\":\"v2\"}]}"
}
If successful, you might receive a response like the following example:
{
"id": "89Dnw937Al30sN40ia9Oat",
"orgId": "dx7DSOIGiiPh6XQoZKpAmC",
"infaManaged": false,
"clusterName": "test-cluster-102",
"description": "Description of the cluster",
"cloudPlatform": "AWS",
"haEnabled": false,
"region": "ap-south-1",
"subnets": [
"subnet-name1",
"subnet-name2"
],
"masterNodeInstanceType": "",
"maxWorkerNodes": 10,
"minWorkerNodes": 1,
"workerNodeIdleTimeout": 5,
"workerNodeInstanceType": "c4.2xlarge",
"workerNodeVolumeSize": 100,
"systemDiskConfig": "{\"id\": \"\", \"sourceMount\": \"\", \"accessPoint\": \"\"}",
"dataDisksConfig": "[{\"id\": \"\", \"sourceMount\": \"\", \"targetMount\": \"\",
\"accessPoint\": \"\"}]",
"initScriptPath": "/path/to/script",
"masterNodeIAMRole": "masterRole",
"workerNodeIAMRole": "workerRole",
"imageRegistryHost": "[Link]",
"imageRegistryUser": "user",
"imageRegistryPassword": "password",
"dateDeployed": null,
"miscTags": "{\"cloudEcosystemTags\":[{\"key\":\"k1\",\"val\":\"v1\"},{\"key
\":\"k2\",\"val\":\"v2\"}],\"runtimeProperties\":[{\"key\":\"k1\",\"val\":\"v1\"},{\"key
\":\"k2\",\"val\":\"v2\"}]}"
}

Updating a configuration
If you have administrator privileges, you can use the ClusterConfig resource to update a configuration.

PUT request
To update a configuration, send a PUT request using the following URI:
/public/core/v3/ClusterConfig/<advanced_config_ID>
Include the following information:

Field Type Required Description

ID String Yes Configuration ID.

orgId String Yes ID of the organization the configuration belongs to.

infaManaged Boolean Yes Whether the configuration is managed by Informatica.


Set to false.

clusterName String Yes Name of the configuration.

116 Chapter 3: Platform REST API version 3 resources


Field Type Required Description

description String - Description of the configuration.

cloudPlatform String Yes Cloud platform hosting the configuration. Set to AWS.

haEnabled Boolean Yes Whether high availability is enabled.

region String Yes Region in which the configuration is located.

subnets Array Yes Subnets used within the network. Enter the subnet
name, not the subnet ID.
Note: The subnets field is dependent on the haEnabled
field:
- If haEnabled = true, subnets should have two
values.
- If haEnabled = false, subnets should be empty or
null.

masterNodeInstanceType String Yes Leave this field empty.

maxWorkerNodes Integer Yes Maximum number of worker nodes to use.

minWorkerNodes Integer Yes Minimum number of worker nodes to use.

workerNodeIdleTimeout Integer Yes Amount of time in minutes before a worker node times
out.

workerNodeInstanceType String Yes Instance type to host a worker node.

workerNodeVolumeSize Integer Yes Volume size of a worker node.

systemDiskConfig Escaped string Yes Properties of the system storage. Includes the file
representation of system, source mount, and access point.
JSON

dataDisksConfig Escaped string Yes Properties of the data storage. Includes the file
representation of system, source mount, and access point.
JSON

initScriptPath String Yes Not used. An elastic runtime environment doesn't use
initialization scripts.

masterNodeIAMRole String Yes IAM role for the master node.

workerNodeIAMRole String - Not used.

imageRegistryHost String - Not used.

imageRegistryUser String - Not used.

imageRegistryPassword String - Not used.

Elastic runtime environments 117


Field Type Required Description

dateDeployed Date - Leave this field empty.

miscTags Escaped string Yes Cloud ecosystem tags and runtime properties.
representation of Each tag category is required, but their values can be
JSON empty. For example:
"miscTags": "{\"cloudEcosystemTags\":
[],\"runtimeProperties\":[]}"

PUT response
If successful, returns the ClusterConfig object in the PUT request.

PUT example
To update a configuration, send a request like the following example:
POST <baseApiUrl>/public/core/v3/ClusterConfig/<config_ID>
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID: <sessionId>
{
"id": "89Dnw937Al30sN40ia9Oat",
"orgId": "dx7DSOIGiiPh6XQoZKpAmC",
"infaManaged": false,
"clusterName": "test-cluster-102",
"description": "Description of the cluster",
"cloudPlatform": "AWS",
"haEnabled": false,
"region": "ap-south-1",
"subnets": [
"subnet-name1",
"subnet-name2"
],
"masterNodeInstanceType": "",
"maxWorkerNodes": 10,
"minWorkerNodes": 1,
"workerNodeIdleTimeout": 5,
"workerNodeInstanceType": "c4.2xlarge",
"workerNodeVolumeSize": 100,
"systemDiskConfig": "{\"id\": \"\", \"sourceMount\": \"\", \"accessPoint\": \"\"}",
"dataDisksConfig": "[{\"id\": \"\", \"sourceMount\": \"\", \"targetMount\": \"\",
\"accessPoint\": \"\"}]",
"initScriptPath": "/path/to/script",
"masterNodeIAMRole": "masterRole",
"workerNodeIAMRole": "workerRole",
"imageRegistryHost": "[Link]",
"imageRegistryUser": null,
"imageRegistryPassword": "null",
"dateDeployed": null,
"miscTags": "{\"cloudEcosystemTags\":[{\"key\":\"k1\",\"val\":\"v1\"},{\"key
\":\"k2\",\"val\":\"v2\"}],\"runtimeProperties\":[{\"key\":\"k1\",\"val\":\"v1\"},{\"key
\":\"k2\",\"val\":\"v2\"}]}"
}
If successful, you receive a response like the following example:
{
"id": "89Dnw937Al30sN40ia9Oat",
"orgId": "dx7DSOIGiiPh6XQoZKpAmC",
"infaManaged": false,
"clusterName": "test-cluster-102",
"description": "Description of the cluster",
"cloudPlatform": "AWS",
"haEnabled": false,

118 Chapter 3: Platform REST API version 3 resources


"region": "ap-south-1",
"subnets": [
"subnet-name1",
"subnet-name2"
],
"masterNodeInstanceType": "",
"maxWorkerNodes": 10,
"minWorkerNodes": 1,
"workerNodeIdleTimeout": 5,
"workerNodeInstanceType": "c4.2xlarge",
"workerNodeVolumeSize": 100,
"systemDiskConfig": "{\"id\": \"\", \"sourceMount\": \"\", \"accessPoint\": \"\"}",
"dataDisksConfig": "[{\"id\": \"\", \"sourceMount\": \"\", \"targetMount\": \"\",
\"accessPoint\": \"\"}]",
"initScriptPath": "/path/to/script",
"masterNodeIAMRole": "masterRole",
"workerNodeIAMRole": "workerRole",
"imageRegistryHost": "[Link]",
"imageRegistryUser": null,
"imageRegistryPassword": "null",
"dateDeployed": null,
"miscTags": "{\"cloudEcosystemTags\":[{\"key\":\"k1\",\"val\":\"v1\"},{\"key
\":\"k2\",\"val\":\"v2\"}],\"runtimeProperties\":[{\"key\":\"k1\",\"val\":\"v1\"},{\"key
\":\"k2\",\"val\":\"v2\"}]}"
}

Images
Use the RuntimeApplicationImage resource to list the images for an elastic runtime environment.

GET request
To list all available images, use the following URI:
/public/core/v3/ais/RuntimeApplicationImage?
runtimeEnvironmentId=<rteId>&includeAllImageStates=<true or false>
Include the following parameter:

Parameter Type Description

rteId String Runtime environment ID from which images are downloaded.

includeAllImageStates Boolean Returns the current stage of the image download until it's complete.

The following table lists the potential error codes for a request:

HTTP status code Description

401 Unauthenticated or unauthorized.

403 Privilege [Link] is required for accessing this API.

GET response
If successful, a list of available images is returned.

Elastic runtime environments 119


GET response examples
To list available images for download, use the following request:
GET <baseApiUrl>/public/core/v3/RuntimeApplicationImage?
runtimeEnvironmentId=<rteId>&includeAllImageStates=<true or false>
Content-type: application/json
Accept: application/json
INFA-SESSION-ID: <SessionId>
If successful, you might receive a "200 OK" response like the following example:
[
{
"appSpecName": "Data_Integration",
"appSpecVersion": "64.0",
"dependencies": "package-Administrator_R1.226",
"imageName": "Data_Integration",
"imageVersion": "64.0",
"imageRepositoryPath": "[Link]/
3SLs6FMAlJ0lGGyI0pMK0g/rteId1/DataIntegration:64.0",
"rteGroupId": "rteId1",
"orgId": "3SLs6FMAlJ0lGGyI0pMK0g",
"imageState": "IMAGE_BAKE_COMPLETE",
"endTime": "2022-10-31T07:06:59.000Z",
"helmChartPath": "helmChartPath"
},
{
"appSpecName": "Data_Integration",
"appSpecVersion": "64.1",
"dependencies": "package-Administrator_R1.226,
"imageName": "Data_Integration,
"imageVersion": "64.1",
"imageRepositoryPath": "[Link]/
3SLs6FMAlJ0lGGyI0pMK0g/rteId1/DataIntegration:64.1",
"rteGroupId": "rteId1",
"orgId": "3SLs6FMAlJ0lGGyI0pMK0g",
"imageState": "IMAGE_BAKE_COMPLETE",
"endTime": "2022-10-31T07:06:59.000Z",
"helmChartPath": "helmChartPath"
}
]
If you have insufficient privileges, you might receive a "403 Forbidden" response like the following example:
{
"error": {
"code": "AIS_007",
"message": "Privilege - [Link] required for accessing this API.",
"debugMessage": "Privilege - [Link] required for accessing this
API.",
"requestId": "l2EpwkFoqkEjrEJURclPw2",
"details": null
}
}

Runtime environment associations


Use the RuntimeEnvironment resource to manage the association between an environment configuration and
an elastic runtime environment.

120 Chapter 3: Platform REST API version 3 resources


Reading a runtime environment association by elastic runtime environment
identifier
You can request details about the association between a cluster and the elastic runtime environment using
the runtime environment identifier.

GET request
To get the association between the configuration and the runtime environment, use the following URI:
/public/core/v3/RuntimeEnvironment/<rte_id>/Cluster
Where <rte_id> is the runtime environment identifier.

GET response
If successful, returns the following information for the association:

Field Type Description

rteId String Runtime environment ID.

clusterId String Configuration ID.

namespace String Namespace used.

createdBy String Name of the user who created the association.

GET response example


To get the association between the configuration and runtime environment, use the following request:
GET <baseApiUrl>/public/core/v3/RuntimeEnvironment/<rte_id>/Cluster
Content-type: application/json
Accept: application/json
INFA-SESSION-ID: <SessionId>
If successful, you might receive a response like the following example:
{
"rteId": "01B0IV2500000000035Y",
"clusterId": "5gic8zWc1G7fSDQVJRpUEh",
"namespace": "test-namespace-1",
"createdBy": "test-user-1"
}

Reading a runtime environment association by cluster identifier


You can request details about the association between a cluster and the elastic runtime environment using
the configuration identifier.

GET request
To get the association between the configuration and the runtime environment, use the following URI:
/public/core/v3/RuntimeEnvironment/<cluster_id>/Cluster
Where <cluster_id> is the configuration identifier.

Elastic runtime environments 121


GET response
If successful, returns the following information for the association:

Field Type Description

rteId String Runtime environment ID.

clusterId String Configuration ID.

namespace String Namespace used.

createdBy String Name of the user who created the association.

GET response example


To get the association between the configuration and runtime environment, use the following request:
GET <baseApiUrl>/public/core/v3/RuntimeEnvironment/<cluster_id>/Cluster
Content-type: application/json
Accept: application/json
INFA-SESSION-ID: <SessionId>
If successful, you might receive a response like the following example:
{
"rteId": "01B0IV2500000000035Y",
"clusterId": "5gic8zWc1G7fSDQVJRpUEh",
"namespace": "test-namespace-1",
"createdBy": "test-user-1"
}

Associating a configuration with a runtime environment


You can associate a cluster with a runtime environment.

POST request
To associate a configuration with a runtime environment, use the following URI:
/public/core/v3/RuntimeEnvironment/<rte_id>/Cluster/<cluster_id>
Where <rte_id> is the runtime identifier identifier and <cluster_id> is the configuration identifier.

Include the following information:

Field Type Required Description

namespace String - Namespace of the configuration.

122 Chapter 3: Platform REST API version 3 resources


POST response
If successful, returns the following information:

Field Type Description

rteId String Runtime environment ID.

clusterId String Configuration ID.

namespace String Namespace used.

createdBy String Name of the user who created the association.

POST response example


To associate a configuration and runtime environment, use the following request:
GET <baseApiUrl>/public/core/v3/RuntimeEnvironment/<rte_id>/Cluster/<cluster_id>
Content-type: application/json
Accept: application/json
INFA-SESSION-ID: <SessionId>
If successful, you receive a response similar to the following example:
{
"rteId": "01B0IV2500000000035Y",
"clusterId": "5gic8zWc1G7fSDQVJRpUEh",
"namespace": "test-namespace-1",
"createdBy": "test-user-1"
}

Supplementary files
Use the RuntimeEnvironment resource to get, update, and delete the supplementary file specification for an
elastic runtime environment.

Getting the supplementary file specification


Get the supplementary file specification to view the supplementary files that are available to an elastic
runtime environment.

GET request
Use the following URI:
/api/v3/RuntimeEnvironment/<runtime environment ID>/ElasticConfig

GET response
If successful, returns the supplementary file specification. The response includes the following fields:

Field Type Description

rteId String Runtime environment ID.

specification Object Supplementary file specification.

For information about the fields in the specification, see “Updating the supplementary file specification” on
page 124.

Elastic runtime environments 123


If the elastic runtime environment doesn't have a supplementary file specification, returns an empty
specification.

GET request example


The following sample request gets the supplementary file specification for an elastic runtime environment:
GET <base URL>/api/v3/RuntimeEnvironment/<runtime environment ID>/ElasticConfig
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID: <SessionId>

Updating the supplementary file specification


Update the supplementary files that are available to an elastic runtime environment by updating the
specification.

After you update the supplementary file specification, all affected Secure Agent services automatically
restart and use the updated specification.

POST request
Use the following URI:
/api/v3/RuntimeEnvironment/<runtime environment ID>/ElasticConfig
When you specify the source path for a file, use the subdirectory under the file system mount point. For
example, if you create a /mnt/efs directory to use as the file system mount point and you create a /mnt/efs/
jdbc directory to store JDBC drivers, use /jdbc/<file name> as the source path.

For more information about creating an EFS file system for data storage and mounting it, see Runtime
Environments in the Administrator help.

Include the following fields in the request:

Field Type Description

rteId String Runtime environment ID.

specification Object Supplementary file


specification.

agent Object Secure Agent configuration.

[Link] Object Data Ingestion and


Replication files. List each
JAR file individually.
Includes the following
details:
- jdbcDrivers
- oracle

[Link] Array of JDBC drivers for Data


objects Ingestion and Replication.

[Link][].sourcePath String Path to a JDBC driver JAR


file.

124 Chapter 3: Platform REST API version 3 resources


Field Type Description

[Link] Object Oracle drivers and version


information for Data
Ingestion and Replication.
Includes the following
details:
- jdbcDrivers
- ociDrivers
- version

[Link] Array of Oracle JDBC drivers.


objects

[Link][].sourcePath String Path to an Oracle JDBC


driver JAR file.

[Link] Array of Oracle OCI drivers.


objects

[Link][].sourcePath String Path to an Oracle OCI driver


file.

[Link] String Oracle version.

[Link] Object Data Integration Server files.


Includes the following
details:
- jdbcv2
- jdbcDrivers
- odbc
- odbcInst
- mysql
- sap
- ssls

[Link].jdbcv2 Object JDBC V2 drivers for the Data


Integration Server. List each
JAR file individually.
Includes the following driver
types:
- common
- spark

[Link] Array of Common JDBC drivers.


objects

[Link][].sourcePath String Path to a common JDBC


driver JAR file.

[Link] Array of Spark-specific JDBC drivers.


objects

[Link][].sourcePath String Path to a Spark-specific


JDBC driver JAR file.

Elastic runtime environments 125


Field Type Description

[Link] Array of Additional JDBC drivers for


objects the Data Integration Server.
List each JAR file
individually.

[Link] String Path to an additional JDBC


driver JAR file.

[Link] Object MySQL drivers and version


information for the Data
Integration Server. List each
JAR file individually.
Includes the following
details:
- jdbcDrivers
- odbcDrivers
- version

[Link] Array of MySQL JDBC drivers.


objects

[Link][].sourcePath String Path to a MySQL JDBC driver


JAR file.

[Link] Array of MySQL ODBC drivers.


objects

[Link][].sourcePath String Path to a MySQL ODBC


driver file.

[Link] String MySQL version.

[Link] Object ODBC drivers and DSNs for


the Data Integration Server.
Includes the following
details:
- drivers
- dsns

[Link] Array of ODBC drivers.


objects

[Link][].sourcePath String Path to an ODBC driver file.

[Link] Array of ODBC DSN entries. Each


objects entry is written to the
[Link] file and must
include all required
components. Includes the
following details:
- name
- entries as key-value pairs

[Link][].name String Name of the ODBC DSN in


the [Link] file.

126 Chapter 3: Platform REST API version 3 resources


Field Type Description

[Link][].entries Array of Entries as key-value pairs in


objects the [Link] file.

[Link][].entries[].key String Key of the DSN entry.

[Link][].entries[].value String Value of the DSN entry.

[Link] Object ODBCINST drivers and DSNs


for the Data Integration
Server. Includes the
following details:
- drivers
- dsns

[Link] Array of ODBCINST drivers.


objects

[Link][].sourcePath String Path to an ODBCINST driver


file.

[Link] Array of ODBCINST DSN entries. Each


objects entry is written to the
[Link] file and
must include all required
components. Includes the
following details:
- name
- entries as key-value pairs

[Link][].name String Name of the ODBCINST DSN


in the [Link] file.

[Link][].entries Array of Entries as key-value pairs in


objects the [Link] file.

[Link][].entries[].key String Key of the DSN entry.

[Link][].entries[].value String Value of the DSN entry.

[Link] Object SAP details for the Data


Integration Server. Includes
the following details:
- jcos
- nwrfcs
- hanas

[Link] Array of SAP JCo library files.


objects

[Link][].sourcePath String Path to an SAP JCo library


file.

[Link] Array of SAP NetWeaver RFC library


objects files.

Elastic runtime environments 127


Field Type Description

[Link][].sourcePath String Path to an SAP NetWeaver


RFC library file.

[Link] Array of SAP HANA library files.


objects

[Link][].sourcePath String Path to an SAP HANA library


file.

[Link] Array of SSL details for the Data


objects Integration Server. Includes
the following details:
- fileCopy
- importCerts

[Link][].fileCopy Object SSL keystore/truststore file.

[Link][].[Link] String Path to an SSL keystore/


truststore file.

[Link][].importCerts Object Certificate import details.


Includes the following
details:
- certName
- alias

[Link][].[Link] String Certificate name to import.

[Link][].[Link] String Alias for the imported


certificate in the keystore.

[Link] Object Elastic Server files. Includes


the following details:
- javaTxResources
- jdbcv2
- nativeBinResources
- nativeLibResources

[Link] Array of Java transformation


objects resource files for the Elastic
Server.

[Link][].sourcePath String Path to a Java


transformation resource file.

[Link].jdbcv2 Object JDBC V2 drivers for the


Elastic Server. List each JAR
file individually. Includes the
following driver types:
- common
- spark

[Link] Array of Common JDBC drivers.


objects

128 Chapter 3: Platform REST API version 3 resources


Field Type Description

[Link][].sourcePath String Path to a common JDBC


driver JAR file for theElastic
Server.

[Link] Array of Spark-specific JDBC drivers.


objects

[Link][].sourcePath String Path to a Spark-specific


JDBC driver JAR file for the
Elastic Server.

[Link] Array of Native binary resource files


objects for the Elastic Server.

[Link][].sourcePath String Path to a native binary


resource file.

[Link] Array of Native library resource files


objects for the Elastic Server.

[Link][].sourcePath String Path to a native library


resource file.

[Link] Object Executable scripts. Includes


the following details:
- scriptPath
- scriptArgs
- currentDirectory

[Link] String Path to the script. The script


runs on the master node.

[Link] Array of Arguments to pass to the


strings script when it runs.

[Link] String Working directory that the


script runs in.

[Link] Object JDK policy.

[Link] Array of JDK policy JAR files. List


strings each JAR file individually.

[Link] Array of SSL store files.


objects

[Link][].sourcePath String Path to an SSL store file.

POST response
If successful, returns the updated supplementary file specification.

POST request example


The following sample POST request updates a supplementary file specification:
POST <base URL>/api/v3/RuntimeEnvironment/<runtime environment ID>/ElasticConfig
Content-Type: application/json

Elastic runtime environments 129


Accept: application/json
INFA-SESSION-ID: <SessionId>

{
"rteId": "rte-12345",
"specification": {
"agent": {
"databaseIngestion": {
"jdbcDrivers": [{"sourcePath": "/dbingest/[Link]"}],
"oracle": {
"jdbcDrivers": [{"sourcePath": "/oracle/[Link]"}],
"ociDrivers": [{"sourcePath": "/oracle/[Link]"}],
"version": "19c"
}
},
"dataIntegrationServer": {
"jdbcv2": {
"common": [{"sourcePath": "/jdbc/[Link]"}],
"spark": [{"sourcePath": "/jdbc/[Link]"}]
},
"jdbcDrivers": [{"sourcePath": "/jdbc/[Link]"}],
"mysql": {
"jdbcDrivers": [{"sourcePath": "/mysql/[Link]"}],
"odbcDrivers": [{"sourcePath": "/mysql/[Link]"}],
"version": "8.0"
},
"odbc": {
"drivers": [{"sourcePath": "/odbc/[Link]"}],
"dsns": [{"name": "dsn1", "entries": [{"key": "Server", "value":
"localhost"}]}]
},
"odbcInst": {
"drivers": [{"sourcePath": "/odbcinst/[Link]"}],
"dsns": [{"name": "dsn2", "entries": [{"key": "Port", "value": "1234"}]}]
},
"sap": {
"jcos": [{"sourcePath": "/sap/jco1"}],
"nwrfcs": [{"sourcePath": "/sap/nwrfc1"}],
"hanas": [{"sourcePath": "/sap/hana1"}]
},
"ssls": [
{
"fileCopy": {"sourcePath": "/ssl/[Link]"},
"importCerts": {"certName": "mycert", "alias": "myalias"}
}
]
},
"elasticServer": {
"javaTxResources": [{"sourcePath": "/elastic/[Link]"}],
"jdbcv2": {
"common": [{"sourcePath": "/elastic/jdbc/[Link]"}],
"spark": [{"sourcePath": "/elastic/jdbc/[Link]"}]
},
"nativeLibResources": [{"sourcePath": "/elastic/[Link]"}],
"nativeBinResources": [{"sourcePath": "/elastic/nativeBin"}]
},
"executableScript": {
"scriptPath": "/scripts/[Link]",
"scriptArgs": ["--env", "prod"],
"currentDirectory": "/scripts"
},
"jdk": {
"policyJars": [
"/datadisk/jdk/policy/unlimited/US_export_policy.jar",
"/datadisk/jdk/policy/unlimited/local_policy.jar"
]
},
"sslStore": [{"sourcePath": "/ssl/[Link]"}]
}
}
}

130 Chapter 3: Platform REST API version 3 resources


Deleting the supplementary file specification
Delete a supplementary file specification so that an elastic runtime environment no longer uses the
supplementary files.

After you delete the supplementary file specification, all affected Secure Agent services automatically restart
and no longer use the supplementary files.

POST request
Use the following URI:
/api/v3/RuntimeEnvironment/<runtime environment ID>/ElasticConfig
Include the following fields in the request:

Field Type Description

rteId String Runtime environment ID.

specification Object Supplementary file specification set to null.

POST response
If successful, returns an empty specification.

POST example
The following sample POST request deletes a supplementary file specification:
POST <base URL>/api/v3/RuntimeEnvironment/<runtime environment ID>/ElasticConfig
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID: <SessionId>

{
"rteId": "<runtime environment ID>",
"specification": null
}

Tokens
Use the containerImageToken resource to manage your organization's tokens for elastic runtime
environments.

Getting a new token


If you have Kubernetes DevOps engineers privileges, you can request a token that you can use to access and
download images from the artifactory.

GET request
To get a new token, use the following URI:
/public/core/v3/containerimagetoken/create

Elastic runtime environments 131


The following table lists the potential error codes for a request:

HTTP status code Description

401 Unauthenticated or unauthorized.

403 Insufficient privilege. The [Link] privilege is required to access this API.

GET response
If successful, returns the token ID and the token value.

GET response examples


To get a new token, use the following request:
GET <baseApiUrl>/public/core/v3/containerimagetoken/create
Content-type: application/json
Accept: application/json
INFA-SESSION-ID: <SessionId>
If successful, you might receive a "200 OK" response like the following example:
{
"tokenId":"<token ID>",
"tokenValue":"<token value>"
}
If you have insufficient privileges, you might receive a "403 Forbidden" response like the following example:
{
"error": {
"code": "AIS_007",
"message": "Privilege - [Link] required for accessing this API.",
"debugMessage": "Privilege - [Link] required for accessing this
API.",
"requestId": "l2EpwkFoqkEjrEJURclPw2",
"details": null
}
}
If the token has been revoked, you might receive a "400 Bad Request" response like the following example:
{
"error": {
"code": "AIS_014",
"message": "Token with id:<token ID> already revoked.",
"debugMessage": "Token with id:<token ID> already revoked.",
"requestId": "iVdlwEoaFiZd3vb0LvLVmp",
"details": null
}
}

Revoking a token
If you have Kubernetes DevOps engineers privileges, you can revoke a token.

DELETE request
To revoke a token, use the following URI:
/public/core/v3/containerImageToken/revoke/<tokenId>

132 Chapter 3: Platform REST API version 3 resources


Include the following parameter:

Parameter Type Description

tokenId String ID of the token to be revoked.

The following table lists the potential error codes for a request:

HTTP status code Description

400 Token with id:{tokenId} already revoked.

400 User:{0} is not authorized to revoke this token.

401 Unauthenticated or unauthorized.

403 Privilege [Link] is required for accessing this API.

DELETE response
If successful, the token is revoked.

DELETE response examples


To revoke a token, use the following request:
DELETE <baseApiUrl>/public/core/v3/containerImageToken/revoke/<tokenId>
Content-type: application/json
Accept: application/json
INFA-SESSION-ID: <SessionId>
If successful, you receive a "200 OK" response.

If you have insufficient privileges, you might receive a "403 Forbidden" response like the following example:
{
"error": {
"code": "AIS_007",
"message": "Privilege - [Link] required for accessing this API.",
"debugMessage": "Privilege - [Link] required for accessing this
API.",
"requestId": "l2EpwkFoqkEjrEJURclPw2",
"details": null
}
}
}
If the token has already been revoked, you might receive a "400 Bad Request" response like the following
example:
{
"error": {
"code": "AIS_014",
"message": "Token with id:<token ID> already revoked.",
"debugMessage": "Token with id:<token ID> already revoked.",
"requestId": "iVdlwEoaFiZd3vb0LvLVmp",
"details": null
}
}
}

Elastic runtime environments 133


If you are not authorized to revoke the token, you might receive a "400 Bad Request" response like the
following example:
{
"error": {
"code": "AIS_013",
"message": "User:k8s is not authorized to revoke this token :<token ID>.",
"debugMessage": "User:k8s is not authorized to revoke this token :<token ID>.",
"requestId": "iLhZ6l6EF6Ddb3jICTGxoj",
"details": null
}
}

Getting all tokens for an organization


If you have Kubernetes DevOps engineers privileges, you can list all the tokens for the organization.

GET request
To list all tokens for the organization, use the following URI:
/public/core/v3/containerImageToken
Include the following parameter:

Parameter Type Description

orgId String Organization ID to see the generated tokens.

The following table lists the potential error codes for a request:

HTTP status code Description

401 Unauthenticated or unauthorized.

403 Privilege [Link] is required for accessing this API.

GET response
If successful, a list of all the tokens for the organization is returned.

GET response examples


To list available images for download, use the following request:
GET <baseApiUrl>/public/core/v3/containerImageToken
Content-type: application/json
Accept: application/json
INFA-SESSION-ID: <SessionId>
If successful, you might receive a "200 OK" response like the following example:
[
{
"orgId": "52ZSTB0IDK6dXxaEQLUaQu",
"userId": "admin",
"tokenId": "<token ID>",
"expirationTime": "2022-10-31T07:06:59.000Z"
},
{
"orgId": "52ZSTB0IDK6dXxaEQLUaQu",
"userId": "admin",
"tokenId": "<token ID>",

134 Chapter 3: Platform REST API version 3 resources


"expirationTime": "2022-10-31T07:06:59.000Z"
}
]
If you have insufficient privileges, you might receive a "403 Forbidden" response like the following example:
{
"error": {
"code": "AIS_007",
"message": "Privilege - [Link] required for accessing this API.",
"debugMessage": "Privilege - [Link] required for accessing this
API.",
"requestId": "l2EpwkFoqkEjrEJURclPw2",
"details": null
}
}

Export and import


Use the export and import resources to migrate assets and other objects from one organization to another.

To use the export and import resources, the source and target organizations must have the appropriate
license.

To migrate objects, you export them from the source organization and then import them into the target
organization.

You can include up to 1000 objects in an export job or import job.

When you export assets, you can choose whether to include dependent objects. During the import operation,
you can choose which assets to import.

Informatica Intelligent Cloud Services does not include schedule information when you export an asset. After
the import operation, you can associate the imported assets with schedules. Also, when you export and
import schedules, the schedules are not associated with any assets.

The export and import resources do not migrate the associated state of the objects from the source
organization to the target organization. To migrate the state of the objects that you migrate, use the
fetchState and loadState resources.

Secure Agent configuration


You can export the configuration of a Secure Agent and import the configuration at the Secure Agent or
Secure Agent group level. You might want to migrate the configuration of a Secure Agent to apply the same
configuration to individual Secure Agents or all Secure Agents in a Secure Agent group.

After you export the Secure Agent configuration, you can make revisions to the configuration in the JSON file
that's included in the export package before you import it.

Data Integration objects


For Data Integration, you can export and import the following types of objects:

• Mappings
• Tasks
• Advanced taskflows
• Linear taskflows
• Business services

Export and import 135


• Fixed-width configuration files
• Hierarchical schemas
• Mapplets
• Saved queries
• Connections
• Schedules
• Secure Agent configuration

Application Integration objects


For Application Integration, you can export and import the following types of objects:

• Processes
• Guides
• Connections
• Service connectors
• Process objects
• Secure Agent configuration

Data Quality objects


For Data Quality, you can export and import the following types of objects:

• CLEANSE
• DEDUPLICATE
• DICTIONARY
• EXCEPTION
• LABELER
• PARSE
• RULE_SPECIFICATION
• VERIFIER

MDM SaaS assets


For MDM SaaS, you can export and import the following types of assets:

• Predefined and custom business entities


• Reference data sets, code lists, and crosswalks
• Hierarchies
• Relationships
• Job definitions
• Authorization
• Business events
• Report sets
• Reports
• Business applications
• Custom pages

136 Chapter 3: Platform REST API version 3 resources


• Predefined and custom source systems
• Components
• Dynamic pools

Exporting objects
Use this resource with the import resource to migrate objects from one organization to another.

Exporting objects includes a series of requests and responses. The end result is a ZIP file that contains the
exported objects. To export objects, you perform the following tasks:

1. Log in to the source organization.


2. Send an objects GET request with query parameters to get a list of objects to export. Or, if you already
know which objects you want to export, send a lookup GET request to get the object IDs for the objects
that you want to export.
Informatica Intelligent Cloud Services returns the object IDs.
See “Objects” on page 205 and “Lookup” on page 171.
3. Send an export POST request to start the export job, using the object IDs returned in the objects or
lookup response.
Informatica Intelligent Cloud Services returns the job ID for the export job.
See “Starting an export job” on page 137.
4. Send an export GET request to get the status of the export job, using the export job ID for the export
package.
Informatica Intelligent Cloud Services returns the job ID and status. The response can also include a list
of the objects in the export package.
See “Getting the export job status” on page 140.
5. Send an export GET request to download the export package.
Informatica Intelligent Cloud Services returns the export package in a ZIP file.
See “Downloading an export package” on page 144.

Note: This resource uses a dynamic rate limit. When the system experiences a large volume or size of
requests, responses might be slow or fail with the error message, "too many requests."

Starting an export job


Use a POST request to start an export job.

POST request
You can export objects such as assets, connections, Secure Agent configurations, and schedules. To specify
the objects to export and start the export job, use the following URI:
/public/core/v3/export

Exporting objects 137


Include the following fields in the request:

Field Type Required Description

name String Name of the export job. If a name is not specified, the default
name will be used in the following format: job-
<currentTimeInMilliseconds>

objects Collection Yes Object IDs for objects to export.


<complex Note: Informatica recommends that you include no more than
type> 1000 objects in an export file.

id String Yes Include in the objects object.


Global unique identifier for the export object. This can be a
project, folder, or asset ID.
To find the object ID, see “Objects” on page 205 or “Lookup” on
page 171 .

includeDependencies Boolean Include in the objects object.


Determines whether to include dependent objects for the assets
in the export.
Default is True.

If an asset includes tags, you can export the tags when you export the asset. To export asset tags, include
the includeTagInformation request parameter in the POST request.

Use the following URI:


/public/core/v3/export?includeTagInformation =true

POST request example


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

{
"name" : "testJob1",
"objects" : [
{
"id": "l7bgB85m5oGiXObDxwnvK9",
"includeDependencies" : true
},
{
"id": "1MW0GDAE1sFgnvWkvom7mK",
"includeDependencies" : false
},
{
"id": "iIVBNZSpUKFg4N6g2PKUox"
}
]
}

138 Chapter 3: Platform REST API version 3 resources


POST response
If successful, returns the following information for the export job:

Field Type Description

id String ID of the export job.

createTime String Time export package was created.

updateTime String Time export package was last updated.

name String Name of the import job.

startTime String Time the export job was started.

endTime String Time the export job ended.

status Complex type Status of the export.

state String Returned in the status object.


Status of the export job, such as In Progress, Success, or Failed.

message String Returned in the status object.


Export job status message.

objects Collection Collection of objects. Returns null if blank.

POST response examples


If successful, you might receive a response similar to the following example:
{
"id": "7evG9CokA1whk8ehF3opKM",
"createTime": "2017-10-26T08:15:48.502Z",
"updateTime": "2017-10-26T08:15:48.502Z",
"name": "testJob1",
"startTime": "2017-10-26T08:15:48.501Z",
"endTime": null,
"status": {
"state": "IN_PROGRESS",
"message": "In Progress"
},
"objects": null
}
If you receive an error, you might see a response similar to the following example:
{
"error": {
"code": "MigrationSvc_034",
"message": "Invalid object id/s [[242973wgfscbwasd23]]. Object resolution failed.",
"requestId": "2ataXVlgw3ydI1Yb2MA4sq"
}
}

Exporting objects 139


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

GET request
To obtain status of the export job, use one of the following URIs:

• To receive status of the export job, use the following URI, where <id> is the export job ID:
/public/core/v3/export/<id>
• To receive status for each object in the export job, use the following URI:
/public/core/v3/export/<id>?expand=objects
Continue polling the request until the state is SUCCESSFUL.

To download the export job log, use the following URI:


/public/core/v3/export/<id>/log

GET response
A request for an export job log returns the log in a text file.

A request for status returns the following export status information:

Field Type Description

id String ID of the export job.

createTime String Time the export job was created.

updateTime String Last time the export job was updated.

name String Name of the export job.

startTime String Start time of the export job.

endTime String End time of the export job.

status Complex type Status of the export job.

state String Returned in the status object.


State of the export job, such as In Progress, Success, or Failed.

message String Returned in the status object.


Export job status message.

objects Collection Objects in the export job. Returned only when the URI includes ?expand=objects

id String Returned in the objects object.


Global unique identifier for the export object requested.

name String Returned in the objects object.


Name of the object to export.

path String Returned in the objects object.


Complete path of the object to export.

140 Chapter 3: Platform REST API version 3 resources


Field Type Description

description String Returned in the objects object.


Description of the object to export.

status Complex type Returned in the objects object.


Export status of the individual object.

state String Returned in the status object.


Export state of the individual object, such as IN PROGRESS, SUCCESS, or FAILED.

message String Returned in the status object.


Export status message for the individual object.

GET request example


To get the status of the export job, you might use the following request:
GET <BaseApiUrl>/public/core/v3/export/7evG9CokA1whk8ehF3opKM
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID: <SessionId>
To get the status for an individual object in the export job, you might use the following request:
GET <BaseApiUrl>/public/core/v3/export/7evG9CokA1whk8ehF3opKM?expand=objects
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID: <SessionId>
To get the export job log, you might use the following request:
GET <BaseApiUrl>/public/core/v3/export/iklHoZTokKAiNO95Cw9NG3/log
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID: <SessionId>

GET response example


If your request for an export job's status is successful, you might receive a response similar to the following
example:
{
"id": "7evG9CokA1whk8ehF3opKM",
"createTime": "2017-10-26T08:15:48.502Z",
"updateTime": "2017-10-26T08:15:48.502Z",
"name": "testJob1",
"startTime": "2017-10-26T08:15:48.501Z",
"endTime": null,
"status": {
"state": "IN_PROGRESS",
"message": "In Progress."
},
"objects": null
}
If your request included import status for individual objects, a successful response might be similar to the
following example:
{
"id": "7evG9CokA1whk8ehF3opKM",
"createTime": "2017-10-26T08:15:49.000Z",
"updateTime": "2017-10-26T08:15:50.000Z",
"name": "testJob1",
"startTime": "2017-10-26T08:15:49.000Z",

Exporting objects 141


"endTime": "2017-10-26T08:15:50.000Z",
"status": {
"state": "SUCCESSFUL",
"message": "Export completed successfully."
},
"objects": [
{
"id": "1MW0GDAE1sFgnvWkvom7mK",
"name": "Linear Taskflow",
"path": "/ICS Taskflow",
"type": "SAAS_LINEAR_TASKFLOW",
"description": null,
"status": {
"state": "SUCCESSFUL",
"message": null
}
},
{
"id": "1SuZ9Gf8LtphrJn9EdHCod",
"name": "SQL Server",
"path": "/DSS",
"type": "Folder",
"description": "",
"status": {
"state": "SUCCESSFUL",
"message": null
}
},
{
"id": "1Uf9PTj6kTjbsVYMk55OC6",
"name": "Synchronization Task Multi Source",
"path": "/Default/SQL Server",
"type": "SAAS_DSS",
"description": "",
"status": {
"state": "SUCCESSFUL",
"message": null
}
},
{
"id": "2UL9ZO9Z3OJeuxbL2cYbaX",
"name": "Synchronization Task Simple Filter",
"path": "/Default/SQL Server",
"type": "SAAS_DSS",
"description": "",
"status": {
"state": "SUCCESSFUL",
"message": null
}
},
{
"id": "31SzqpeEEKacy7OaXXCfaD",
"name": "Synchronization Task Multi Source",
"path": "/DSS/SQL Server",
"type": "SAAS_DSS",
"description": "",
"status": {
"state": "SUCCESSFUL",
"message": null
}
},
{
"id": "5FA0DnMzeuDbYZnn3hdto9",
"name": "Default",
"path": "/",
"type": "Project",
"description": "Auto-generated Default Project",
"status": {
"state": "SUCCESSFUL",
"message": null

142 Chapter 3: Platform REST API version 3 resources


}
},
{
"id": "5V5VpaoJGTNkWCB2f2t4MG",
"name": "Synchronization Task Simple Filter",
"path": "/DSS/SQL Server",
"type": "SAAS_DSS",
"description": "",
"status": {
"state": "SUCCESSFUL",
"message": null
}
},
{
"id": "7udJJF48H5Iizzry8gjUAb",
"name": "SQL Server",
"path": "/Default",
"type": "Folder",
"description": "",
"status": {
"state": "SUCCESSFUL",
"message": null
}
},
{
"id": "fIQLvhNnsqBjXKNfjyZFaH",
"name": "ICS Taskflow",
"path": "/",
"type": "Project",
"description": "",
"status": {
"state": "SUCCESSFUL",
"message": null
}
},
{
"id": "hGrgtrajWMUjNIsnLKQCAi",
"name": "SQL Server Linux",
"path": null,
"type": "SAAS_CONNECTION",
"description": null,
"status": {
"state": "SUCCESSFUL",
"message": null
}
},
{
"id": "iIVBNZSpUKFg4N6g2PKUox",
"name": "abc_map",
"path": "/Default",
"type": "MAPPING",
"description": "",
"status": {
"state": "SUCCESSFUL",
"message": null
}
},
{
"id": "l7bgB85m5oGiXObDxwnvK9",
"name": "DSS",
"path": "/",
"type": "Project",
"description": "",
"status": {
"state": "SUCCESSFUL",
"message": null
}
},
{
"id": "lOqsFQE4OSWeyg77AeWwK2",

Exporting objects 143


"name": "Linux",
"path": null,
"type": "SAAS_RUNTIME_ENVIRONMENT",
"description": null,
"status": {
"state": "SUCCESSFUL",
"message": null
}
}
]
}
If you requested an export job log, the contents of the text file might be similar to the following example:
> OIE_002 INFO 2019-02-05T22:50:08.788Z Starting export operation.
Execution Client: API
Job Name: m_RegionTotalNew-1549407002393
Organization: [Link]
RequestId: iklHoZTokKAiNO95Cw9NG3
User: janer2
> OIE_004 INFO 2019-02-05T22:50:09.042Z Successfully exported object [/SYS/
_SYSTEM_PROJECT] of type [Project] id [5UrdDrgV5yKerYgtJAA4IU]> OIE_004 INFO
2019-02-05T22:50:09.042Z Successfully exported object [/Explore/Accounts] of type
[Project] id [8Uyq1wiZ9lye2Sou5OCqOa]
> OIE_004 INFO 2019-02-05T22:50:09.126Z Successfully exported object [/SYS/
_SYSTEM_FOLDER] of type [Folder] id [b98UuC0ADGEkXxF9EIlUCZ]
> OIE_004 INFO 2019-02-05T22:50:09.126Z Successfully exported object [/Explore/Accounts/
February2018] of type [Folder] id [cojSZpHcqcafFy6YkCBgIl]
> OIE_004 INFO 2019-02-05T22:50:09.354Z Successfully exported object [/SYS/TMS26W0864]
of type [SAAS_RUNTIME_ENVIRONMENT] id [6TKTNZ3wfIIjV5yBTJmYWO]
> OIE_004 INFO 2019-02-05T22:50:09.504Z Successfully exported object [/SYS/ff] of type
[SAAS_CONNECTION] id [7GgahDJzE9GbYb75xQ35GM]
> OIE_004 INFO 2019-02-05T22:50:09.765Z Successfully exported object [/Explore/Accounts/
February2018/m_RegionTotalNew] of type [MAPPING] id [4LiKwGKgegAixI2awqWgK1]
> OIE_003 INFO 2019-02-05T22:50:09.843Z Finished export operation.
Job Name: m_RegionTotalNew-1549407002393
Start Time: 2019-02-05T22:50:03.000Z
End Time: 2019-02-05T22:50:09.765Z
Started by: janer2
Start Method: API
Source Organization: [Link]
Status: SUCCESSFUL

Downloading an export package


Use a GET request to download an export package.

GET request
To download the export package, use the following URI:
/public/core/v3/export/<id>/package
The <id> is the export job ID.

GET response
If successful, you receive the ZIP stream in the response body and the response type will be application/zip.

If unsuccessful, you might receive a response similar to the following example:


{
"error": {
"code": "MigrationSvc_017",
"message": "Export request with identifier [asdasduguyvasd8347] doesn't exist.",
"requestId": "2ataXVlgw3ydI1Yb2MA4sq"
}
}

144 Chapter 3: Platform REST API version 3 resources


Identity providers
You can use a JSON web token (JWT) as an OAuth access token to log in to Informatica Intelligent Cloud
Services. To log in using a JWT access token, your organization must have a registered identity provider. Use
the IdentityProviders resource to register and manage your identity provider.

You can use the IdentityProviders resource to accomplish the following tasks:

• Register an identity provider.


• Get details about an identity provider.
• Update an identity provider.
• Delete an identity provider.

Registering an identity provider


Use a POST request to register an identity provider.

Note: An organization can have no more than one registered identity provider.

POST request
To register an identity provider for an organization, use the following URI:
/public/core/v3/Orgs/<orgId>/IdentityProviders
Include the following fields in the request:

Field Type Required Description

type String Yes Type of identity provider.


Supported type is OIDC.

endPoints Object Yes Object that includes the URLs for the identity provider issuer and the JWT
tokens.

issuer String Yes Include in the endPoints object.


Absolute URL of the identity provider issuer.
Must use the same HTTPS scheme as the key URL and be a subset of the
key URL.
Maximum length is 255 characters.

keys String Yes Include in the endPoints object.


Absolute URL of the JWT tokens.
Must use the same HTTPS scheme as the issuer URL.
Maximum length is 255 characters.

accountPolicy Object Yes Object that defines the account policy.

link String Yes Include in the accountPolicy object.


Object that includes properties for identifying the user.

Identity providers 145


Field Type Required Description

tokenClaim String - Include in the link object.


Name of the claim to be used to identify the user for JWT validation.
Default is sub.
Maximum length is 64 characters.

matchType String Yes Include in the link object.


The Informatica Cloud attribute name to identify the Informatica Intelligent
Cloud Services user. Use one of the following values:
- aliasName
- uid
Maximum length is 64 characters.

signingAlgorithm String - Token signing algorithm. Use one of the following values:
- HS256
- HS 384
- HS512
- RS256
- RS384
- RS512
- ES256
- ES384
- ES412
- PS256
- PS384
- PS512
- EdDSA
- ES256K
Default is RS256.

POST response
If unsuccessful, returns an error object. If successful, returns the following information:

Field Type Description

id String User ID.

orgId String ID of the organization the user belongs to.

type String Type of identity provider.


Supported type is OIDC.

endPoints Object Object that includes the URLs for the identity provider issues and the JWT tokens.

issuer String Included in the endPoints object.


Absolute URL of the identity provider issuer.

keys String Included in the endPoints object.


Absolute URL of the JWT tokens.

accountPolicy Object Object that defines the account policy.

146 Chapter 3: Platform REST API version 3 resources


Field Type Description

link String Included in the accountPolicy object.


Object that includes properties for identifying the user.

tokenClaim String Included in the link object.


Name of the claim to be used to identify the user for JWT validation.

matchType String Included in the link object.


The Informatica Cloud attribute name to identify the Informatica Intelligent Cloud
Services user.

signingAlgorithm String Token signing algorithm.

createTime String When the identity provider was registered.

createdBy String Informatica Intelligent Cloud Services user who registered the identity provider.

updateTime String When the identity provider was last updated.

updatedBy String Informatica Intelligent Cloud Services user who last updated the identity provider.

POST request example


You might use a request similar to the following example:
POST <BaseApiUrl>/public/core/v3/Orgs/ppbg1kOl2Jo13b/IdentityProviders HTTP/<HTTP
version>
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID: <SessionId>

[Link]
IdentityProviders
{
"type": "OIDC",
"endPoints": {
"issuer": "[Link]
"keys": "[Link]
}
{
"accountPolicy": {
"link": {
"tokenClaim": "sub",
"matchType": "uid"
}
}
"signingAlgorithm": "HS256"
}

POST response example


If successful, you might receive a response similar to the following example:
{
"id" : "4aoljyi4ppbg1kOl2Jo13b",
"orgId" : "ppbg1kOl2Jo13b"
"type": "OIDC",
"endPoints": {
"issuer": "[Link]
"keys": "[Link]
} {
"accountPolicy": {
"link": {

Identity providers 147


"tokenClaim": "sub",
"matchType": "uid"
}
}
"signingAlgorithm": "HS256",
"createTime": "2019-03-06T22:04:00.000Z",
"createdBy": "a@[Link]",
"updateTime": "2019-03-06T22:04:00.000Z",
"updatedBy": "a@[Link]"
}

Getting identity provider details


Use a GET request to get the information about an identity provider.

GET request
To get information about the identity provider for an organization, use the following URI:
/public/core/v3/Orgs/<orgId>/IdentityProviders

GET response
If unsuccessful, returns an error object. If successful, returns the following information for the identity
provider:

Field Type Description

id String User ID.

orgId String ID of the organization the user belongs to.

type String Type of identity provider.


Supported type is OIDC.

endPoints Object Object that includes the URLs for the identity provider issuer and the JWT tokens.

issuer String Included in the endPoints object.


Absolute URL of the identity provider issuer.

keys String Included in the endPoints object.


Absolute URL of the JWT tokens.

accountPolicy Object Object that defines the account policy.

link String Included in the accountPolicy object.


Object that includes properties for identifying the user.

tokenClaim String Included in the link object.


Name of the claim to be used to identify the user for JWT validation. Default is sub.

matchType String Included in the link object.


The Informatica Cloud attribute name to identify the Informatica Intelligent Cloud
Services user.

signingAlgorithm String Token signing algorithm.

createTime String When the identity provider was registered.

148 Chapter 3: Platform REST API version 3 resources


Field Type Description

createdBy String Informatica Intelligent Cloud Services user who registered the identity provider.

updateTime String When the identity provider was last updated.

updatedBy String Informatica Intelligent Cloud Services user who last updated the identity provider.

GET request example


To get information about the identity provider for an organization, you might use the following request:
GET <BaseApiUrl>/public/core/v3/Orgs/ppbg1kOl2Jo13b/IdentityProviders
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID: <SessionId>

GET response example


If successful, you might receive a response similar to the following example:
[
{
"id" : "4aoljyi4ppbg1kOl2Jo13b",
"orgId" : "ppbg1kOl2Jo13b"
"type": "OIDC",
"endPoints": {
"issuer": "[Link]
"keys": "[Link]
} {
"accountPolicy": {
"link": {
"tokenClaim": "sub",
"matchType": "aliasName"
}
}
"signingAlgorithm": "HS256",
"createTime": "2019-03-06T22:04:00.000Z",
"createdBy": "a@[Link]",
"updateTime": "2019-03-06T22:04:00.000Z",
"updatedBy": "a@[Link]"
},
]

Updating an identity provider


Use a PUT request to update an identity provider.

PUT request
To update an identity provider, use the following URI:
/public/core/v3/Orgs/<orgId>/IdentityProviders/<identity provider ID>

Identity providers 149


You can include the following fields in the request:

Field Type Required Description

endPoints Object Yes Object that includes the URLs for the identity provider issuer and the JWT
tokens.

issuer String Yes Include in the endPoints object.


Absolute URL of the identity provider issuer.
Must use the same HTTPS scheme as the key URL and be a subset of the
key URL.
Maximum length is 255 characters.

keys String Yes Include in the endPoints object.


Absolute URL of the JWT tokens.
Must use the same HTTPS scheme as the issuer URL.
Maximum length is 255 characters.

accountPolicy Object Yes Object that defines the account policy.

link String Yes Include in the accountPolicy object.


Object that includes properties for identifying the user.

tokenClaim String - Include in the link object.


Name of the claim to be used to identify the user for JWT validation.
Default is sub.
Maximum length is 64 characters.

matchType String Yes Include in the link object.


The Informatica Cloud attribute name to identify the Informatica Intelligent
Cloud Services user. Use one of the following values:
- aliasName
- uid
Maximum length is 64 characters.

signingAlgorithm String - Token signing algorithm. Use one of the following values:
- HS256
- HS 384
- HS512
- RS256
- RS384
- RS512
- ES256
- ES384
- ES412
- PS256
- PS384
- PS512
- EdDSA
- ES256K
Default is RS256.

Returns the 204 response code if successful. Returns an error object if errors occurs.

Note: When you update an identity provider for an organization, it might take a negligible amount of time
before JWTs that conform to the updated configuration are accepted.

150 Chapter 3: Platform REST API version 3 resources


PUT request example
You might send a request similar to the following example:
PUT <BaseApiUrl>/public/core/v3/Orgs/<orgId>/IdentityProviders/<identity provider ID>
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID: <SessionId>

[Link]
IdentityProviders/6qnnXazBltUbOcUTYgyWO1
{
"endPoints": {
"issuer": "[Link]
"keys": "[Link]
},
"accountPolicy": {
"link": {
"tokenClaim": "user",
"matchType": "uid"
}
}
"signingAlgorithm": "RS512",
}

Deleting an identity provider


To delete an identity provider, include the identity provider ID in a DELETE request.

To delete an identity provider, use the following URI:


/public/core/v3/Orgs/<orgId>/IdentityProviders/<identity provider ID>
For example,
DELETE [Link]
IdentityProviders/6qnnXdzBdtUbObUTYhyWO1
Returns the 204 response code if successful. Returns an error object if errors occurs.

Note: When you delete an identity provider for an organization, it might take a negligible amount of time
before the JWTs that conform to the deleted identity provider are rejected.

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. Log in to the target organization.


2. Send an import POST request to upload the ZIP file.
Informatica Intelligent Cloud Services returns the job ID for the import job.
See “Uploading an import package” on page 152.
3. Send an import POST request to import objects.
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” on page 153.

Importing objects 151


4. Send an import GET request to get the status of the import job. You can also request status at the object
level.
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” on page 157.

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:

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 request example


To upload the import package, you might use the following response:
POST <BaseApiUrl>/public/core/v3/import/package
Content-Type: application/json

152 Chapter 3: Platform REST API version 3 resources


Accept: application/json
INFA-SESSION-ID: <SessionId>

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” on page 171.

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.

Importing objects 153


Field Type Required Description

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 - Include in the importSpecification object.


<complex type> 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.

154 Chapter 3: Platform REST API version 3 resources


Field Type Required Description

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 - Additional object specifications.


<complex type> 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"

Importing objects 155


}
]
},
{
"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",

156 Chapter 3: Platform REST API version 3 resources


"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 receive status of the import job, use the following URI:


/public/core/v3/import/<id>
• To receive status for each object in the import job, use the following URI:
/public/core/v3/import/<id>?expand=objects
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.

Importing objects 157


Field Type Description

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.

158 Chapter 3: Platform REST API version 3 resources


Field Type Description

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 request example


To receive status of an import job, you might use the following request:
GET <baseApiUrl>/public/core/v3/import/2oZb7vFI2QQg4ncd4AyCGn
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID: <SessionId>
To receive status for each object in the import job, you might use the following request:
GET <baseApiUrl>/public/core/v3/import/2oZb7vFI2QQg4ncd4AyCGn?expand=objects
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID: <SessionId>
To download the import job log, you might use the following request:
GET <baseApiUrl>/public/core/v3/import/<id>/log
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID: <SessionId>

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": [
{

Importing objects 159


"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: [Link]
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

160 Chapter 3: Platform REST API version 3 resources


IP addresses
Use the Orgs resource to get a list of trusted IP address ranges and add trusted IP address ranges. You can
also enable or disable trusted IP address filtering.

Note: A sub-organization's trusted IP ranges are independent of the parent organization's trusted IP ranges.

GET request
To request a list of trusted IP address ranges for an organization or a sub-organization, use the following URI:
/public/core/v3/Orgs/<organization ID>/TrustedIP

GET response
If the request is successful, the response includes the following information for the organization:

Field Type Description

orgId String Organization ID.

enableIP Boolean Whether IP address filtering is enabled.

ipRanges List Trusted IP address ranges for the organization.

startIP String Included in the ipRanges object.


The first IP address in a range of trusted IP addresses.

endIP String Included in the ipRanges object.


The last IP address in a range of trusted IP addresses.

GET example
To get a list of trusted IP ranges for an organization, you might send a request similar to the following
example:
GET <baseApiUrl>/public/core/v3/Orgs/6MRgiMIfvdRfUuCCCLICcI/TrustedIP
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID: <SessionId>
You might receive a response similar to the following example:
{
"id": "6MRgiMIfvdRfUuCCCLICcI",
"enableIP": false,
"ipRanges": [
{
"startIP": "[Link]",
"endIP": "[Link]"
}
]
}

PUT request
To add values of trusted IP ranges for an organization or a sub-organization and enable or disable trusted IP
ranges, send a PUT request using the following URI:
/public/core/v3/Orgs/<organization ID>/TrustedIP
Note: If you add trusted IP address ranges for an organization, existing trusted IP address ranges are
overwritten.

IP addresses 161
Include the following information:

Field Type Required Description

enableIP Boolean No Whether to enable IP address filtering. If enabled, at least one IP address range
must be specified.

ipRanges List No IP address ranges for the organization.

startIP String No Include in the ipRanges object.


The first IP address in a range of trusted IP addresses.

endIP String No Include in the ipRanges object.


The last IP address in a range of trusted IP addresses.

PUT response
If the request is successful, the response includes trusted IP address information for the specified
organization.

PUT request example


To enable the trusted IP addresses feature for an organization and add a range of trusted IP addresses, you
might send a request similar to the following example:
PUT <baseApiUrl>/public/core/v3/Orgs/6MRgiMIfvdRfUuCCCLICcI/TrustedIP
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID: 9KA11tLGqxVcGeul8SQBK3
{
"enableIP": true,
"ipRanges": [
{
"startIP": "[Link]",
"endIP": "[Link]"
}
]
}
You might receive a response similar to the following example:
{
"id": "6MRgiMIfvdRfUuCCCLICcI",
"enableIP": true,
"ipRanges": [
{
"startIP": "[Link]",
"endIP": "[Link]"
}
]
}
To add multiple ranges of trusted IP addresses, you might send a request similar to the following example:
PUT <baseApiUrl>/public/core/v3/Orgs/6MRgiMIfvdRfUuCCCLICcI/TrustedIP
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID: 9KA11tLGqxVcGeul8SQBK3
{
"enableIP": true,
"ipRanges": [{"startIP": "[Link]", "endIP":"[Link]"}, {"startIP":
"[Link]", "endIP":"[Link]"}, {"startIP": "[Link]", "endIP":"[Link]"}]
}

162 Chapter 3: Platform REST API version 3 resources


You might receive a response similar to the following example:
{
"id": "6MRgiMIfvdRfUuCCCLICcI",
"enableIP": true,
"ipRanges": [
{
"startIP": "[Link]",
"endIP": "[Link]"
},
{
"startIP": "[Link]",
"endIP": "[Link]"
}},
{
"startIP": "[Link]",
"endIP": "[Link]"
}
]
}

Key rotation
Use the key resource to get information about the organization's encryption key rotation settings and to
change the settings.

You must have the Key Admin role to view or change key rotation settings.

Getting key rotation interval settings


You can use the key resource to see the current key rotation interval for your organization and valid key
rotation intervals.

GET request
To get key rotation interval details, use the following URI:
/public/core/v3/key/rotationSettings

GET response
If successful, returns the following information:

Field Type Description

orgId String ID of the organization the user belongs to.

validRotationIntervals List <String> Valid key rotation intervals. To change the current key rotation interval to one
of these values, send a PATCH request.

rotationInterval String The current key rotation interval used for the organization.

GET request example


To get key interval rotation details, you might use the following request:
GET <baseApiUrl>/public/core/v3/key/rotationSettings
Content-Type: application/json

Key rotation 163


Accept: application/json
INFA-SESSION-ID: <SessionId>

GET response example


If successful, you might receive a response similar to the following example:
{
"orgId": "52ZSTB0IDK6dXxaEQLUaQu",
"validRotationIntervals": [
"90_DAYS",
"120_DAYS",
"180_DAYS",
"365_DAYS"
],
"rotationInterval": "365_DAYS"
}

Changing key rotation intervals


You can use the key resource to change the key rotation interval for the organization.

PATCH request
To change the key rotation interval, send a PATCH request using the following URI:
/public/core/v3/key/rotationSettings
Include the following information:

Field Type Required Description

rotationInterval String Yes The key rotation interval to use for the organization. Use one of the following
values:
- 90_DAYS
- 120_DAYS
- 180_DAYS
- 365_DAYS
Default is 365_DAYS.

PATCH response
Returns a success code if successful or an error object if errors occur.

PATCH example
To change the key rotation interval for an organization, you might send a request similar to the following
example:
POST <baseApiUrl>/public/core/v3/key/rotationSettings
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID: <sessionId>
{
"rotationInterval": "120_DAYS"
}

164 Chapter 3: Platform REST API version 3 resources


Licenses
Use the license resource to get license information about organizations and assign licenses to sub-
organizations. In order to assign licenses to a sub-organization, you must log in to the parent organization as
an administrator.

You can use the license resource to send the following requests:

• GET request to obtain an organization's editions, custom licenses, and custom limits.
• PUT request to update a sub-organization's license information.

Getting license details


Use a GET request to obtain an organization's editions, custom licenses, and custom limits.

GET request
To request license information for an organization or sub-organization, use the following URI:
/public/core/v3/license/org/<orgId>

GET response
Returns requested license information if successful or an error object if errors occur.

If successful, returns the following license information for the specified organization ID:

Field Type Description

customLicenses List Information about the organization's custom licenses.

licenseDef String Included in the customLicenses object.


The unique identifier for the custom license.

expirationDate String Included in the customLicenses object.


Time at which the license expires.

licenseType Included in the custom license object.


Type of license.
Includes the following values:
- TRIAL
- SUBSCRIPTION
- FREE
- NONE

assignedEditions List Information about the organization's editions in the edition object.

edition String Included in the edition object.


Unique identifier for the limit.

expirationDate String Included in the edition object.


Expiration date for the edition.

customLimits List Information about the organization's custom limits.

Licenses 165
Field Type Description

limitDefinition String Included in the customLimit object.


Unique identifier for the limit.

value Integer Included in the customLimit object.


Maximum uses of the limit.
Use -1 to indicate there is no maximum for the limit.

GET example
The following example shows a request for an organization's license information:
GET <baseApiUrl>/public/core/v3/license/org/1ax3wad2FEsz35asd2892s
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID: <sessionId>
The response includes license information for the organization as shown in the following example:
{
"id": "1ax3wad2FEsz35asd2892s",
"parentOrg": null,
"customLicenses": [
{
"licenseType": "SUBSCRIPTION",
"expirationDate": "2017-11-05T18:01:24Z",
"licenseDef": "a5Xjp3VF3sjcyZUDa6UaWh"
}
],
"assignedEditions": [
{
"expirationDate": "2017-11-05T18:01:24Z",
"edition": "4sdvnCrYEjfcKjTvAoigEF"
},
{
"expirationDate": "2018-10-06T18:00:08Z",
"edition": "5SPzPwEFvBEds8LzVwXX4K"
}
],
"customLimits": [
{
"value": -1,
"limitDefinition": "09cX4Tmi1qSfrS997ORMYl"
}
]
}

Updating a sub-organization's licenses


Use a PUT request to update a sub-organization's license information.

PUT request
In order to update licenses for a sub-organization, you must log in to the parent organization as an
administrator.

This request overwrites the sub-organization's licenses with the licenses in the request. To make changes to
a sub-organization's licenses, first request license information for the sub-organization, make your
modifications in the object, and then use it as the request body.

166 Chapter 3: Platform REST API version 3 resources


To update license information for a sub-organization, use the following URI:
/public/core/v3/license/org/<orgId>

PUT response
Returns a success code if successful or an error object if errors occur.

PUT example
To change a sub-organization's licenses, you might use the following request:
PUT <baseApiUrl>/public/core/v3/license/org/<orgId>
Content-Type: application/json
Accept:application/json
INFA-SESSION-ID: <sessionId>

{
"customLicenses": [
{
"licenseType": "SUBSCRIPTION",
"expirationDate": "2017-11-05T18:01:24Z",
"licenseDef": "a5Xjp3VF3sjcyZUDa6UaWh"
}
],
"assignedEditions": [
{
"expirationDate": "2017-11-05T18:01:24Z",
"edition": "4sdvnCrYEjfcKjTvAoigEF"
},
{
"expirationDate": "2018-10-06T18:00:08Z",
"edition": "5SPzPwEFvBEds8LzVwXX4K"
}
],
"customLimits": [
{
"value": -1,
"limitDefinition": "09cX4Tmi1qSfrS997ORMYl"
}
]
}

Login
Use the login resource to log in to Informatica Intelligent Cloud Services to use version 3 REST API resources.

The login response includes the session ID and base URL that you need to include in the REST API calls that
you make during the session.

Use values from the following fields that are returned in the login response:

• sessionId. A REST API session ID that you include in the header for REST API calls.
For more information about session IDs, see “Session IDs” on page 21.
• baseApiUrl. The base URL that you use in all version 3 resource URIs except for login, for example:
<baseApiUrl>/public/core/v3/<resource>

Note: Your team might use multiple organizations such as an organization for development and an
organization for testing. The user credentials that you use to log in determine the organization that you
access.

Login 167
POST request
To log in, use the following URL:
[Link] provider>-<region>.[Link]/saas/public/core/v3/login
The values for cloud provider and region correspond to the name of the POD (Point of Deployment) that your
organization uses. The following table lists the POD names and the corresponding cloud provider and region
to use in the login URL

POD name Cloud provider-region

USW1 dm-us

USE2 dm-us

USW3 dm-us

USE4 dm-us

USW5 dm-us

USE6 dm-us

USW1-1 dm1-us

USW3-1 dm1-us

USW1-2 dm2-us

CAC1 dm-na

APSE1 dm-ap

APSE2 dm1-apse

APNE1 dm1-ap

APNE2 dm-apne

APAUC1 dm1-apau

EMW1 dm-em

EMC1 dm1-em

UK1 dm-uk

For example, if your organization uses the APNE1 POD, use the following URL:
[Link]
If you don't know the name of the POD that your organization uses, contact your organization administrator
or Informatica Global Customer Support.

For more information about the POD names and corresponding cloud providers and regions, see the
Product Availability Matrix (PAM) for Informatica Intelligent Cloud Services on the Knowledge Base.

168 Chapter 3: Platform REST API version 3 resources


Use the following fields in a login object:

Field Type Required Description

username String Yes Informatica Intelligent Cloud Services user name for the organization that you want
to log in to.
Maximum length is 255 characters.

password String Yes Informatica Intelligent Cloud Services password.


Maximum length is 255 characters.

POST response
Returns user information if the request is successful. Returns the error object if errors occur.

Use the base URL and session ID returned in the response for subsequent requests during this session.

A successful request returns the following objects:

Field Type Description

products Collection Subscribed Informatica products.

name String Product name.

baseApiUrl String Returned in the product object.


Base API URL for the product. Use in REST API requests.

userInfo Collection User information.

sessionId String Returned in the userInfo object.


REST API session ID for the current session. Use in most REST API request headers.

id String Returned in the userInfo object.


User ID.

name String User name.

parentOrgId String Organization ID for the parent organization.

orgId String Returned in the userInfo object.


ID of the organization the user belongs to.
22 characters.

orgName String Returned in the userInfo object.


Organization name.

groups Collection User group information for the user.

status String Status of the user.


Returns one of the following values:
- Active
- Inactive

Login 169
POST example
To log in to your Informatica Intelligent Cloud Services organization, you might use the following request:
POST [Link]
Content-Type: application/json
Accept: application/json

{
"username": "user@[Link]",
"password": "mypassword"
}
If successful, the response includes the products and userInfo objects which contain the baseApiUrl and
sessionId values to use in subsequent calls, as shown in the following example:
{
"products": [
{
"name": "Integration Cloud",
"baseApiUrl": "[Link]
}
],
"userInfo": {
"id": "9L1GFroXSDHe2IIg7QhBaT",
"name": "user",
"parentOrgId": "52ZSTB0IDK6dXxaEQLUaQu",
"orgId": "0cuQSDTq5sikvN7x8r1xm1",
"orgName": "MyOrg_INFA",
"groups": {},
"status": "Active"
}
}
Using the session ID and base URL values in the above response as an example, to send a GET request to
obtain license information, you might use the following request:
GET [Link]
0cuQSDTq5sikvN7x8r1xm1
Content-Type: application/json
Accept: application/json

Logout
Use the logout resource to log out of an organization and end the version 3 REST API session specified in the
request.

Don't log out of a REST API session until all the requests that you've sent have been executed.

POST request
To log out of an organization and end the version 3 REST API session, include the session ID in the request
header with the following URI:
[Link] provider>-<region>.[Link]/saas/public/core/v3/logout

POST response
Returns the 200 response code if the request is successful or an error object if errors occur.

170 Chapter 3: Platform REST API version 3 resources


POST example
To log out of your organization, use the following request:
POST [Link]
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID: <sessionId>

Lookup
Use the lookup resource to look up an object's ID, name, path, or type attributes.

POST request
This resource is usually used to obtain an object's ID to use in an export request or job request. When you
use this resource to obtain an object's ID, include the object path and type in the lookup request.

For a job request, use the value of the id field returned in the lookup response for the federated task ID field
in the job request.

To request lookup information, use the following URI:


/public/core/v3/lookup

Lookup 171
You can use the following fields in the objects object:

Field Type Required Description

id String Required if object path Global unique identifier for the object.
and type not included.

path String Required with type if Full path of the object including project, folder, and object name.
object ID not included.

type String Required with path if Type of object.


object ID not included. Use one of the following values:
- PROJECT
- FOLDER
Or use one of the following asset types:
For Data Integration, the object can be one of the following types:
- DTEMPLATE. Mapping.
- MTT. Mapping task.
- DSS. Synchronization task.
- DTT. Data transfer task.
- DMASK. Masking task.
- DRS. Replication task.
- DMAPPLET. Mapplet created in Data Integration.
- MAPPLET. PowerCenter mapplet.
- CONNECTION.
- AGENT. Secure Agent.
- AGENTGROUP. Runtime environment.
- BSERVICE. Business service definition.
- HSCHEMA. Hierarchical schema.
- PCS. PowerCenter task.
- FWCONFIG. Fixed width configuration.
- CUSTOMSOURCE. Saved query.
- MI_FILE_LISTENER. File listener.
- MI_TASK. File Ingestion and Replication.
- DBMI_TASK. Database Ingestion and Replication
- APPMI_TASK. Application Ingestion and Replication.
- WORKFLOW. Linear taskflow.
- SCHEDULE
- SCHEDULE_JOB
- SCHEDULE_BLACKOUT. Schedule blackout period.
- TASKFLOW
- UDF. User-defined function.
For Application Integration, the object can be one of the following types:
- PROCESS
- GUIDE
- AI_CONNECTION
- AI_SERVICE_CONNECTOR
- PROCESS_OBJECT
For Data Quality, the object can be one of the following types:
- CLEANSE
- DEDUPLICATE
- DICTIONARY
- EXCEPTION
- LABELER
- PARSE
- RULE_SPECIFICATION
- VERIFIER
For B2B Gateway, the object can be one of the following types:
- B2BGW_MONITOR

172 Chapter 3: Platform REST API version 3 resources


Field Type Required Description

- B2BGW_CUSTOMER
- B2BGW_SUPPLIER
Object types are not case sensitive.

POST response
Returns object information if successful or an error object if errors occur.

If successful, returns the following lookup information for each object:

Field Type Description

objects Collection Collection of objects for which lookup is requested.

id String Global unique identifier for the object. Use the value of this field as the value for
taskFederatedId when you submit a job request.

path String Full path of the object including project, folder, and object name.

type String Type of object.

description String Description of the object.

updatedBy String User who updated the object.

updateTime String Last time the object was modified.

POST example
The following example shows a lookup request for eight objects:
POST <baseApiUrl>/public/core/v3/lookup
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID: 9KA11tLGqxVcGeul8SQBK3

{
"objects": [{
"id" : "2iXOKghGpySlgv6ifQImyl"
}, {
"path" : "Default/Synchronization Task1",
"type" : "DSS"
}, {
"id" : "hTrrjm1kawScIm1BGEj6UV"
}, {
"path" : "My Project",
"type" : "Project"
}, {
"path" : "My Project/DSS Tasks Folder",
"type" : "Folder"
}, {
"path": "USW1R90FPZXD",
"type": "Agent"
}, {
"path": "USW1R90FPZXD",
"type": "AgentGroup"
}, {
"path": "FF_Conn_1",
"type": "Connection"

Lookup 173
}]
}
The response includes lookup information for each object as shown in the following example:
{
"objects": [
{
"id": "2iXOKghGpySlgv6ifQImyl",
"path": "Default/Mapping1",
"type": "DTEMPLATE",
"description": "My Mapping 1",
"updateTime": "2018-04-13T20:44:37Z"
},
{
"id": "1fOqrwpFvLkimAkFFvIiwl",
"path": "Default/Synchronization Task1",
"type": "DSS",
"description": "Sync Data Task",
"updateTime": "2018-04-13T20:45:44Z"
},
{
"id": "hTrrjm1kawScIm1BGEj6UV",
"path": "My Project/Linear Taskflow1",
"type": "WORKFLOW",
"description": null,
"updateTime": "2018-04-13T20:50:31Z"
},
{
"id": "0EzsUXQ1RnkbKD6VyOukCb",
"path": "My Project",
"type": "Project",
"description": "",
"updateTime": "2018-04-13T20:40:07Z"
},
{
"id": "dRNcMcUVou5lh5kihmEAWl",
"path": "My Project/DSS Tasks Folder",
"type": "Folder",
"description": "DSS Tasks",
"updateTime": "2018-04-13T20:49:17Z"
},
{
"id": "1a8moeCNtm4fh5vGcUhxOj",
"path": "USW1R90FPZXD",
"type": "AGENT",
"description": null,
"updateTime": "2018-04-12T19:01:16Z"
},
{
"id": "9iJP8TdBOMujA7eH2CTm8l",
"path": "USW1R90FPZXD",
"type": "AgentGroup",
"description": null,
"updateTime": "2018-04-12T19:01:17Z"
},
{
"id": "5VkwOw6Jd8RglXEkxDu0ya",
"path": "FF_Conn_1",
"type": "Connection",
"description": null,
"updateTime": "2018-04-12T21:34:11Z"
}
]
}

174 Chapter 3: Platform REST API version 3 resources


Metering data
If your organization has the Intelligent Cloud Data Management feature, you can download metering usage
data using the REST API.

To download the metering data, you send an export job request, check the job status, and then download a
ZIP file that contains the data.

You can download the following data:


Summary IPU usage data

You can download summary IPU usage data for production organizations, additional production
organizations, sub-organizations, and sandbox organizations for a specified date range. The ZIP file
includes data for the requesting organization and the organizations under it.

For example, if the requesting organization is the production organization, the ZIP file contains data for
the production organization and its additional production organizations, sub-organizations, and sandbox
organizations. If the requesting organization is an additional production organization that has a sub-
organization, the ZIP file contains data for the additional production organization and its sub-
organization.

You can request usage information for all organizations in one CSV file, or you can receive individual
CSV files for each organization.

Project-level details

You can download metering data by project and folder for a specified date range.

By default, the ZIP file includes data only for the requesting organization. You can request to receive
data for the requesting organization and its sub-organizations.

You can request usage information for all organizations in one CSV file, or you can receive individual
CSV files for each organization.

Asset-level details

You can download metering data by asset for a specified date range. You can specify a meter ID in the
request to receive usage information for a specific meter.

Job-level details

If a service supports job-level detail reports, you can download job-level details for a specified date
range. You can request job-level details for a particular meter or for all meters. The ZIP file includes data
for the requesting organization.

You can specify a meter ID in the request to receive usage information for a specific meter.

Note: An organization can have a maximum of 5 active jobs. A job is active when the status is CREATED or
PROCESSING.

Requesting summary IPU usage data


You can run a job to export summary IPU usage data for the parent organization and its linked organizations
such as additional production organizations, sub-organizations, and sandbox organizations for a specified
date range.

To request and receive summary IPU usage data, you must have access rights to the parent organization and
all of the linked organizations.

After the job starts, you can check the job status. For more information, see “Getting the metering data export
job status” on page 186.

Metering data 175


When the job completes successfully, you can send a request to download the data. The data file includes
the following columns:

OrgId
MeterId
MeterName
Date
BillingPeriodStartDate
BillingPeriodEndDate
MeterUsage
IPU
Scalar
MetricCategory
OrgName
OrgType
IPURate

Note: There are two REST API resources available to request summary IPU usage data. The resources return
the same data.

Request summary data with the new REST API resource


Use the ExportMeteringData resource for all new export requests.

POST request
To send an export job request, use the following URI:
/public/core/v3/license/metering/ExportMeteringData
The following table describes the fields to include in the request:

Field Type Required Description

startDate String Yes Start of the date range in ISO 8601 format. For example,
2022-08-12T00:00:00Z

endDate String Yes End of the date range in ISO 8601 format.
When you request summary data, the range can be a maximum of 180
days.

jobType String Yes Type of metering data to export.


Use SUMMARY.

combinedMeterUsage String - Indicates whether to return usage information for all organizations in
one CSV file. Include one of the following values:
- TRUE. Return usage information for all organizations in one CSV file.
- FALSE. Return usage information for each organization in a separate
CSV file.
Default is FALSE.

176 Chapter 3: Platform REST API version 3 resources


Field Type Required Description

allLinkedOrgs String - Indicates whether to return usage information from the parent
organization and all its linked organizations. Include one of the
following values:
- TRUE. Return usage information for the parent organization and all
linked organizations.
- FALSE. Return usage information for the parent organization only.
Default is FALSE.

callbackUrl String - A valid, publicly available URL where the service posts the job status.

POST request example


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

{
"startDate":"2024-08-12T00:00:00Z",
"endDate":"2024-09-12T00:00:00Z",
"jobType":"SUMMARY",
"combinedMeterUsage":"TRUE",
"allLinkedOrgs":"TRUE",
"callbackUrl":"[Link]
}

POST response
The following table describes the response fields:

Field Type Description

jobID String ID of the export job.

status String Status of the export job.

orgId String Organization ID for the requesting organization.

userId String ID of the user who sent the request.

selectedOrgId String Organization ID for the requesting organization.

meterId String Meter ID.

startDate String Start of the date range.

endDate String End of the date range.

callbackUrl String URL that the service uses to post the job status.

createTime String Time the export job was created.

updateTime String Time the export job was last updated.

Metering data 177


POST response example
If successful, you might receive a response similar to the following example:
{
"jobId": "cYjwJNEF7OckWEmkSC1tSI",
"status": "CREATED",
"orgId": "4wMFqGlxAKVlIFTixlTSOY",
"userId": "aMxRLnYzdWtlkJvDbtPZOr",
"selectedOrgId": "4wMFqGlxAKVlIFTixlTSOY",
"meterId": null,
"startDate": "2024-08-12T00:00:00Z",
"endDate": "2024-09-12T00:00:00Z",
"callbackUrl": "[Link]
"createTime": "2024-09-12T23:22:20Z",
"updateTime": "2024-09-12T23:22:20Z"
}

Request summary data with the older REST API resource


You can continue to use the ExportMeteringDataAllLinkedOrgsAcrossRegion resource for existing export
requests.

POST request
To send an export job request, use the following URI:
/public/core/v3/license/metering/ExportMeteringDataAllLinkedOrgsAcrossRegion
The following table describes the fields to include in the request:

Field Type Required Description

startDate Date/time Yes Start of the date range.

endDate Date/time Yes End of the date range.


The range can be a maximum of 180 days.

combinedMeterUsage Boolean - Indicates whether to return usage information for all organizations
in one CSV file. Include one of the following values:
- TRUE. Return usage information for all organizations in one CSV
file.
- FALSE. Return usage information for each organization in a
separate CSV file.
Default is FALSE.

callbackUrl String - A valid, publicly available URL where the service posts the job
status.

POST request example


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

{
"startDate":"2022-08-12T00:00:00Z",
"endDate":"2022-10-25T00:00:00Z",
"combinedMeterUsage":"FALSE",

178 Chapter 3: Platform REST API version 3 resources


"callbackUrl":"[Link]
}

POST response
The following table describes the response fields:

Field Type Description

jobID String ID of the export job.

status String Status of the export job.

errorMessage String Error message, if any, that is associated with the job.

orgId String Organization ID for the requesting organization.

userId String ID of the user who sent the request.

selectedOrgId String Organization ID for the requesting organization.

startDate Date/time Start of the date range.

endDate Date/time End of the date range.

callbackUrl String URL that the service uses to post the job status.

createTime String Time the export job was created.

updateTime String Time the export job was last updated.

combinedMeterUsage Boolean Whether usage data for all organizations is returned in one CSV file.

POST response example


If successful, you might receive a response similar to the following example:
{
"jobId": "cYjwJNEF7OckWEmkSC1tSI",
"status": "CREATED",
"orgId": "4wMFqGlxAKVlIFTixlTSOY",
"userId": "aMxRLnYzdWtlkJvDbtPZOr",
"selectedOrgId": "4wMFqGlxAKVlIFTixlTSOY",
"startDate": "2020-01-01T10:00:00Z",
"endDate": "2022-12-31T00:00:00Z",
"callbackUrl": "[Link]
"createTime": null,
"updateTime": null,
"combinedMeterUsage":"FALSE"
}
If an error occurs, the response might be similar to the following example:
{
"jobId": "cYjwJNEF7OckWEmkSC1tSI",
"status": "FAILED",
"errorMessage": "Exception occurred while processing request for org:
4wMFqGlxAKVlIFTixlTSOY.\[Link]: Get
meter usage request failed with exception: I/O error on POST request",
"orgId": "4wMFqGlxAKVlIFTixlTSOY",
"userId": "aMxRLnYzdWtlkJvDbtPZOr",
"selectedOrgId": "4wMFqGlxAKVlIFTixlTSOY",
"startDate": "2020-01-01T10:00:00Z",
"endDate": "2022-12-31T00:00:00Z",

Metering data 179


"callbackUrl": "[Link]
"createTime": null,
"updateTime": null
"combinedMeterUsage":"FALSE"
}

Requesting project-level metering data


You can run a job to export IPU consumption data by project and folder.

After the job starts, you can check the job status. For more information, see “Getting the metering data export
job status” on page 186.

When the job completes successfully, you can send a request to download the data. The data file includes
the following columns:

Date
Project
Folder
Org ID
Org Type
Consumption (IPUs)

Note: The data file only includes product meter usage, such as Data Integration.

POST request
To send the export job request, use the following URI:
/public/core/v3/license/metering/ExportMeteringData
The following table describes the fields to include in the request:

Field Type Required Description

startDate String Yes Start of the date range in ISO 8601 format. For example,
2022-08-12T00:00:00Z

endDate String Yes End of the date range in ISO 8601 format.
When you request project-level data, the range can be a maximum of 30
days.

jobType String Yes Type of metering data to export.


Use PROJECT_FOLDER.

combinedMeterUsage String - Indicates whether to return usage information for all organizations in
one CSV file. Include one of the following values:
- TRUE. Return usage information for all organizations in one CSV file.
- FALSE. Return usage information for each organization in a separate
CSV file.
Default is FALSE.

180 Chapter 3: Platform REST API version 3 resources


Field Type Required Description

allLinkedOrgs String - Indicates whether to return usage information from the parent
organization and all its linked organizations. Include one of the
following values:
- TRUE. Return usage information for the parent organization and all
linked organizations.
- FALSE. Return usage information for the parent organization only.
Default is FALSE.

callbackUrl String - A valid, publicly available URL where the service posts the job status.

POST request example


To send the export job request, you might use a request similar to the following example:
POST <BaseApiUrl>/public/core/v3/license/metering/ExportMeteringData
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID: <SessionId>

{
"startDate":"2024-08-12T00:00:00Z",
"endDate":"2024-09-12T00:00:00Z",
"jobType":"PROJECT_FOLDER",
"combinedMeterUsage":"TRUE",
"allLinkedOrgs":"TRUE",
"callbackUrl":"[Link]
}

POST response
The following table describes the response fields:

Field Type Description

jobID String ID of the export job.

status String Status of the export job.

orgId String Organization ID for the requesting organization.

userId String ID of the user who sent the request.

selectedOrgId String Organization ID for the requesting organization.

meterId String Meter ID.

startDate String Start of the date range.

endDate String End of the date range.

callbackUrl String URL that the service uses to post the job status.

createTime String Time the export job was created.

updateTime String Time the export job was last updated.

Metering data 181


POST response example
If successful, you might receive a response similar to the following example:
{
"jobId": "cYjwJNEF7OckWEmkSC1tSI",
"status": "CREATED",
"orgId": "4wMFqGlxAKVlIFTixlTSOY",
"userId": "aMxRLnYzdWtlkJvDbtPZOr",
"selectedOrgId": "4wMFqGlxAKVlIFTixlTSOY",
"meterId": null,
"startDate": "2024-08-12T00:00:00Z",
"endDate": "2024-09-12T00:00:00Z",
"callbackUrl": "[Link]
"createTime": "2024-09-12T23:21:19Z",
"updateTime": "2024-09-12T23:21:19Z"
}

Requesting asset-level data


You can run a job to export metering data by asset.

After the job starts, you can check the job status. For more information, see “Getting the metering data export
job status” on page 186.

When the job completes successfully, you can send a request to download the data. The data file includes
the following columns:

Meter ID
Meter Name
Date
Asset Name
Asset Type
Project
Folder
Org ID
Org Type
Environment Name
Environment Type
Tier
IPU Per Unit
Usage
Consumption (IPUs)

POST request
To send the export job request, use the following URI:
/public/core/v3/license/metering/ExportMeteringData

182 Chapter 3: Platform REST API version 3 resources


The following table describes the fields to include in the request:

Field Type Required Description

startDate String Yes Start of the date range in ISO 8601 format. For example,
2022-08-12T00:00:00Z

endDate String Yes End of the date range in ISO 8601 format.
When you request asset-level data, the range can be a maximum of 30 days.

meterId String - Meter ID to request data for a single meter. If you don't specify a meter ID, data
for all meters is included.
For valid values, see “Meter IDs” on page 190 .

jobType String Yes Type of metering data to export.


Use ASSET.

callbackUrl String - A valid, publicly available URL where the service posts the job status.

POST request example


To send the export job, you might use a request similar to the following example:
POST <BaseApiUrl>/public/core/v3/license/metering/ExportMeteringData
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID: <SessionId>

{
"startDate":"2024-08-12T00:00:00Z",
"endDate":"2024-09-12T00:00:00Z",
"meterId":"a2nB20h1o0lc7k3P9xtWS8",
"jobType":"ASSET",
"callbackUrl":"[Link]
}

POST response
The following table describes the response fields:

Field Type Description

jobID String ID of the export job.

status String Status of the export job.

orgId String Organization ID for the requesting organization.

userId String ID of the user who sent the request.

selectedOrgId String Organization ID for the requesting organization.

meterId String Meter ID.

startDate String Start of the date range.

endDate String End of the date range.

Metering data 183


Field Type Description

callbackUrl String URL that the service uses to post the job status.

createTime String Time the export job was created.

updateTime String Time the export job was last updated.

POST response example


If successful, you might receive a response similar to the following example:
{
"jobId": "cYjwJNEF7OckWEmkSC1tSI",
"status": "CREATED",
"orgId": "4wMFqGlxAKVlIFTixlTSOY",
"userId": "aMxRLnYzdWtlkJvDbtPZOr",
"selectedOrgId": "4wMFqGlxAKVlIFTixlTSOY",
"meterId": "a2nB20h1o0lc7k3P9xtWS8",
"startDate": "2024-08-12T00:00:00Z",
"endDate": "2024-09-12T00:00:00Z",
"callbackUrl": "[Link]
"createTime": "2024-09-12T23:19:21Z",
"updateTime": "2024-09-12T23:19:21Z"
}

Requesting job-level metering data


For certain meters, you can run a job to export job-level details for a particular service and meter for a
specified date range.

After the job starts, you can check the job status. When the job completes successfully, you can send a
request to download the data. For more information, see “Getting the metering data export job status” on
page 186.

POST request
To send the export job request, use the following URI:
/public/core/v3/license/metering/ExportServiceJobLevelMeteringData
The following table describes the fields to include in the request:

Field Type Required Description

startDate Date/time Yes Start of the date range.

endDate Date/time Yes End of the date range.


The range can be a maximum of 180 days.

allMeters Boolean Required when Indicates whether to return usage information for all meters. Include
meterId is blank. one of the following values:
- TRUE. Return usage information for all meters.
- FALSE. Return usage information for meter specified in meterId
field.
Default is FALSE.

184 Chapter 3: Platform REST API version 3 resources


Field Type Required Description

meterId String Required when Meter ID. For valid values, see “Meter IDs” on page 190 .
allMeters is
FALSE.

callbackUrl String - A valid, publicly available URL where the service posts the job
status.

POST request example


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

{
"startDate":"2022-08-12T00:00:00Z",
"endDate":"2022-10-25T00:00:00Z",
"allMeters":"FALSE",
"meterId":"3TaYTMo6BFYeNIABfVmH0n",
"callbackUrl":"[Link]
}

POST response
The following table describes the response fields:

Field Type Description

jobID String ID of the export job.

status String Status of the export job.

errorMessage String Error message, if any, that is associated with the job.

orgId String Organization ID for the requesting organization.

userId String ID of the user who sent the request.

selectedOrgId String Organization ID for the requesting organization.

allMeters Boolean Whether usage information for all meters is included.

meterId String Meter ID.

startDate Date/time Start of the date range.

endDate Date/time End of the date range.

callbackUrl String URL that the service uses to post the job status.

createTime String Time the export job was created.

updateTIme String Time the export job was last updated.

Metering data 185


POST response example
If successful, you might receive a response similar to the following example:
{
"jobId": "cYjwJNEF7OckWEmkSC1tSI",
"status": "CREATED",
"orgId": "4wMFqGlxAKVlIFTixlTSOY",
"userId": "aMxRLnYzdWtlkJvDbtPZOr",
"selectedOrgId": "4wMFqGlxAKVlIFTixlTSOY",
"allMeters":"FALSE",
"meterId": 3TaYTMo6BFYeNIABfVmH0n,
"startDate": "2020-01-01T10:00:00Z",
"endDate": "2022-12-31T00:00:00Z",
"callbackUrl": "[Link]
"createTime": null,
"updateTime": null
}
If an error occurs, the response might be similar to the following example:

{
"jobId": "cYjwJNEF7OckWEmkSC1tSI",
"status": "FAILED",
"errorMessage": "Exception occurred while processing request for org:
4wMFqGlxAKVlIFTixlTSOY.\[Link]: Get
meter usage request failed with exception: I/O error on POST request",
"orgId": "3TaYTMo6BFYeNIABfVmH0n",
"userId": "aMxRLnYzdWtlkJvDbtPZOr",
"selectedOrgId": "3TaYTMo6BFYeNIABfVmH0n",
"allMeters":"FALSE",
"meterId": 3TaYTMo6BFYeNIABfVmH0n,
"startDate": "2020-01-01T10:00:00Z",
"endDate": "2022-12-31T00:00:00Z",
"callbackUrl": "[Link]
"createTime": null,
"updateTime": null
}

Getting the metering data export job status


Use a GET request to get the status of an export job for metering data.

GET request
To get the status of the export job, use the following URI:
/public/core/v3/license/metering/ExportMeteringData/<jobId>

186 Chapter 3: Platform REST API version 3 resources


GET response
The response includes the following fields:

Field Type Description

jobID String ID of the export job.

status String Status of the export job. One of the following values can be returned:
- CREATED
- PROCESSING
- SUCCESS
- FAILED
- PARTIAL_SUCCESS
If the status is PARTIAL_SUCCESS, the job completed but data couldn't be collected for
all of the linked organizations due to errors.

errorMessage String Error message, if any, that is associated with the job.

orgId String Organization ID for the requesting organization.

userId String ID of the user who sent the request.

selectedOrgId String Organization ID for the requesting organization.

meterId String Meter ID.


Applicable for jobs requesting job-level details.

startDate Date/time Start of the date range.

endDate Date/time End of the date range.

callbackUrl String The URL that the service uses to post the job status.

createTime String Time the export job was created.

updateTIme String Time the export job was last updated.

GET request example


To get the status of an export job, you might use the following request:
GET <BaseApiUrl>//public/core/v3/license/metering/ExportMeteringData/
4l1eKlA9ngChmu6gdv3FKs
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID: <SessionId>

GET response example


If successful, you might receive a response similar to the following example:
{
"jobId": "4l1eKlA9ngChmu6gdv3FKs",
"status": "SUCCESS",
"orgId": "4wMFqGlxAKVlIFTixlTSOY",
"userId": "aMxRLnYzdWtlkJvDbtPZOr",
"selectedOrgId": "4wMFqGlxAKVlIFTixlTSOY",
"meterId": null,
"startDate": "2022-08-01T10:00:00Z",
"endDate": "2022-12-31T00:00:00Z",

Metering data 187


"callbackUrl": "[Link]
"createTime": "2022-11-23T10:04:37Z",
"updateTime": "2022-11-23T10:04:37Z"
}
If the job is partially successful, the response might be similar to the following example:

{
"jobId": "cYjwJNEF7OckWEmkSC1tSI",
"status": "PARTIAL_SUCCESS",
"errorMessage": "Short error message: [fetchEligibleJobForExecution] Exception in
executing
job. [Link]$ServiceUnavailable: 503
Service
Unavailable: \"<html><body><h1>503 Service Unavailable</h1><EOL>No server is available
to handle
this request.<EOL></body></html><EOL>\",
"orgId": "4wMFqGlxAKVlIFTixlTSOY",
"userId": "aMxRLnYzdWtlkJvDbtPZOr",
"selectedOrgId": "4wMFqGlxAKVlIFTixlTSOY",
"meterId": null,
"startDate": "2020-01-01T10:00:00Z",
"endDate": "2022-12-31T00:00:00Z",
"callbackUrl": "[Link]
"createTime": null,
"updateTime": null
}

Getting custom IPU alert configurations


Use a GET request to get the custom IPU alert thresholds that you configured for organizations or tags.

GET request
To get the custom IPU alert configurations for your organization, use the following URl:
/public/core/v3/metering/ipuAlert/org('<organization Id>')
To get the custom IPU alert configurations for your tags, use the following URl:
/public/core/v3/metering/ipuAlert/org('<organization Id>')/viewTagsPreference

GET response
The response includes the following fields for organization configurations:

Field Type Description

orgName String Name of the organizaiton.

orgId String ID of the organization.

parentOrgId String ID of the parent organization. This field only applies to sub-organizations.
Otherwise, it's NULL.

thresholdValue Integer Threshold value configured.

188 Chapter 3: Platform REST API version 3 resources


Field Type Description

ipuConsumed BigDecimal Specifies how many IPUs are consumed. This field's value relates to the
ipuThresholdPrefType field and displays either an absolute value or a
percentage.

ipuThresholdPrefType String Type of threshold. Returns one of the following values:


- ABSOLUTE.
- PERCENTAGE.

The response includes the following fields for tag configurations:

Field Type Description

orgId String ID of the organization.

projectName String Name of the project.

folderName String Name of the folder. For project based thresholds, the folder name is NULL.

thresholdValue Integer Threshold value.

currentConsumption BigDecimal Specifies how many IPUs are consumed. This field's value relates to the
ipuThresholdPrefType field and displays either an absolute value or a
percentage.

ipuThresholdPrefType String Type of threshold. Returns one of the following values:


- ABSOLUTE.
- PERCENTAGE.

GET request example


To get the custom IPU alert configurations for your organization, you might use the following request:
GET <BaseApiUrl>/public/core/v3/metering/ipuAlert/org('3nqii4jGTiLda0M3ympy4E')
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID: <SessionId>
To get the custom IPU alert configurations for your tags, you might use the following request:
GET <BaseApiUrl>/public/core/v3/metering/ipuAlert/org('3nqii4jGTiLda0M3ympy4E')/
viewTagsPreference
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID: <SessionId>

GET response example


If succesful, you might receive a response similar to the following for organization configurations:
{
"orgName": "Infa",
"orgId": "3nqii4jGTiLda0M3ympy4E",
"parentOrgId": null,
"thresholdValue": 35,
"ipuConsumed": 100,
"ipuThresholdPrefType": "ABSOLUTE"
}

Metering data 189


A succesful response for tag configurations would look like the following:
{
"orgId": "3nqii4jGTiLda0M3ympy4E",
"projectName": "My Project",
"folderName": "Mapping Jobs",
"thresholdValue": 20,
"currentConsumption": 10,
"ipuThresholdPrefType": "PERCENTAGE"
}

Downloading the metering data


When the export job completes successfully, use a GET request to download a ZIP file that contains the
requested metering data.

The ZIP file is available to download for 3 days after the job completes with a status of SUCCESS or
PARTIAL_SUCCESS.

Note: You can download the ZIP file when the status of the job is PARTIAL_SUCCESS. However, the data in
the ZIP file might be not be complete.

GET request
To download the ZIP file, use the following URI:
public/core/v3/license/metering/ExportMeteringData/<jobId>/download

GET response
If successful, you receive the ZIP stream in the response body and the response type will be application/zip.
To download the file, save the response to a file as shown in the following image using Postman:

Meter IDs
When you create a request to export job-level or asset-level data, you can include a meter ID in the request to
get data for a single meter.

The following table lists the meter IDs that you can use for each type of request:

Meter name Request type Meter ID

Advanced Data Integration Asset and job 3TaYTMo6BFYeNIABfVmH0n

Advanced Data Integration with Asset and job 8tXWie0ZQLWlG1cyxxLwQM


Advanced Serverless

Advanced Data Quality Asset and job 3qh0uqEkx2KjCOnnPoB786

190 Chapter 3: Platform REST API version 3 resources


Meter name Request type Meter ID

Advanced Data Quality with Asset gzNg8hRHqusd8TkG3qOpws


Advanced Serverless

Advanced Pushdown Optimization Asset and job dMN0VeTW4cThHyPovp4GEX

Application Integration Job Classic mode -


3uIRkIV5Rt9lBbAPzeR5Kj
Turbo mode -
4610adb7f5e945e98da246

Application Integration with Job Classic mode -


Advanced Serverless bN6mes5n4GGciiMkuoDlCz
Turbo mode -
4c6fec02782546879713aa

B2B Gateway Asset 4136oNHy3dPeKfhCDzv9sl

B2B & Industry Solutions Asset 68c4cbf9f1d84b6fb52e9f

Cloud Data Integration for Asset and job eNYBoIrr3KDgtDN9E6lXid


PowerCenter

Cloud Data Integration for Asset and job 5rtHwmyoQ6HjmJt8mqXTwc


PowerCenter - Change Data Capture
and Real-Time

Cloud Data Integration for Asset and job 8y72urWKS85gGBRVi6tJGA


PowerCenter - Pushdown
Optimization

Data Access Management - Rows Asset 8tJNWEJFAhojeO8ZAx6ZGT


Processed

Data Integration Asset and job a2nB20h1o0lc7k3P9xtWS8

Data Integration with Advanced Asset and job 35m9fB23Tykj4Fb3rN5q2J


Serverless

Data Integration - Change Data Asset and job 0sDTANKFZBSbqjzKaXKlmB


Capture

Data Loader Asset aBNLpHvKynqb33VYVDl3y2

Data Masking Asset 1gUb7oRmAAXbpqeR8uRyye

Data Quality Asset cPnPIT3XYAziLqIoXtd0KC

Data Quality with Advanced Asset kFBW9yYl4QHfru384cRMmp


Serverless

Data Validation Asset and job 2qJ9COoAhfMrsH7mCyh86M

Industry Solutions Asset 7a2Fd4622Da044a38b7EB1

Integration Hub Asset and job fqttkiGnSaHeXW255z4IcD

Metering data 191


Meter name Request type Meter ID

Mass Ingestion Application Asset and job i3H6LcmMIYjhUKa9VCi7CI

Mass Ingestion Application - Change Asset and job 4cPkZ5cZxjzc4SK2RHoqgy


Data Capture

Mass Ingestion Database Asset and job 24WXkCWzeSHjFlQvLPDegF

Mass Ingestion Database - Change Asset and job aluxJ8jOKmzdXwD0JuHRS1


Data Capture

Mass Ingestion Files Asset and job lCwc4CfL7EEhv9773egFC8

Mass Ingestion Streaming Job hr7GsCwFFmyfvfZQFn8v81

MDM Data Integration Asset jRkQw2YQksQjLqowj7Mveq

MDM Data Quality Asset 2uzMPlZJYORjVW2JoVSl41

PC2CDI Modernization Service Job 8y72urVKS85gSSRVi6tJGA


Assessment

PC2CDI Modernization Service Job 7y82urUWS85gGBRVi6tJGA


Conversion

Object state synchronization


If you migrate an object from one organization to another, you can use the fetchState and loadState
resources to synchronize the object states and run time attributes between the organizations.

For example, in Organization A, a mapping task with a Sequence Generator transformation has a NEXTVAL
value of 3270. The same task was migrated to Organization B, however the NEXTVAL value in Organization B
is 0. You want to synchronize the task's state between Organization A and Organization B so that the
NEXTVAL value in both organizations has a value of 3270. You use the fetchState and loadState resources to
synchronize the NEXTVAL value so that you can run the task in Organization B while preserving the sequence
of numbers.

You can make up to 100 fetchState and 100 loadState calls each day.

The process of synchronizing object states is similar to the process of migrating objects. To synchronize
object states, you fetch the states in the primary organization using the fetchState resource, and you load
them into the target organization using the loadState resource.

fetchState
Use this resource with the loadState resource to synchronize object states across organizations.

Use the fetchState resource to create an object states package that you upload into other organizations
using the loadState resource.

192 Chapter 3: Platform REST API version 3 resources


Creating the object states package includes a series of requests and responses, similar to the process of
exporting assets. The end result is a ZIP file that contains the object states that you want to load to other
organizations. To create the object states package, you perform the following tasks:

1. Send a lookup GET request to receive the object IDs for the object states you want to synchronize.
Informatica Intelligent Cloud Services returns the object IDs.
See “Lookup” on page 171.
2. Send a fetchState POST request to start the job, using the object IDs returned in the lookup response.
Informatica Intelligent Cloud Services returns the job ID for the fetchState job.
See “Starting a fetchState job” on page 193.
3. Send a fetchState GET request to get the status of the job, using the fetchState job ID for the object state
package.
Informatica Intelligent Cloud Services returns the job ID and status. The response can also include a list
of the object IDs and associated object states that are in the package.
See “Getting the fetchState job status” on page 195.
4. Send a fetchState GET request to download the package.
Informatica Intelligent Cloud Services returns the package in a ZIP file.
See “Downloading an object states package” on page 198.

The object states package contains state information in a JSON file for each object. Each file name uses the
following format:
<task name>.<task type>.[Link]
For example, a file with the name of mt_MappingTask106.[Link] might contain the following
data:
{
"taskRun" : {
"lastRuntime" : "2018-12-13T09:05:17.000Z"
},
"taskStateVariables" : [ {
"category" : "TX_VARIABLE",
"name" : "Sequence",
"value" : "26908"
} ]
}
You can change the following attributes in an object state file if required:

• lastRuntime in the taskRun object


• value in the taskStateVariables object (for mapping tasks only)
Other changes to the files in the package can cause unexpected behavior or errors.

Starting a fetchState job


Use a POST request to start a fetchState job.

POST request
To start the job, use the following URI:
/public/core/v3/fetchState

Object state synchronization 193


Include the following fields in the request:

Field Type Required Description

name String Name of the fetchState job. If blank, default is job-


<currentTimeInMilliseconds>

objects Collection Yes Object IDs for the states to include in the object state package.
<complex Note: Informatica recommends that you include no more than
type> 1000 objects in a package.

id String Yes Included in the objects object.


Global unique identifier for the object for which the state is
requested. This can be a project, folder, or asset ID.

includeDependencies Boolean Included in the objects object.


Determines whether to include the dependent objects' states.
Default is True.

POST request example


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

{
"name" : "fetchStateJob1",
"objects" : [
{
"id": "l7bgB85m5oGiXObDxwnvK9",
"includeDependencies" : true
},
{
"id": "1MW0GDAE1sFgnvWkvom7mK",
"includeDependencies" : false
},
{
"id": "iIVBNZSpUKFg4N6g2PKUox"
}
]
}

POST response
If successful, returns the following information for the fetchState job:

Field Type Description

id String ID of the fetchState job.

createTime String Time object state package was created.

updateTime String Time object state package was last updated.

name String Name of the fetchState job.

startTime String Time the fetchState job was started.

194 Chapter 3: Platform REST API version 3 resources


Field Type Description

endTime String Time the fetchState job ended.

status Complex type Status of the job.

state String Returned in the status object.


Status of the fetchState job, such as In Progress, Success, or Failed.

message String Returned in the status object.


Job status message.

objects Collection Collection of objects and object level status. Returns null if blank.

POST response examples


If successful, you might receive a response similar to the following example:
{
"id": "7evG9CokA1whk8ehF3opKM",
"createTime": "2018-10-26T08:15:48.502Z",
"updateTime": "2018-10-26T08:15:48.502Z",
"name": "fetchStateJob1",
"startTime": "2018-10-26T08:15:48.501Z",
"endTime": null,
"status": {
"state": "IN_PROGRESS",
"message": "In Progress"
},
"objects": null
}
If you receive an error, you might see a response similar to the following example:
{
"error": {
"code": "MigrationSvc_034",
"message": "User does not have required permissions.",
"requestId": "2ataXVlgw3ydI1Yb2MA4sq"
}
}

Getting the fetchState job status


Use a GET request to get the status of a fetchState job.

GET request
To get status of the fetchState job, use one of the following URIs:

• To receive status of the fetchState job, use the following URI, where <id> is the fetchState job ID:
/public/core/v3/fetchState/<job id>
• To receive status for each object's state in the fetchState job, use the following URI:
/public/core/v3/fetchState/<job id>?expand=objects
Continue polling the request until the state is SUCCESSFUL.

Object state synchronization 195


GET response
A request for status returns the following status information:

Field Type Description

id String ID of the fetchState job.

createTime String Time the fetchState job was created.

updateTime String Last time the fetchState job was updated.

name String Name of the fetchState job.

startTime String Start time of the fetchState job.

endTime String End time of the fetchState job.

status Complex type Status of the fetchState job.

state String Returned in the status object.


State of the fetchState job, such as In Progress, Success, or Failed.

message String Returned in the status object.


Job status message.

objects Collection Objects in the fetchState job. Returned when the URI includes ?expand=objects

id String Returned in the objects object.


Global unique identifier for the object requested.

name String Returned in the objects object.


Name of the object..

path String Returned in the objects object.


Complete path of the object.

description String Returned in the objects object.


Description of the object.

status Complex type Returned in the objects object.


Status of the object.

state String Returned in the [Link] object.


Status of the object, such as IN PROGRESS, SUCCESS, FAILED, or SKIPPED.

message String Returned in the [Link] object.


Status message for the object.

GET request example


To receive the status of a fetchState job, you might use the following request:
GET <BaseApiUrl>/public/core/v3/fetchState/7evG9CokA1whk8ehF3opKM
Content-Type: application/json

196 Chapter 3: Platform REST API version 3 resources


Accept: application/json
INFA-SESSION-ID: <SessionId>
To receive the status for each object's state in the fetchState job, you might use the following request:
GET <BaseApiUrl>/public/core/v3/fetchState/7evG9CokA1whk8ehF3opKM?expand=objects
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID: <SessionId>

GET response example


If your request for a fetchState job's status is successful, you might receive a response similar to the
following example:
{
"id": "7evG9CokA1whk8ehF3opKM",
"createTime": "2018-10-26T08:15:48.502Z",
"updateTime": "2018-10-26T08:15:48.502Z",
"name": "fetchStateJob1",
"startTime": "2018-10-26T08:15:48.501Z",
"endTime": "2018-10-26T08:15:49.501Z",
"status": {
"state": "SUCCESSFUL",
"message": "Export completed successfully."
},
"objects": null
}
If your request included status for individual objects, a successful response might be similar to the following
example:
{
"id": "7evG9CokA1whk8ehF3opKM",
"createTime": "2017-10-26T08:15:49.000Z",
"updateTime": "2017-10-26T08:15:50.000Z",
"name": "fetchStateJob1",
"startTime": "2018-10-26T08:15:49.000Z",
"endTime": "2018-10-26T08:15:50.000Z",
"status": {
"state": "SUCCESSFUL",
"message": "Export completed successfully."
},
"objects": [
{
"id": "1YmwRT083ZtfO04mUABaGF",
"name": "Mapping1",
"path": "/Mappings",
"type": "DTEMPLATE",
"description": "",
"status": {
"state": "SKIPPED",
"message": null
}
},
{
"id": "46MhQv9oxrgbOD6qtosF8t",
"name": "MappingTask1",
"path": "/Tasks",
"type": "MTT",
"description": "",
"status": {
"state": "SUCCESSFUL",
"message": null
}
},
{
"id": "7rM2ll1YjWYgHz4xiqRQO3",
"name": "Default",
"path": "/",
"type": "Project",

Object state synchronization 197


"description": "Auto-generated Default Project",
"status": {
"state": "SKIPPED",
"message": null
}
},
{
"id": "8suj2pxCujqh5Vtmv0DsyP",
"name": "Destination",
"path": "null",
"type": "Connection",
"description": "Dst Connection",
"status": {
"state": "SKIPPED",
"message": null
}
},
{
"id": "cpnxnIQMIYvkDOemLhFJ2q",
"name": "03",
"path": null,
"type": "AgentGroup",
"description": null,
"status": {
"state": "SKIPPED",
"message": null
}
},
{
"id": "gJvuKZZuBifk9MfZFxtPAb",
"name": "Source",
"path": null,
"type": "Connection",
"description": "Src Connection",
"status": {
"state": "SKIPPED",
"message": null
}
}
]
}

Downloading an object states package


Use a GET request to download an object states package.

GET request
To download the object states package, use the following URI:
/public/core/v3/fetchState/<id>/package
The <id> is the fetchState job ID.

GET response
If successful, you receive the ZIP stream in the response body and the response type is application/zip.

If unsuccessful, you might receive a response similar to the following example:


{
"error": {
"code": "MigrationSvc_017",
"message": "Export request with identifier [6GnKs0tkLHdE6Hpd5nsWD] doesnt
exist.",
"debugMessage": "Export request with identifier [6GnKs0tkLHdE6Hpd5nsWD] doesnt
exist.",
"requestId": "0FrZZzXiEoafqCZUPqJsYd"
}
}

198 Chapter 3: Platform REST API version 3 resources


loadState
Use this resource with the fetchState resource to synchronize object states across multiple organizations.

Loading object states includes a series of requests and responses. To load states into an organization, you
perform the following tasks:

1. Send a loadState POST request to upload the ZIP file.


Informatica Intelligent Cloud Services returns the job ID for the loadState job.
See “Uploading an object states package” on page 199.
2. Send a loadState POST request to load the object states. The request includes the loadState job ID and a
list of object IDs associated with the states you want to load.
Informatica Intelligent Cloud Services returns the status of the job 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 object states package.
See “Starting a loadState job” on page 200.
3. Send a loadState GET request to get the status of the job. You can also request status at the object level.
Informatica Intelligent Cloud Services returns the status of the job and if requested, status of each
object in the package.
See “Getting the loadState job status” on page 202.

Uploading an object states package


Use a POST request to upload an object states package.

POST request
To upload the object states package, use the following URI:
/public/core/v3/loadState/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 object states ZIP file
that you want to upload.

POST response
If successful, returns the following information for the loadState job:

Field Type Description

jobId String ID of the loadState job.

jobStatus Collection Status of the package upload.

state String Returned in the status object.


Status of the loadState job, such as IN PROGRESS, SUCCESS, or FAILED.

message String Returned in the status object.


Job status message.

checksumValid Boolean Indicates whether the object states package has valid checksum.

Object state synchronization 199


POST request example
To upload the object states package, you might use the following request:
POST <BaseApiUrl>/public/core/v3/loadState/package
Content-Type: multipart/form-data
Accept: multipart/form-data
INFA-SESSION-ID: <SessionId>

POST response example


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

Starting a loadState job


Use a POST request to specify and start a loadState job.

POST request
To specify the objects and start the loadState job, use the following URI:
/public/core/v3/loadState/<id>
The <id> is the loadState job ID received in the POST response for the object states package upload.

Include the following fields in the request:

Field Type Required Description

name String Name of the loadState job.


Default name is job-<currentTimeInMilliseconds>

importSpecification Complex type Used to specify the objects to include.

includeObjects Collection<String> Include in the importSpecification object.


Objects to load.
If not specified, the load includes all states in the object
states package.
If the specified object is a project, the load includes state
of all objects that belong to the project and all dependent
objects.

objectSpecification Collection <complex Include in the importSpecification object.


type> Specifies the object properties.

200 Chapter 3: Platform REST API version 3 resources


Field Type Required Description

sourceObjectId String Yes Include in the objectSpecification object.


The container ID in the object states package file.
Required if objectSpecification is present.

targetObjectId String Yes Include in the objectSpecification object.


Used for Container to Container mapping.
Required if objectSpecification is present.

POST request example


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

{
"name" : "stateImportJob",
"importSpecification" : {
"includeObjects" : ["iIVBNZSpUKFg4N6g2PKUox","ejZY66c19YUccBdbGwKG4P"],
"objectSpecification" : [{
"sourceObjectId" : "iIVBNZSpUKFg4N6g2PKUox"
},
{
"sourceObjectId" : "5FA0DnMzeuDbYZnn3hdto9",
"targetObjectId" : "5KgUiEkW95NkjLRRefWKiG"
}]
}
}

POST response
If successful, returns the following information for the loadState job:

Field Type Description

Id String ID of the loadState job.

createTime String Time the loadState job was created.

updateTime String Last time the loadState job was updated.

name String Name of the loadState job.

startTime String Start time of the loadState job.

endTime String End time of the loadState job.

status Collection Status of the package upload.

state String Returned in the status object.


Load state for each individual object, such as IN PROGRESS, SUCCESS, FAILED, or
SKIPPED.

Object state synchronization 201


Field Type Description

message String Returned in the status object.


Job status message.

objects Collection Objects included in the loadState job and object level status.

sourceOrgId String Organization ID of the organization that created the object states package.

checksumValid Boolean Indicates whether the import package has valid checksum.

POST response examples


If successful, you might receive a response similar to the following example:
{
"id": "a7oaBNCyc8DdhxQD4mY4ul",
"createTime": "2019-01-10T01:35:45.000Z",
"updateTime": "2019-01-10T21:08:41.398Z",
"name": "job-1547154520680",
"startTime": "2019-01-10T21:08:41.389Z",
"endTime": null,
"status": {
"state": "IN_PROGRESS",
"message": "In Progress"
},
"objects": null,
"sourceOrgId": "2wy21a5fkUphzTVNKaPowg",
"checksumValid": true
}
If you receive an error, you might see a response similar to the following example:
{
"error": {
"message": "Import request with identifier [a7oaBNCyc8DdhxQD4mY4u] doesnt
exist.",
"requestId": "9MopwrDFAOGbuMM9utiTqJ"
}
}

Getting the loadState job status


Use a GET request to get the status of a loadState job.

GET request
To get status of the loadState job, use one of the following URIs, where <id> is the loadState job ID:

• To receive status of the loadState job, use the following URI:


/public/core/v3/loadState/<id>
• To receive status for each object in the loadState job, use the following URI:
/public/core/v3/loadState/<id>?expand=objects

202 Chapter 3: Platform REST API version 3 resources


GET response
A request for status returns the following import status information:

Field Type Description

id String ID of the loadState job.

createTime String Time the object states package was created.

updateTime String Last time the object states package was updated.

name String Name of the loadState job.

startTime String Start time of the loadState job.

endTime String End time of the loadState job.

status Complex type Status of the package upload.

state String Returned in the status object.


Status of the loadState job, such as IN PROGRESS, SUCCESS, or FAILED.

message String Returned in the status object.


Job status message.

sourceOrgId String ID of the organization that created the object states package.

objects Collection Objects included in the import.

sourceObject Collection Returned in the objects object.


Object included in the import.

id String Returned in the [Link] object.


Global unique identifier for the object included in the import.

name String Returned in the [Link] object.


Name of the object included in the import.

path String Returned in the [Link] object.


Complete path of the object included in the import.

type String Returned in the [Link] object.


Type of object included in the import.

description String Returned in the [Link] object.


Description of the object included in the import.

targetObject Collection Returned in the objects object.


Target object.

id String Returned in the [Link] object.


Global unique identifier for the target object.

Object state synchronization 203


Field Type Description

name String Returned in the [Link] object.


Name of the target object.

path String Returned in the [Link] object.


Complete path of the target object.

type String Returned in the [Link] object.


Type of target object.

description String Returned in the [Link] object.


Description of target object.

status String Returned in the [Link] object.


Status of the target object.

status Complex type Returned in the objects object.


Load status of the object.

state String Returned in the [Link] object.


Load state of the object, such as IN PROGRESS, SUCCESS, or FAILED.

message String Returned in the [Link] object.


Status message for the object.

checksumValid Boolean Returned in the [Link] object.


Whether the checksum of the object was valid or not.

GET response example


If your request for a loadState 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": "stateImportJob",
"startTime": "2017-10-26T08:55:53.000Z",
"endTime": "2017-10-26T08:55:56.000Z",
"status": {
"state": "SUCCESSFUL",
"message": "Import completed successfully."
},
"objects": null,
"sourceOrgId": "2wy21a5fkUphzTVNKaPowg",
"checksumValid": true
}
If your request included load status for individual objects, a successful response might be similar to the
following example:
{
"id": "3OpbyDU36UgkUhXXtvGsYA",
"createTime": "2019-01-10T21:35:33.000Z",
"updateTime": "2019-01-10T21:35:39.000Z",
"name": "job-1547156138681",
"startTime": "2019-01-10T21:35:39.000Z",
"endTime": "2019-01-10T21:35:39.000Z",

204 Chapter 3: Platform REST API version 3 resources


"status": {
"state": "SUCCESSFUL",
"message": "Import completed successfully."
},
"objects": [
{
"sourceObject": {
"id": "46MhQv9oxrgbOD6qtosF8t",
"name": "MappingTask",
"path": "/Default",
"type": "MTT",
"description": ""
},
"targetObject": {
"id": null,
"name": "MappingTask",
"path": "/Default",
"type": "MTT",
"description": null,
"status": null
},
"status": {
"state": "SUCCESSFUL",
"message": "Overwrite existing."
}
}
],
"sourceOrgId": "2wy21a5fkUphzTVNKaPowg",
"checksumValid": true
}

Objects
Use the objects resource to get a list of an organization's assets. You might use this resource to find assets
to export.

You can also use this resource to find object dependencies for an asset.

Note: This resource uses a dynamic rate limit. When the system experiences a large volume or size of
requests, responses might be slow or fail with the error message, "too many requests."

Finding an asset
Use the objects resource to find assets in an organization using query parameters.

Query parameters include filters for asset type, tag, folder location, last update time, the user who last
updated the asset, and source control metadata. Query parameters also include the maximum number of
assets to return and the number of elements to skip.

The response can include up to 200 assets. If a request uses query parameters that result in more than 200
assets, you can send an additional request using the skip parameter to skip the assets that you received in
the previous response.

The response does not include assets that you do not have privileges to read.

GET request
To request a list of assets, use the following URI:
/public/core/v3/objects?<query parameters>

Objects 205
You can use the following query parameters in the URI:

Parameter Type Description

q String Query filter.

limit Int Maximum number of assets to return, up to 200.

skip Int Number of elements to skip. For example, a value of 4 excludes the first four assets in the list.

206 Chapter 3: Platform REST API version 3 resources


You can use the following fields to define the query filter:

Field Type Operators Description

type String == Asset type. Type can be project, folder, or one of the
!= following asset types:
For Data Integration, the object 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
- UDF. User-defined function.
- PROJECT
- FOLDER
For Application Integration, the object can be one of
the following types:
- PROCESS
- GUIDE
- AI_CONNECTION
- AI_SERVICE_CONNECTOR
- PROCESS_OBJECT
For B2B Gateway, the object can be one of the
following types:
- B2BGW_MONITOR
- B2BGW_CUSTOMER
- B2BGW_SUPPLIER
For MDM SaaS, the object can be one of the
following types:
- MDM_BUSINESS_ENTITY
- MDM_REFERENCE_ENTITY
- MDM_HIERARCHY
- MDM_RELATIONSHIP
- MDM_JOB_DEFINITION
- MDM_AUTHORIZATION
- MDM_BUSINESS_EVENT
- MDM_REPORT_SET
- MDM_REPORT
- MDM_DYNAMIC_POOL
- MDM_APPLICATION
- MDM_SRC_SYSTEM
- MDM_APP_COMPONENT
- MDM_APP_PAGE
For Data Quality, the object can be one of the
following types:
- CLEANSE
- DEDUPLICATE
- DICTIONARY
- EXCEPTION

Objects 207
Field Type Operators Description

- LABELER
- PARSE
- RULE_SPECIFICATION
- VERIFIER
For Data Profiling, the object can be of the PROFILE
type.
Object types are not case sensitive.

location String == The project and folder path where the assets are
located, such as Default/Sales.

updateTime Date < The last time the assets were updated.
<=
==
=>
>
!=

updatedBy String == The user who last updated the assets. Use the
!= userName value for the user.

tag String == The tag associated with the assets.

[Link] String ==, != User who checked out the asset.

[Link] Date <,<=,==,=>,>, != Time the asset was checked out.

[Link] String ==, != Source control hash. Supports partial hash using a
wildcard ( * ).

[Link] String ==, != User who last checked in the asset.

[Link] Date <,<=,==,=>,>, != The last time the asset was checked in.

[Link] Date <,<=,==,=>,>, != The last time the asset was pulled.

[Link] Boolean ==, != Whether the asset is source controlled.

[Link] String ==, != User who published the asset.


Applicable to Application Integration.

[Link] Date <,<=,==,=>,>, != Date the asset was published.


Applicable to Application Integration.

GET request examples


The following examples show how you can use query parameters to request a list of assets:

• To request a list of Data Integration mapping tasks that were last updated November 21, 2018 or later,
you might use the following URI:
/public/core/v3/objects?q=type=='MTT' and updateTime>=2018-11-21T12:00:00Z

208 Chapter 3: Platform REST API version 3 resources


• To request a list of Data Integration mapping tasks that were last updated November 21, 2018 or later,
you might use the following URI:
/public/core/v3/objects?q=type=='MTT' and updateTime>=2018-11-21T12:00:00Z
• To request a list of assets located in the Default/SalesOpps folder that were last updated before March
27, 2018, you might use the following URI:
/public/core/v3/objects?q=location=='Default/SalesOpps' and
updateTime<2018-03-27T12:00:00Z
• To request a list of assets associated with the UpsellOpps tag that were last updated January 10, 2018 or
later, you might use the following URI:
/public/core/v3/objects?q=tag=='UpsellOpps' and updateTime>=2018-01-10T12:00:00Z
• To request a list of up to 150 assets that were last updated December 30, 2017, excluding Data
Integration mappings, you might use the following URI:
/public/core/v3/objects?q=type!='MAPPING' and updateTime=2017-12-30T12:00:00Z&max=150
• To request a list of assets over the limit of 200, you might use the following URI in an additional request:
/public/core/v3/objects?limit=200&skip=200

GET response
If successful, returns a list of assets and a count of the assets based on the query results. If errors occur,
returns an error object.

Note: If the result size is large, for example, over 1000 objects, the count returned in the response might not
be precise for up to 90 seconds. The fetch list returns all the results using the top and limit parameters
included in the request, even though the returned count in the API might not have changed. Also, the count
field might not be the first field in the response.

A successful response includes the following information:

Field Type Description

count String Number of assets matching the filter query.

objects - Contains information for each of the assets.

id String Global unique identifier for the asset. Use the value of this field as the
value for taskFederatedId when you submit a job request.

path String Full path of the asset including project, folder, and object name.

type String Type of asset.

description String Description of the asset.

updatedBy String User name of the user who last updated the asset. If the asset is a
system-created object such as the Default project and the Add-On
Bundles folder, the value for this field is Informatica.

updateTime String Last time the asset was modified.

tag String Tags associated with the asset.

sourceControl - Contains source control metadata for the asset.

[Link] String User who checked out the object.

Objects 209
Field Type Description

[Link] Date Time the asset was checked out.

[Link] String Source control hash for the asset.

[Link] String User who checked out the object.

[Link] Date Time that the asset was checked in last.

[Link] Date Time that the asset was pulled last.

[Link] Boolean Whether the asset is source controlled.

customAttributes - Contains publishing metadata for the Application Integration asset.

[Link] String Included in the customAttributes object.


User who published the asset.
Applicable to Application Integration.

[Link] Date Included in the customAttributes object.


Date that the asset was published.
Applicable to Application Integration.

GET example
The following example shows a request to receive a list of assets that are in the P1 folder and limit the
response to two assets:
GET /saas/public/core/v3/objects?q=location=='P1'&limit=2
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID: 3H05q5PicfolyDXnp3N06c

The response includes information for the first two assets as shown in the following example:
{
"count": 4,
"objects": [
{
"id": "1a3TnUrT2cfiwQGtkWQEUy",
"path": "P1/F1",
"type": "Folder",
"description": "",
"updatedBy": "mma@[Link]",
"updateTime": "2018-12-17T00:29:29Z"
"tags": [
"tag3",
"tag4"
],
"sourceControl": {
"checkedOutBy": "mma@[Link]",
"checkedOutTime": "2020-05-05T17:37:13Z",
"hash": "3e082fb9bcb2349e9f0a4fb516c739610c869391",
"lastCheckinTime": "2020-05-05T04:51:09Z",
"lastCheckinBy": "mma@[Link]",
"lastPullTime": null,
"sourceControlled": true
},
"customAttributes": {
"publishedBy": "mma@[Link]"
}

210 Chapter 3: Platform REST API version 3 resources


},
{
"id": "0dGB1jBDWcuhrTxG9Gy1Kh",
"path": "P1/Mapping1",
"type": "DTEMPLATE",
"description": "",
"updatedBy": "mma@[Link]",
"updateTime": "2018-12-10T02:25:14Z"
"tags": [
"tag3",
"tag4"
],
"sourceControl": {
"checkedOutBy": null,
"checkedOutTime": null,
"hash": "a98327e09883bb30583574b48113bf1d3ab9d494",
"lastCheckinTime": "2020-05-27T20:43:05Z",
"lastCheckinBy": "mma@[Link]",
"lastPullTime": null,
"sourceControlled": true
},
"customAttributes": {
"publishedBy": "mma@[Link]",
"publicationDate": "2020-05-25T11:43:12Z"
}
}
]
}

Finding asset dependencies


Use the objects resource to get a list of dependencies for an asset. You can receive a list of objects that the
asset uses or a list of objects that use the asset.

GET request
To request a list of dependencies for an asset, use the following URI:
/public/core/v3/objects/<objectId>/references?<parameters>

Objects 211
You can use the following parameters in the URI:

Parameter Type Required Description

refType Enum Yes Whether to list objects


that the asset uses or
objects that use the
asset. Use one of the
following values:
- uses. Objects that
the asset uses.
- usedBy. Objects that
use the asset.
One reference type can
be included in a
request.

limit Int - Maximum number of


objects to return, up to
50.
Default is 25.

skip Int - Number of elements to


skip from the
beginning..
Default is 0.

GET response
If successful, returns a list of dependent objects and a count of the of the dependent objects based on the
query results. If errors occur, returns an error object.

Note: If the result size is large, for example, over 1000 objects, the count returned in the response might not
be precise for up to 90 seconds. The fetch list returns all the results using the top and limit parameters
included in the request, even though the returned count in the API might not have changed. Also, the count
field might not be the first field in the response.

A successful response returns the following information:

Field Type Description

id Global unique identifier for the asset.

count Number of dependent objects.

references Collection Includes information for each object that uses or is used by the asset.
<complex type>

id String Included in the references object.


Global unique identifier for the object.

appContextId String Included in the references object.


ID of the object in context. To get details or make changes to the object, you can
use the appContextId value as the object or task ID in a service-specific REST API
call.
Applicable only to Data Ingestion and Replication and Data Integration.

212 Chapter 3: Platform REST API version 3 resources


Field Type Description

path String Included in the references object.


Full path of the object including project, folder, and object name.

type String Included in the references object.


Type of object.

description String Included in the references object.


Description of the object.

updateTime String Included in the references object.


Last time the object was modified.

GET example
The following example is a request to receive a list of objects that an asset uses with a limit of 25 objects in
the response:
GET /saas/public/core/v3/objects/1a3TnUrT2cfiwQGtkWQEUy/references?
refType=Uses&skip=0&limit=25
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID: 3H05q5PicfolyDXnp3N06c

The response includes a list of objects that the asset uses, as shown in the following example:
{
"id": "1a3TnUrT2cfiwQGtkWQEUy",
"count": 2,
"references": [
{
"id": "2iXOKghGpySlgv6ifQImyl",
"appContextId": "N0A1700000000001J",
"path": "Default/Mapping1",
"type": "DTEMPLATE",
"description": "My Mapping 1",
"updateTime": "2018-04-12T21:34:11Z"
}
{
"id": "1fOqrwpFvLkimAkFFvIiwl",
"appContextId": "N0A1700000000001K",
"path": "FF_Conn_1",
"type": "Connection",
"description": null,
"updateTime": "2018-04-12T21:33:11Z"
}
]
}

Object permissions
Use the objects resource to configure user and user group permissions to objects such as assets, folders,
and projects.

To configure permissions for an object, create an access control list (ACL) for each user or user group that
might interact with the object. Each ACL specifies a user or user group and their access rights for the object.

Object permissions 213


For example, you want the NorthDevTeam and WestDevTeam user groups to have read/write access to the
NorthwestAccounts project. You create an ACL to specify the NorthDevTeam's access rights to the
NorthwestAccounts project, and then create an ACL to specify the WestDevTeam's access rights to the
NorthwestAccounts project.

You can use the objects resource to perform the following tasks to manage permissions:

• Create ACLs for an object


• Update ACLs for an object
• Delete ACLs configured for an object
• Get permission details for a user or user group and an object
• Get your permission details for an object

Creating permissions
Create an access control list (ACL) for each user or user group and object pair.

POST request
To create an ACL, send a POST request using the following URI:
/public/core/v3/objects/<object ID/permissions
Include the following information:

Field Type Required Description

principal Object Yes Whether the ACL is defined for a user or user group and the name of the
user or user group.

type String Yes Include in principal object.


Use one of the following values:
- USER
- GROUP

name String Yes Include in principal object.


Name of the object.

permissions Object Yes Object permissions to assign to the user or group.

read Boolean Yes Include in permissions object.


Whether to allow the user or group to view the object.

delete Boolean Yes Include in permissions object.


Whether to allow the user or group to delete the object.

execute Boolean Yes Include in permissions object.


Whether to allow the user to run the task.

changePermission Boolean Yes Include in permissions object.


Whether to allow the user or group to change the permissions for the
object.

POST response
If successful, returns the object with the details you included in the POST request plus the ACL ID.

214 Chapter 3: Platform REST API version 3 resources


POST example
To create user permissions for an object, you might send a request similar to the following example:
POST <baseApiUrl>/public/core/v3/objects/9EcgvBYZ9GGflOYr98GzOH/permissions
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID: <sessionId>
{
"principal": {
"type":"USER",
"name":"larry@[Link]"
},
"permissions" : {
"read" : true,
"update" : true,
"delete" : true,
"execute" : true,
"changePermission" : true
}
}
You might receive a response similar to the following example:
[
{
"id": "0dXigiEiWRbb5rKLgPfFCe",
"principal": {
"type": "USER",
"name": "larry@[Link]"
},
"permissions": {
"read": true,
"update": true,
"delete": true,
"execute": true,
"changePermission": true
}
}
]

Updating permissions
You can update an access control list (ACL) to change the access rights that a user or user group has for an
object.

PUT request
To update an ACL, send a PUT request using the following URI:
/public/core/v3/objects/<object ID>/permissions/<ACL ID>
Include the following information:

Field Type Required Description

principal Object Yes Whether the permission is defined for a user or user group and the name
of the user or user group.

type String Yes Include in principal object.


Use one of the following values:
- USER
- GROUP

Object permissions 215


Field Type Required Description

name String Yes Include in principal object.


Name of the object.

permissions Object Yes Object permissions to assign to the user or group.

read Boolean Yes Include in permissions object.


Whether to allow the user or group to view the object.

delete Boolean Yes Include in permissions object.


Whether to allow the user or group to delete the object.

execute Boolean Yes Include in permissions object.


Whether to allow the user to run the task.

changePermission Boolean Yes Include in permissions object.


Whether to allow the user or group to change the permissions for the
object.

PUT response
Returns a success code if successful or an error object if errors occur.

PUT example
To update user permissions for an object, you might send a request similar to the following example:
PUT <baseApiUrl>/public/core/v3/objects/9EcgvBYZ9GGflOYr98GzOH/permissions/
4eMlUawPcahhK4eKBmDLsI
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID: <sessionId>
{
"principal": {
"type":"USER",
"name":"scotty@[Link]"
},
"permissions" : {
"read" : true,
"update" : true,
"delete" : true,
"execute" : false,
"changePermission" : true
}
}

Deleting permissions
You can delete the permissions that a user or user group has for an object or delete all of the permissions
configured for an object.

To delete the permissions that a user or user group has for an object, send a DELETE request using the
following URI:
/public/core/v3/objects/<object ID>/permissions/<ACL ID>
To delete all of the permissions configured for an object, send a DELETE request using the following URI:
/public/core/v3/objects/<object ID>/permissions

216 Chapter 3: Platform REST API version 3 resources


For example, to delete all of the permissions for an object, you might send a request similar to the following
request:
DELETE <baseApiUrl>/public/core/v3/objects/9EcgvBYZ9GGflOYr98GzOH/permissions

Getting permission details


You can get permission details for particular ACL ID or get the details for all permissions on an object.

GET request
To get the details for a particular ACL ID, send a GET request using the following URI:
/public/core/v3/objects/<object ID>/permissions/<ACL ID>
To get the details for all permissions on an object, send a GET request using the following URI:
/public/core/v3/objects/<object ID>/permissions

GET response
If successful, returns the following information for an ACL ID:

Field Type Description

id String ACL ID

principal Object Information about the user or group.

type String Whether the principal is a user or group.

name String User name or name of the user group.

permissions Object Object permissions for the user or group.

read Boolean Whether the user or group can view the object.

update Boolean Whether the user or group can update the object.

delete Boolean Whether the user or group can delete the object.

execute Boolean Whether the user or group can run the task.

changePermission Boolean Whether the user or group can change the permissions for the object.

Get example
To get the details for all permissions on a object, you might send a request that's similiar to the following
example:
GET <BaseApiUrl>/public/core/v3/objects/2ymkhUZCl7XbUmN7dsq6Wc/permissions
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID: <SessionId>
You might receive a response similar to the following example:

[
{
"id": "4D6ER3yic8cjjE1GmxEKEi",
"principal": {
"type": "USER",

Object permissions 217


"name": "saki@[Link]"
},
"permissions": {
"read": true,
"update": true,
"delete": true,
"execute": true,
"changePermission": true
}
},
{
"id": "6g51tCtEX08bldfh8k6cgz",
"principal": {
"type": "GROUP",
"name": "Everyone"
},
"permissions": {
"read": false,
"update": true,
"delete": true,
"execute": false,
"changePermission": true
}
}
]

Checking permissions
You can send a request to check your access rights for a particular object or asset type. The response is
based on the permissions and privileges for the user who started the current session.

You might want to check your access rights before you attempt to create an asset in a project or folder. If
you don't have permissions for the project or folder, the value of "false" will show for each permission type.

GET request
To get your access rights for an object, send a GET request using the following URI:
/public/core/v3/objects/<object ID>/permissions/checkAccess
The response includes your access rights for the given object ID.

To find out if you can create a particular type of asset in a project or folder, send a GET request that includes
the project or folder ID and the asset type. Use the following URI:
/public/core/v3/objects/<object ID>/permissions/checkAccess?type=<asset type>
For a list of asset types, see “Finding an asset” on page 205.

GET examples
To check your access rights for an object, you might send a request similar to the following example:
GET <baseApiUrl>/public/core/v3/objects/2ymkhUZCl7XbUmN7dsq6Wc/permissions/checkAccess
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID: <SessionId>
You might receive a response similar to the following example:
{
"permissions": {
"create": true,
"read": true,
"update": true,
"delete": true,
"execute": false,
"changePermission": true

218 Chapter 3: Platform REST API version 3 resources


}
}
To see if you have permissions to create a Data Integration mapping in a project, you might send a request
similar to the following example:
GET <baseApiUrl>/public/core/v3/objects/2ymkhUZCl7XbUmN7dsq6Wc/permissions/checkAccess?
type=DTEMPLATE
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID: <SessionId>
You might receive a response similar to the following example:
{
"permissions": {
"create": true,
"read": true,
"update": true,
"delete": true,
"execute": true,
"changePermission": true
}
}

Passwords
You can manage passwords using the Informatica Intelligent Cloud Services REST API.

You can perform the following tasks:

• Change your Informatica Intelligent Cloud Services password if your current password has not expired. If
you have administrator privileges, you can change other users' passwords.
• Reset a password if it has expired or if you forgot your password.

Changing a password
You can change your Informatica Intelligent Cloud Services password if your current password has not
expired. If you have administrator privileges, you can change other users' passwords.

POST request
To change your password, use the following URI:
/public/core/v3/Users/ChangePassword
Include the following information in the request:

Field Type Required Description

newPassword String Yes New password.

oldPassword String Required if you are changing your own password. Current password.

userId String Required if an administrator is changing the password Informatica Intelligent Cloud
for another user. Services user ID.

Passwords 219
POST example
To change your password, you might send a request similar to the following example:
POST <baseApiUrl>/public/core/v3/Users/ChangePassword
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID: <sessionId>
{
"newPassword" : "<new password>",
"oldPassword" : "<old password>"
}
A successful request will not return a response. An unsuccessful request will return an error.

Resetting a password
You can reset a password if it has expired or if you forgot your password. To reset a password, you must
include the security answer in the request.

POST request
To reset your password, include the security answer in the request. Use the following URI:
/public/core/v3/Users/ResetPassword
Include the following information in the request:

Field Type Required Description

userId String Yes Informatica Intelligent Cloud Services user ID.

securityAnswer String Yes Security answer to the user's security question.

newPassword String Yes New password for the user.

POST example
To reset your password, you might send a request similar to the following example:
POST <baseApiUrl>/public/core/v3/Users/ResetPassword
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID: <sessionId>
{
"userId" : "5N9JGth6pRYfOGjGKv3Q2D",
"securityAnswer" : "Simba",
"newPassword" : "<password>"
}
A successful request will not return a response. An unsuccessful request will return an error.

Privileges
Use the privileges resource to obtain a list of privileges that you can use for custom roles.

For information on adding and updating privileges in custom roles, see “Roles” on page 227

220 Chapter 3: Platform REST API version 3 resources


GET request
You can request a list of the privileges that you are currently licensed to use. Or, you can request a list of all
of the privileges, including the privileges that are disabled due to expired licenses.

To request a list of enabled and default privileges, use the following URI:
/public/core/v3/privileges
To request a complete list of privileges that includes enabled, disabled, default, and unassigned privileges,
include a query parameter in the URI as shown in this example:
/public/core/v3/privileges?q=status==All

GET response
If successful, returns the following information for each privilege:

Field Type Description

id String Privilege ID.

name String Name of the privilege.

description String Description of the privilege.

service String The Informatica Intelligent Cloud Services service that applies to the privilege.

status String Status of the privilege. Returns one of the following values:
- Enabled. License to use the privilege is valid.
- Disabled. License to use the privilege has expired.
- Unassigned. No license to use this privilege.
- Default. Privilege included by default.

GET request example


To request a complete list of privileges, you might use the following request:
GET <BaseApiUrl>/public/core/v3/privileges?q=status==All
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID: <SessionId>

GET response example


If you send a request to get all privileges, you might receive a response similar to the following example:
[
{
"id": "0aoGhY1lAG0iS0PUeLMwoz",
"name": "[Link]",
"description": "",
"service": "DI",
"status": "Enabled"
},
{
"id": "0bsvE8I4soacaMt8RHx1yT",
"name": "update.RULE_SPECIFICATION",
"description": "update RULE_SPECIFICATION",
"service": "DQ",
"status": "Unassigned"
},
{
"id": "0CFJVGBp7Cae8o9EVFakYz",
"name": "view.RULE_SPECIFICATION",
"description": "view RULE_SPECIFICATION",

Privileges 221
"service": "DQ",
"status": "Disabled"
},
{
"id": "11Ai6CJ2PU8jaJwiAwyR0I",
"name": "[Link]",
"description": "Change Permission Folder",
"service": "Admin",
"status": "Default"
},
{
"id": "11ertBcF3aUkT7vqmn23a3",
"name": "[Link]",
"description": "view audit log",
"service": "Admin",
"status": "Default"
},
....
]

Projects and folders


You can create, update, and delete projects and folders through REST API calls.

Note: If a project or folder name contains special characters, space characters, or international characters,
use URL encoding in the URI so that the server can properly decode the name. For example, for a project
named "My Project," include the following text in the URI:
My%20Project
You can't use the following characters:
# ? ' | { } " ^ & [ ] / \

Creating a project
Create projects to organize your assets.

POST request
To create a project, send a POST request using the following URI:
/public/core/v3/projects
Note: You can create a maximum of 500 projects usingInformatica Intelligent Cloud Services REST API.

Include the following information:

Field Type Required Description

name String Yes Name of the project.

description String - Description of the project.

222 Chapter 3: Platform REST API version 3 resources


POST response
If successful, returns the projects object with the following details:

Field Type Description

id String Project ID.

name String Project name.

description String Project description.

updatedBy String User who created the project.

updateTime String Date and time the project was created.

POST example
To create a project, you might send a request similar to the following example:
POST <baseApiUrl>/public/core/v3/projects
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID: <sessionId>
{
"name":"Orders",
"description": "Orders from all regions"
}
You might receive a response similar to the following example:
{
"id": "kTKQG4Kv3uhgQleaOoUbWu",
"name": "Orders",
"description": "Orders from all regions",
"updatedBy": "scotty@[Link]",
"updateTime": "2022-04-12T23:40:40.395Z"
}

Updating a project
You can change a project's name or description if you have update permission for the project.

PATCH request
To update a project, send a PATCH request using one of the following URIs:
/public/core/v3/projects/<project ID>
/public/core/v3/projects/name/<project name>
Include the following information:

Field Type Required Description

name String - Name of the project.

description String - Description of the project.

Projects and folders 223


PATCH response
Returns a success code if successful or an error object if errors occur.

PATCH example
To update a project, you might send a request similar to the following example:
PATCH <baseApiUrl>/public/core/v3/projects/kTKQG4Kv3uhgQleaOoUbWu
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID: <sessionId>
{
"name":"Requests",
"description": "Orders from all regions"
}

Deleting a project
You can delete a project from your organization if it doesn't contain any folders or assets and if you have
delete permission for the project.

DELETE request
To delete a project, use one of the following URIs:
/public/core/v3/projects/<project ID>
/public/core/v3/projects/name/<project name>

DELETE example
To delete a project named "All Orders," you might send the following request:
DELETE <baseApiUrl>/public/core/v3/projects/name/All%20Orders
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID: <SessionId>

Creating a folder
You can create a folder in the Default project or specify a different project.

Note: You can create a maximum of 5000 folders usingInformatica Intelligent Cloud Services REST API.

POST request
To create a folder in the Default project, use the following URI:
/public/core/v3/folders
To create a folder in a project other than the Default project, use one of the following URIs:
/public/core/v3/projects/<project ID>/folders
/public/core/v3/projects/name/<project name>/folders

224 Chapter 3: Platform REST API version 3 resources


Include the following information:

Field Type Required Description

name String Yes Name of the folder.

description String - Description of the folder .

POST response
If successful, returns the folder object with the following details:

Field Type Description

id String Folder ID.

name String Folder name.

description String Folder description.

updatedBy String User who created the folder.

updateTime String Date and time the folder was created.

POST example
To create a folder in the Orders project, you might send a request similar to the following example:
POST <baseApiUrl>/public/core/v3/projects/name/Orders/folders
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID: <sessionId>
{
"name":"Northwest Orders",
"description": "Orders from northwest offices"
}
You might receive a response similar to the following example:
{
"id": "kTrYZ8fInr1Uw3ugQbOuWe",
"name": "Northwest Orders",
"description": "Orders from northwest offices",
"updatedBy": "scotty@[Link]",
"updateTime": "2022-04-13T18:20:40.325Z"
}

Updating a folder
You can change a folder's name or description if you have update permission for the folder.

PATCH request
To update a folder that's in the Default project, send a PATCH request using the following URI:
/public/core/v3/folders/<folder ID>
To update a folder that's in a project other than the Default project, use one of the following URIs:
/public/core/v3/projects/<project ID>/folders/<folder ID>
/public/core/v3/projects/name/<project name>/folders/name/<folder name>

Projects and folders 225


Note: You can include project and folder IDs or project and folder names in a URI, but you can't include an ID
and a name in a URI. For example, you can't include the project ID and the folder name.

Include the following information:

Field Type Required Description

name String - Name of the folder.

description String - Description of the folder.

PATCH response
Returns a success code if successful or an error object if errors occur.

PATCH example
To change the name and description of the Northeast Orders folder, you might send a request similar to the
following example:
PATCH <baseApiUrl>/public/core/v3/projects/name/Orders/folders/name/Northeast%20Orders
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID: <sessionId>
{
"name":"Northeast Requests",
"description": "Requests from the northeast offices"
}

Deleting a folder
You can delete a folder if it is empty and you have delete permission for the folder. If the folder contains
assets, you must delete or move the assets before you can delete it.

DELETE request
To delete a folder that's in the Default project, use the following URI:
/public/core/v3/projects/<folder ID>
To delete a folder that's in a project other than the Default project, use one of the following URIs:
/public/core/v3/projects/<project ID>/folders/<folder ID>
/public/core/v3/projects/name/<project name>/folders/name/<folder name>
Note: You can include project and folder IDs or project and folder names in a URI, but you can't include an ID
and a name in a URI. For example, you can't include the project ID and the folder name.

DELETE example
To delete a folder named "Orders:West Coast," you might send the following request:
DELETE <baseApiUrl>/public/core/v3/projects/name/Orders/folders/name/Orders%3AWest
%20Coast
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID: <SessionId>

226 Chapter 3: Platform REST API version 3 resources


Roles
A role is a collection of privileges that you can assign to users and groups. Use the roles resource to get the
details for roles in your organization. You can also use this resource to create, update, and delete custom
roles.

Note: This resource uses a dynamic rate limit. When the system experiences a large volume or size of
requests, responses might be slow or fail with the error message, "too many requests."

Getting role details


You can request the details for all of your organization's roles or request the details for a particular role.

GET request
To get role details, use the following URI:
/public/core/v3/roles
To get the details for a particular role, you can include the following query parameters in the URI:

Parameter Type Description

q String Query filter. You can filter using one of the following fields:
- roleId. Unique identifier for the role.
- roleName. Name of the role.

expand String Returns the privileges associated with the role specified in the query filter.
Include the following phrase in the query:
expand=privileges

For example, to get details for the Business Manager role including privileges, you might use the following
request:
/public/core/v3/roles?q=roleName=="Business Manager"&expand=privileges

GET response
If successful, returns the following information for each role:

Field Type Description

id String Role ID.

orgId String ID of the organization the role belongs to.

createdBy String User who created the role.

updatedBy String User who last updated the role.

createTime String Date and time the role was created.

updateTime String Date and time the role was last updated.

roleName String Name of the role.

Roles 227
Field Type Description

description String Description of the role.

displayName String Role name displayed in the user interface.

displayDescription String Description displayed in the user interface.

systemRole Boolean Whether the role is a system-defined role. Returns one of the following values:
- True. Role is a system-defined role.
- False. Role is a custom role.

status String Whether the organization's license to use the role is valid or has expired. Returns one
of the following values:
- Enabled
- Disabled

privileges Array Privileges assigned to the role.


Returned only when the URI includes ?expand=privileges in a query.

id String Included in the privileges object.


Privilege ID.

name String Included in the privileges object.


Privilege name.

description String Included in the privileges object.


Description of the privilege.

service String Included in the privileges object.


The Informatica Intelligent Cloud Services service that uses the privilege.

status String Included in the privileges object.


Whether the organization's license to use the privilege is valid or has expired. Returns
one of the following values:
- Enabled
- Disabled

GET request example


To get role details, you might use the following request:
GET <BaseApiUrl>/public/core/v3/roles
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID <SessionId>

GET response example


You might receive a response similar to the following example:
[
{
"id": "7EjAMAHsiOTcg8v29z0Gsl",
"orgId": "52ZSTB0IDK6dXxaEQLUaQu",
"createdBy": "ops-post-deploy-user",
"updatedBy": "ops-post-deploy-user",
"createTime": "2019-03-22T21:26:46.000Z",
"updateTime": "2019-03-22T21:26:52.000Z",
"roleName": "Business Manager",

228 Chapter 3: Platform REST API version 3 resources


"description": "Role used for business managers",
"displayName": "Application Integration Business Manager",
"displayDescription": "Role used for business managers",
"systemRole": true,
"status": "Disabled",
"privileges": [
{
"id": "5Cgp0GcsmRejyxIgV4eXy1",
"name": "[Link]",
"description": "View application integration console",
"service": "ApplicationIntegration",
"status": "Disabled"
},
{
"id": "aReU2uciLYglcq0Ntvc2Ob",
"name": "[Link]",
"description": "View application integration assets",
"service": "ApplicationIntegration",
"status": "Disabled"
},
{
"id": "8zDel5v89cKfeMtM2FHFEw",
"name": "[Link]",
"description": "View application integration designer",
"service": "ApplicationIntegration",
"status": "Disabled"
}
]
}
]

Creating a role
You can create custom roles for your organization.

POST request
To create a custom role, send a POST request using the following URI:
/public/core/v3/roles
Note: The number of users, user groups, and roles combined cannot exceed 1000 for an organization.

Include the following information:

Field Type Required Description

name String Yes Name of the role.

description String - Description of the role.

privileges Array Yes IDs of the privileges to assign to the role. A role must have at least one privilege
assigned to it.

POST response
If successful, returns the roles object with the details you included in the POST request.

POST example
To create a custom role, you might send a request similar to the following example:
POST <baseApiUrl>/public/core/v3/roles
Content-Type: application/json

Roles 229
Accept: application/json
INFA-SESSION-ID: <sessionId>
{
"name" : "CAIviewer",
"description": "A role to view Application Integration designer and assets",
"privileges" : ["aQwUdcM8RcQewA1yWphZ4F", "0nTOXl8dzEwlSFoM0cO8gI"]
}
You might receive a response similar to the following example:
{
"id": "8j2MPlr8ubZgteIOwleSCk",
"orgId": "cPYWk02I4aBeuLEvYRtaMS",
"createdBy": "a@[Link]",
"updatedBy": "a@[Link]",
"createTime": "2019-03-20T18:33:33.361Z",
"updateTime": "2019-03-20T18:33:33.428Z",
"roleName": "CAIviewer",
"description": "A role to view Application Integration designer and assets",
"displayName": "CAIviewer",
"displayDescription": "A role to view Application Integration designer and assets",
"systemRole": false,
"status": "Enabled",
"privileges": [
{
"id": "0nTOXl8dzEwlSFoM0cO8gI",
"name": "[Link]",
"description": "View application integration designer"
},
{
"id": "aQwUdcM8RcQewA1yWphZ4F",
"name": "[Link]",
"description": "View application integration assets"
}
]
}

Updating a role
You can add or remove privileges for custom roles.

Add privileges
To add privileges to a custom role, send a PUT request using one of the following URIs:
/public/core/v3/roles/<role ID>/addPrivileges
/public/core/v3/roles/name/<role name>/addPrivileges
Include an array of privilege names for the custom role.

For example, to give a role create and delete privileges for data transfer tasks, you might use the following
request:
PUT <baseApiUrl>/public/core/v3/roles/cPYWk02I4aBeuLEvYRtaMS/addPrivileges
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID: <sessionId>
{
"privileges" : ["[Link]", "[Link]"]
}
You can use the privileges resource to get a list of privilege names that you can use. For more information,
see “Privileges” on page 220.

230 Chapter 3: Platform REST API version 3 resources


Remove privileges
To remove privileges from a custom role, send a PUT request using one of the following URIs:
/public/core/v3/roles/<role ID>/removePrivileges
/public/core/v3/roles/name/<role name>/removePrivileges
You can't remove all of the privileges from a role. A role must have at least one privilege assigned to it.

Include an array of privilege names to remove for the custom role.

For example, to remove create and delete privileges for API collection from a role, you might use the
following request:
PUT <baseApiUrl>/public/core/v3/roles/cPYWk053KnrUerLvYRtaMS/removePrivileges
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID: <sessionId>
{
"privileges" : ["[Link]", "[Link]"]
}

Deleting a role
You can delete custom roles from your organization.

To delete a role, send a DELETE request using the following URI:


/public/core/v3/roles/<role ID>

SAML group and role mapping


If your organization uses SAML single sign-on (SSO) for authentication and authorization, use the Orgs
resource to map SAML roles and groups to Informatica Intelligent Cloud Services roles. You can also use the
Orgs resource to get details about SAML role and group mappings for an organization.

You can map up to 200 SAML groups or roles to an Informatica Intelligent Cloud Services role. To find a list
of Informatica Intelligent Cloud Services roles, you can use the “Roles” on page 227 resource.

Before you map SAML groups and roles, ensure that the Map SAML Groups and Roles option is enabled in
Administrator.

After you map SAML groups and roles to Informatica Intelligent Cloud Services roles, you cannot configure
user roles or groups for SAML SSO users individually in Administrator or through the Informatica Intelligent
Cloud Services REST API.

For more information about using SAML SSO, see User Administration in the Administrator help.

Adding SAML group mappings


Add SAML group mappings that map SAML groups to Informatica Intelligent Cloud Services roles.

Note: You cannot map a SAML group or role that contains one of the following characters in the name:

• Pipe ( | )
• Semicolon ( ; )

SAML group and role mapping 231


• Comma ( , )

PUT request
To add a mapping between an Informatica Intelligent Cloud Services role and SAML groups, use the following
URI:
/public/core/v3/Orgs/<organization ID>/addSamlGroupMappings
If you map a SAML group that doesn't exist in Informatica Intelligent Cloud Services, Informatica Intelligent
Cloud Services creates the group. If a group with the same name exists in Informatica Intelligent Cloud
Services, you can specify whether to reuse the group or create a new group. By default, Informatica Intelligent
Cloud Services creates a new group with _EXT appended to the name.

Include the following information:

Field Type Required Description

groupMappings Array yes Object that defines the Informatica Intelligent Cloud Services role and
SAML group mappings.

roleName String yes Include in the groupMappings object.


Name of the Informatica Intelligent Cloud Services role.

samlGroupNames String yes Include in the groupMappings object


Names of the SAML groups to map to the Informatica Intelligent Cloud
Services role.

reuseGroup Boolean -- Whether to use the existing Informatica Intelligent Cloud Services group
if the group name is the same as the SAML group name.
If false, Informatica Intelligent Cloud Services creates a new group.
Default is false.

Returns the 204 response code if successful. Returns an error object if errors occurs.

PUT examples
To map the Informatica Intelligent Cloud Services Admin role to the Security and Dev-Managers SAML
groups, and map the Informatica Intelligent Cloud Services Designer role to the Developers SAML group, you
might send a request similar to the following example:
PUT <baseApiUrl>/public/core/v3/Orgs/6MRgiMIfvdRfCCLITrLCcI/addSamlGroupMappings
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID: 9KA11tLGqxVcGeul8SQBK3
{
"groupMappings": [
{
"roleName": "Admin",
"samlGroupNames": ["Security","Dev-Managers"]
},
{
"roleName": "Designer",
"samlGroupNames": "Developers"
}
],
"reuseGroup": "true"

232 Chapter 3: Platform REST API version 3 resources


To add another group mapping to map the Informatica Intelligent Cloud Services Admin role to the
Administrators SAML group, you might send a request similar to the following example:
PUT <baseApiUrl>/public/core/v3/Orgs/6MRgiMIfvdRfCCLITrLCcI/addSamlGroupMappings
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID: 9KA11tLGqxVcGeul8SQBK3
{
"groupMappings": [
{
"roleName": "Admin",
"samlGroupNames": "Administrators"
}
],
"reuseGroup": "true"
}
Now the Informatica Intelligent Cloud Services Admin role is mapped to the Security, Dev-Managers, and
Administrators SAML groups.

Adding SAML role mappings


Add SAML role mappings that map SAML roles to Informatica Intelligent Cloud Services roles.

Note: You cannot map a SAML group or role that contains one of the following characters in the name:

• Pipe ( | )
• Semicolon ( ; )
• Comma ( , )

PUT request
To add a mapping between Informatica Intelligent Cloud Services roles and SAML roles, use the following
URI:
/public/core/v3/Orgs/<organization ID>/addSamlRoleMappings
Include the following information:

Field Type Required Description

roleMappings Array yes Object that defines the Informatica Intelligent Cloud Services role and SAML
role mappings.

roleName String yes Include in the roleMappings object.


Name of the Informatica Intelligent Cloud Services role.

samlRoleNames List yes Include in the roleMappings object


Names of the SAML roles to map to the Informatica Intelligent Cloud
Services role.

Returns the 204 response code if successful. Returns an error object if errors occurs.

PUT example
To map the Informatica Intelligent Cloud Services Developer role to the Data Designer and MS Deployer
SAML roles, and map the Informatica Intelligent Cloud Services Admin role to the Operator SAML role, you
might send a request similar to the following example:
PUT <baseApiUrl>/public/core/v3/Orgs/6MRgiMIfvdRfCCLITrLCcI/addSamlRoleMappings
Content-Type: application/json

SAML group and role mapping 233


Accept: application/json
INFA-SESSION-ID: 9KA11tLGqxVcGeul8SQBK3
{
"roleMappings": [
{
"roleName": "Developer",
"samlRoleNames": ["Data Designer","MS Deployer"]
},
{
"roleName": "Admin",
"samlRoleNames": "Operator"
}
]
}

Removing SAML group mappings


Remove SAML group mappings that map SAML groups to Informatica Intelligent Cloud Services roles.

PUT request
To remove a SAML group mapping, send a PUT request using the following URI:
/public/core/v3/Orgs/<organization ID>/removeGroupMappings
Include the following information:

Field Type Required Description

groupMappings Array yes Object that defines the Informatica Intelligent Cloud Services role and
SAML group mappings.

roleName String yes Include in the groupMappings object.


Name of the Informatica Intelligent Cloud Services role.

samlGroupNames String yes Include in the groupMappings object.


Names of the SAML groups to remove.

PUT example
If you want to remove the mapping between the Informatica Intelligent Cloud Services Admin role and the
Administrators SAML group, you might send a request similar to the following example:
PUT <baseApiUrl>/public/core/v3/Orgs/6MRgiMIfvdRfCCLITrLCcI/removeSamlGroupMappings
Content-type: application/json
Accept: application/json
INFA-SESSION-ID: 9KA11tLGqxVcGeul8SQBK3
{
"groupMappings": [
{
"roleName": "Admin",
"samlGroupNames": "Administrators"
}
]
}

234 Chapter 3: Platform REST API version 3 resources


Removing SAML role mappings
Remove SAML role mappings that map SAML roles to Informatica Intelligent Cloud Services roles.

PUT request
To remove a SAML role mapping, send a PUT request using the following URI:
/public/core/v3/Orgs/<organization ID>/removeSamlRoleMappings
Include the following information:

Field Type Required Description

roleMappings Array yes Object that defines the Informatica Intelligent Cloud Services role and SAML
role mapping.

roleName String yes Include in the roleMappings object.


Name of the Informatica Intelligent Cloud Services role.

samlRoleNames String yes Include in the roleMappings object.


Names of the SAML roles to remove.

PUT example
If you want to remove the mapping between the Informatica Intelligent Cloud Services Admin role and the
Operator SAML role, you might send a request similar to the following example:
PUT <baseApiUrl>/public/core/v3/Orgs/6MRgiMIfvdRfCCLITrLCcI/removeSamlRoleMappings
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID: 9KA11tLGqxVcGeul8SQBK3
{
"roleMappings": [
{
"roleName": "Admin",
"samlRoleNames": "Operator"
}
]
}

Getting SAML group mapping details


You can get the details for all the group mappings for an organization or use a filter to get group mapping
details for a particular Informatica Intelligent Cloud Services role or SAML group.

GET request
To get details for group mappings, use the following URI:
public/core/v3/Orgs/<organization ID>/SAMLConfig/groupMappings?<query parameters>
To get all the group mapping details for the organization, omit the query parameters.

SAML group and role mapping 235


To get details for a particular role or SAML group, you can include the following query parameters in the URI:

Parameter Type Description

q String Query filter string. You can filter using one of the following fields:
- roleId
- roleName
- samlGroupNames

limit Int Maximum number of mappings to return.


Default is 200.

skip Int Number of mappings to skip in the results.


For example, a value of 4 excludes the first four mappings.
Default is 0.

You can use the following fields to define the query filter:

Field Type Operators Description

roleId String == ID of the Informatica Intelligent Cloud Services role.

roleName String == Name of the Informatica Intelligent Cloud Services role.

samlGroupNames String == Name of the SAML group.

GET request example


To get the group mapping details for a particular Informatica Intelligent Cloud Services role ID, you might use
the following request:
GET <baseApiUrl>/public/core/v3/Orgs/<organization ID>/SAMLConfig/groupMappings?
q=roleId=="94207429"
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID: <SessionId>

GET response
Returns the group mapping details. Returns an error if errors occur.

If the Map SAML Groups and Roles option is enabled but no mappings exist, the response is empty.

If successful, returns a count of the available group mappings and the following information for each group
mapping:

Field Type Description

count String Number of group mappings available.

groupMappings - Contains mapping information for each group mapping.

roleId String ID of the Informatica Intelligent Cloud Services role.

236 Chapter 3: Platform REST API version 3 resources


Field Type Description

roleName String Name of the Informatica Intelligent Cloud Services role.

samlGroupNames String Names of the SAML groups.

GET response example


If successful, you might receive a response similar to the following example:
{
"count": 2,
"groupMappings": [
{
"roleId":"94207429",
"roleName:"Admin",
"samlGroupNames": [
"Security", "Dev-Managers"
]
},
{
"roleId":"149021",
"roleName:"Monitor",
"samlGroupNames": "Developers"
}
]
}

Getting SAML role mapping details


You can get the details for all the role mappings for an organization or use a filter to get role mapping details
for a particular Informatica Intelligent Cloud Services role or SAML role.

GET request
To get details for role mappings, use the following URI:
public/core/v3/Orgs/<organization ID>/SAMLConfig/roleMappings?<query parameters>
To get all the role mapping details for the organization, omit the query parameters.

To get details for a particular role or SAML role, you can include the following query parameters in the URI:

Parameter Type Description

q String Query filter string. You can filter using one of the following fields:
- roleId
- roleName
- samlRoleNames

limit Int Maximum number of mappings to return.


Default is 200.

skip Int Number of mappings to skip in the results.


For example, a value of 4 excludes the first four mappings.
Default is 0.

SAML group and role mapping 237


You can use the following fields to define the query filter:

Field Type Operators Description

roleId String == ID of the Informatica Intelligent Cloud Services role.

roleName String == Name of the Informatica Intelligent Cloud Services role.

samlRoleNames String == Name of the SAML role.

GET request example


To get the role mapping details for a particular Informatica Intelligent Cloud Services role ID, you might use
the following request:
GET <baseApiUrl>/public/core/v3/Orgs/03kEYNeduIJkVv0Qvq8NgY/SAMLConfig/roleMappings?
q=roleId=="94247429"
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID: <SessionId>

GET response
Returns the role mapping details. Returns an error if errors occur.

If the Map SAML Groups and Roles option is enabled but no mappings exist, the response is empty.

If successful, returns a count of the available role mappings and the following information for each role
mapping:

Field Type Description

count String Number of role mappings available.

roleMappings - Contains mapping information for each role mapping.

roleId String ID of the Informatica Intelligent Cloud Services role.

roleName String Name of the Informatica Intelligent Cloud Services role.

samlRoleNames String Names of the SAML roles.

GET response example


If successful, you might receive a response similar to the following example:
{
"count": 2,
"roleMappings": [
{
"roleId":"94247429",
"roleName:"Developer",
"samlRoleNames": [
"Data Designer", "MS Deployer"
]
},
{
"roleId":"142321",
"roleName:"Admin",
"samlRoleNames": "Operator"
}
]
}

238 Chapter 3: Platform REST API version 3 resources


Schedules
Use the schedule resource to request details of the schedules in the organization. You can also use this
resource to create, update, or delete schedules.

You can use the following request methods:

• To get schedule details, use a GET request.


• To create a schedule, use a POST request.
• To update a schedule, use a PATCH request.
• To delete a schedule, use a DELETE request.

Note: To leverage full scheduling capabilities, use this resource instead of the REST API version 2 schedule
resource.

Getting schedule details


Use the schedule resource to request details about the schedules in the organization.

GET request
To get the details of all schedules in the organization, use the following URI:
/public/core/v3/schedule
To get the details of a schedule using the schedule ID, use the following URI:
/public/core/v3/schedule/<id>
You can use a query parameter to get the details for specific schedules. For example, to get the details of all
disabled schedules created by the user jdoe, you might use the following URI:
/public/core/v3/schedule?q=status=='Disabled' and createdBy=='jdoe'
You can use the following query parameters in the URI:

Parameter Type Description

status Boolean Status of the schedule.


You can use the following operators:
- ==
- !=

id String Schedule ID.


Use the == operator.

scheduleFederatedId String Global unique identifier for the schedule.


Use the == operator.

name String Schedule name.


Use the == operator.
If the schedule name includes a space, replace the space with %20

Schedules 239
Parameter Type Description

updateTime Date Last time the schedule was updated, in UTC format.
You can use the following operators:
- <
- <=
- ==
- =>
- >
- !=

updatedBy String User who updated the schedule.


Use the == operator.

createdBy String User who created the schedule.


Use the == operator.

interval String Interval or repeat frequency at which the schedule runs. You can use the following
values:
- None
- Minutely
- Hourly
- Daily
- Weekly
- Biweekly
- Monthly
You can use the following operators:
- ==
- !=

GET response
If successful, returns the schedules object for the requested schedule. If you request the details for all
schedules, the schedules object contains details for each schedule in the organization.

Returns the error object if errors occur.

The schedules object includes the following attributes:

Field Type Description

id String Schedule ID.

scheduleFederatedId String Global unique identifier for the schedule.

name String Schedule name.

status String Status of the schedule. Returns one of the following values:
- enabled
- disabled

description String Description of the schedule.

createTime Date/time Time the schedule was created.

updateTime Date/time Last time the schedule was updated.

240 Chapter 3: Platform REST API version 3 resources


Field Type Description

createdBy String User who created the schedule.

updatedBy String User who last updated the schedule.

startTime Date/time Date and time when the schedule starts running, in UTC format.

endTime Date/time Date and time when the schedule stops running.

interval String Interval or repeat frequency at which the schedule runs tasks. Returns one of the
following codes:
- None. The schedule does not repeat.
- Minutely. Tasks run on an interval based on the specified number of minutes,
days, and time range.
- Hourly. Tasks run on an hourly interval based on the start time of the schedule.
- Daily. Tasks run on a daily interval based on the start time of the schedule.
- Weekly. Tasks run on a weekly interval based on the start time of the schedule.
- Biweekly. Tasks run every two weeks based on the start time of the schedule.
- Monthly. Tasks run on a monthly interval based on the start time of the
schedule.

frequency Int Frequency that the schedule runs for the specified interval. For example, if the
interval is Hourly, a frequency of 2 means the task runs every 2 hours.
Returned for Minutely, Hourly, and Daily intervals only.

rangeStartTime Date/time The start of the time range within a day that tasks run.
Returned for Minutely and Hourly intervals only.

rangeEndTime Date/time The end of the time range within a day that tasks run.
Returned for Minutely and Hourly intervals only.

sun Boolean Tasks run on Sunday. Returns one of the following codes:
- true
- false
Returned for Minutely, Hourly, Weekly, and Biweekly intervals only.

mon Boolean Tasks run on Monday.


See description for sun.

tue Boolean Tasks run on Tuesday.


See description for sun.

wed Boolean Tasks run on Wednesday.


See description for sun.

thu Boolean Tasks run on Thursday.


See description for sun.

fri Boolean Tasks run on Friday.


See description for sun.

sat Boolean Tasks run on Saturday.


See description for sun.

Schedules 241
Field Type Description

weekDay Boolean Tasks run on weekdays only. Returns one of the following codes:
- true
- false
Returned for the Daily interval only.

dayOfMonth Int Date of the month that tasks run. Returns a date between 1-28.
Returned for the Monthly interval only.

weekOfMonth String Week of the month that tasks run. Returns one of the following codes:
- First. The tasks run in the first week of the month.
- Second. The tasks run in the second week of the month.
- Third. The tasks run in the third week of the month.
- Fourth. The tasks run in the fourth week of the month.
- Last. The tasks run in the last week of the month.
Returned for the Monthly interval only.

dayOfWeek String Day of the week that tasks run. Returns one of the following codes:
- Day. Tasks run on the first day or last day of the month, based on the selected
weekOfMonth option.
- Sunday
- Monday
- Tuesday
- Wednesday
- Thursday
- Friday
- Saturday
Returned for the Monthly interval only.

timeZoneId String Time zone used for the day of the week, day of the month, or week of the month
that the tasks run.

GET example
To request information about a schedule using the schedule ID, you might use the following request:
GET <baseApiUrl>/public/core/v3/schedule/0An1v84VPL3k6kypOlxq06D0000000000003
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID: <sessionId>
A successful response might look like the following example:
{

"id": "0An1v84VPL3k6kypOlxq06D0000000000003",
"scheduleFederatedId" : "24bDtKg6d9SbaNlqDolHSR",
"name": "MI_FILE_LISTENER_10107",
"status":"enabled",
"createTime": "2018-12-03T17:34:45.000Z",
"updateTime": "2019-05-09T12:13:34.000Z",
"createdBy": "clouddemo",
"updatedBy": "vnath",
"startTime": "2020-06-09T00:15:55.000Z",
"interval": "Minutely",
"frequency": 5,
"rangeStartTime" : "",
"rangeEndTime" : "",
"mon": true,
"tue": true,
"wed": true,
"thu": true,

242 Chapter 3: Platform REST API version 3 resources


"fri": true,
"sat": true,
"sun": true,
"weekDay": false,
"dayOfMonth": 0,
"weekOfMonth": null,
"dayOfWeek": null,
"timeZoneId": "America/Los Angeles"

Creating a schedule
Use the schedule resource to create a schedule for the organization.

POST request
To create a schedule, use the following URI:
/public/core/v3/schedule
You can use the following fields in a schedules object:

Field Type Required Description

name String Yes Schedule name.

description String - Description of the schedule.

status String - Status of the schedule. Use one of the following values:
- enabled
- disabled
Default is enabled.

startTime Date/time Yes Date and time when the schedule starts running, in UTC format.

endTime Date/time - Date and time when the schedule stops running. If you do not use this
parameter, the schedule runs indefinitely.

Schedules 243
Field Type Required Description

interval String Yes Interval or repeat frequency at which the schedule runs tasks. Use one of
the following options:
- None. Tasks run at the schedule start time. The schedule does not
repeat.
- Minutely. Tasks run on an interval based on the specified number of
minutes, days, and time range. You can use the following parameters:
- frequency. Frequency in minutes that tasks run.
- sun, mon, tue, wed, thu, fri, sat. The days of the week that tasks run.
- startTimeRange and endTimeRange. The time range within a day
tasks should run. Do not use if you want tasks to run all day.
- endTime. When the schedule should stop running. Do not use if you
want the schedule to run indefinitely.
- Hourly. Tasks run on an hourly interval based on the start time of the
schedule. You can use the following parameters:
- frequency. Frequency in hours that tasks run.
- sun, mon, tue, wed, thu, fri, sat. The days of the week that tasks run.
- startTimeRange and endTimeRange. The time range within a day
tasks should run. Do not use if you want tasks to run all day.
- endTime. When the schedule should stop running. Do not use if you
want the schedule to run indefinitely.
- Daily. Tasks run on a daily interval based on the start time configured
for the schedule. You can use the following parameters:
- frequency. Frequency in days that tasks run.
- weekDay. Runs the tasks every weekday. Do not use if you want the
tasks to run every day.
- endTime. When the schedule should stop running. Do not use if you
want the schedule to run indefinitely.
- Weekly. Tasks run on a weekly interval based on the start time of the
schedule. You can use the following parameters:
- sun, mon, tue, wed, thu, fri, sat. The days of the week that tasks run.
- endTime. When the schedule should stop running. Do not use if you
want the schedule to run indefinitely.
- Biweekly. Tasks run every two weeks based on the start time of the
schedule. You can use the following parameters:
- sun, mon, tue, wed, thu, fri, sat. The days of the week that tasks run.
- endTime. When the schedule should stop running. Do not use if you
want the schedule to run indefinitely.
- Monthly. Tasks run on a monthly interval based on the start time of the
schedule. You can use the following parameters:
- dayOfMonth. Day of the month when you want tasks to run, between
1-28.
- dayOfWeek. Day of the week when you want tasks to run.
- weekOfMonth. Week of the month when you want tasks to run.
- endTime. When the schedule should stop running. Do not use if you
want the schedule to run indefinitely.
To indicate when tasks should run, use dayOfWeek with weekOfMonth,
such as the First Monday. Or use dayOfMonth, such as 1.
Tip: To run tasks on the last day of the month, use the Last weekOfMonth
parameter with the Day dayOfWeek parameter.
Default is no interval.

244 Chapter 3: Platform REST API version 3 resources


Field Type Required Description

frequency Int Yes Repeat frequency for tasks. Use one of the following values:
- For Minutely intervals, use one of the following options: 5, 10, 15, 20,
30, 45.
Default is 5.
- For Hourly intervals, use one of the following options: 1, 2, 3, 4, 6, 8, 12.
Default is 1.
- For Daily intervals, use number of days between 1 -30.
Default is 1.
Use with Minutely, Hourly, and Daily intervals only.

rangeStartTime Date/time - The start of the time range within a day that you want tasks to run. Enter
a date and time using standard date/time format. Only the time portion is
used.
Use with Minutely, Hourly, and Daily intervals only.

rangeEndTime Date/time - The end of the time range within a day that you want tasks to run. Enter a
date and time using standard date/time format. Only the time portion is
used.
Use with Minutely, Hourly, and Daily intervals only.

sun Boolean - Runs tasks on Sunday at the configured time.


You can use the sun - sat parameters to run tasks on several days of the
week.
Use with Minutely, Hourly, Weekly, and Biweekly intervals only.

mon Boolean - Runs tasks on Monday at the configured time.


See description for sun.

tue Boolean - Runs tasks on Tuesday at the configured time.


See description for sun.

wed Boolean - Runs tasks on Wednesday at the configured time.


See description for sun.

thu Boolean - Runs tasks on Thursday at the configured time.


See description for sun.

fri Boolean - Runs tasks on Friday at the configured time.


See description for sun.

sat Boolean - Runs tasks on Saturday at the configured time.


See description for sun.

weekDay Boolean - Runs tasks on weekdays. Use one of the following options:
- True. Run tasks on Monday through Friday. Does not run tasks on the
weekend.
- False. Run tasks every day.
Use with the Daily interval only.

Schedules 245
Field Type Required Description

dayOfMonth Int - Date of the month that tasks should run. Use a date between 1-28.
Use with the Monthly interval only.
Tip: To run tasks on the last day of the month, use the Last weekOfMonth
parameter with the Day dayOfWeek parameter.

weekOfMonth String - Week of the month that tasks should run. Use with dayOfWeek to specify
the day and week of the month that tasks should run. For example, the
First Day or the Last Wednesday of the month.
Use one of the following options:
- First
- Second
- Third
- Fourth
- Last
Use with the Monthly interval only.

dayOfWeek String - Day of the week that tasks should run. Use with weekOfMonth to specify
the day and week of the month that tasks should run. For example, the
First Day or the Last Wednesday of the month.
Use one of the following options:
- Day
- Sunday
- Monday
- Tuesday
- Wednesday
- Thursday
- Friday
- Saturday
Use with the Monthly interval only.

timeZoneId String - Time zone that the schedule uses for the dayOfMonth, weekOfMonth, and
dayOfWeek fields.
Default is UTC.
For more information, see Appendix A, “Time zone codes” on page 581

POST request example


To create a schedule, your request might look something like the following example:
POST <baseApiUrl>/public/core/v3/schedule
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID: <sessionId>
{
"name": "my_schedule_1",
"startTime" : "2023-09-18T22:00:00.000Z",
"interval" : "Minutely",
"frequency" : 5,
"mon" : true,
"wed" : true,
"status" : "enabled"
}

POST response
Returns the schedules response object for the schedule that you created or updated.

Returns an error object if errors occur.

246 Chapter 3: Platform REST API version 3 resources


A successful response might look like the following example:
{
"id": "8oKIw0ib9qMg1lGIWNPzkdD000000000000H",
"createTime": "2023-09-10T11:48:28.000Z",
"updateTime": "2023-09-10T11:48:28.000Z",
"createdBy": "dev_scott",
"updatedBy": "dev_scott",
"name": "my_schedule_1",
"rangeStartTime": null,
"rangeEndTime": null,
"status": "enabled",
"frequency": 5,
"description": null,
"mon": true,
"tue": false,
"wed": true,
"thu": false,
"fri": false,
"sat": false,
"sun": false,
"weekDay": false,
"dayOfMonth": 0,
"weekOfMonth": null,
"dayOfWeek": null,
"scheduleFederatedId": "1BrVocfYMAzeQHwXaaMWe7",
"startTime": "2020-12-25T12:00:00.000Z",
"endTime": null,
"interval": "Minutely",
"timeZoneId": "America/Los Angeles"
}

Updating a schedule
Use the schedule resource to update, enable, or disable a schedule.

PATCH request
Use the following URI:
/public/core/v3/schedule/<id>
Include the following fields in the request body:

Field Type Required Description

name String - Schedule name.

id String Yes Schedule ID.


You cannot update the schedule ID.

scheduleFederatedId String Yes Global unique identifier for the schedule.


You cannot update the federated schedule ID.

description String - Description of the schedule.

status String - Status of the schedule. Use one of the following values:
- enabled
- disabled
Default is enabled.

Schedules 247
Field Type Required Description

startTime Date/time - Date and time when the schedule starts running the tasks, in UTC
format.

endTime Date/time - Date and time when the schedule stops running the tasks. If you do
not use this parameter, the schedule runs indefinitely.

248 Chapter 3: Platform REST API version 3 resources


Field Type Required Description

interval String - Interval or repeat frequency at which the schedule runs tasks. Use
one of the following options:
- None. Tasks run at the schedule start time. The schedule does
not repeat.
- Minutely. Tasks run on an interval based on the specified number
of minutes, days, and time range. You can use the following
parameters:
- frequency. Frequency in minutes that tasks run.
- sun, mon, tue, wed, thu, fri, sat. The days of the week that tasks
run.
- startTimeRange and endTimeRange. The time range within a
day tasks should run. Do not use if you want tasks to run all
day.
- endTime. When the schedule should stop running. Do not use if
you want the schedule to run indefinitely.
- Hourly. Tasks run on an hourly interval based on the start time of
the schedule. You can use the following parameters:
- frequency. Frequency in hours that tasks run.
- sun, mon, tue, wed, thu, fri, sat. The days of the week that tasks
run.
- startTimeRange and endTimeRange. The time range within a
day tasks should run. Do not use if you want tasks to run all
day.
- endTime. When the schedule should stop running. Do not use if
you want the schedule to run indefinitely.
- Daily. Tasks run on a daily interval on the start time configured
for the schedule. You can use the following parameters:
- frequency. Frequency in days that tasks run.
- weekDay. Runs the tasks every weekday. Do not use if you want
the tasks to run every day.
- endTime. When the schedule should stop running. Do not use if
you want the schedule to run indefinitely.
- Weekly. Tasks run on a weekly interval based on the start time of
the schedule. You can use the following parameters:
- sun, mon, tue, wed, thu, fri, sat. The days of the week that tasks
run.
- endTime. When the schedule should stop running. Do not use if
you want the schedule to run indefinitely.
- Biweekly. Tasks run every two weeks based on the start time of
the schedule. You can use the following parameters:
- sun, mon, tue, wed, thu, fri, sat. The days of the week that tasks
run.
- endTime. When the schedule should stop running. Do not use if
you want the schedule to run indefinitely.
- Monthly. Tasks run on a monthly interval based on the start time
of the schedule. You can use the following parameters:
- dayOfMonth. Day of the month when you want tasks to run,
between 1-28.
- dayOfWeek. Day of the week when you want tasks to run.
- weekOfMonth. Week of the month when you want tasks to run.
- endTime. When the schedule should stop running. Do not use if
you want the schedule to run indefinitely.
To indicate when tasks should run, use dayOfWeek with
weekOfMonth, such as the First Monday. Or use dayOfMonth, such
as 1.
Tip: To run tasks on the last day of the month, use the Last
weekOfMonth parameter with the Day dayOfWeek parameter.
Default is no interval.

Schedules 249
Field Type Required Description

frequency Int - Repeat frequency for tasks. Use one of the following values:
- For Minutely intervals, use one of the following options: 5, 10, 15,
20, 30, 45.
Default is 5.
- For Hourly intervals, use one of the following options: 1, 2, 3, 4, 6,
8, 12.
Default is 1.
- For Daily intervals, use number of days between 1 -30.
Default is 1.
Use with Minutely and Hourly intervals only.

rangeStartTime Date/time - The start of the time range within a day that you want tasks to run.
Enter a date and time using standard date/time format. Only the
time portion is used.
Use with Minutely and Hourly intervals only.

rangeEndTime Date/time - The end of the time range within a day that you want tasks to run.
Enter a date and time using standard date/time format. Only the
time portion is used.
Use with Minutely and Hourly intervals only.

sun Boolean - Runs tasks on Sunday at the configured time.


You can use the sun - sat parameters to run tasks on several days of
the week.
Use with Minutely, Hourly, Weekly, and Biweekly intervals only.

mon Boolean - Runs tasks on Monday at the configured time.


See description for sun.

tue Boolean - Runs tasks on Tuesday at the configured time.


See description for sun.

wed Boolean - Runs tasks on Wednesday at the configured time.


See description for sun.

thu Boolean - Runs tasks on Thursday at the configured time.


See description for sun.

fri Boolean - Runs tasks on Friday at the configured time.


See description for sun.

sat Boolean - Runs tasks on Saturday at the configured time.


See description for sun.

weekDay Boolean - Runs tasks on weekdays. Use one of the following options:
- True. Run tasks on Monday through Friday. Does not run tasks on
the weekend.
- False. Run tasks every day.
Use with the Daily interval only.

250 Chapter 3: Platform REST API version 3 resources


Field Type Required Description

dayOfMonth Int - Date of the month that tasks should run. Use a date between 1-28.
Use with the Monthly interval only.
Tip: To run tasks on the last day of the month, use the Last
weekOfMonth parameter with the Day dayOfWeek parameter.

weekOfMonth String - Week of the month that tasks should run. Use with dayOfWeek to
specify the day and week of the month that tasks should run. For
example, the First Day or the Last Wednesday of the month.
Use one of the following options:
- First
- Second
- Third
- Fourth
- Last
Use with the Monthly interval only.

dayOfWeek String - Day of the week that tasks should run. Use with weekOfMonth to
specify the day and week of the month that tasks should run. For
example, the First Day or the Last Wednesday of the month.
Use one of the following options:
- Day
- Sunday
- Monday
- Tuesday
- Wednesday
- Thursday
- Friday
- Saturday
Use with the Monthly interval only.

timeZoneId String - Time zone that the schedule uses for the dayOfMonth,
weekOfMonth, and dayOfWeek fields.
Default is UTC.
For more information, see Appendix A, “Time zone codes” on page 581

PATCH example
To update a schedule, your request might look something like the following example:
PATCH <baseApiUrl>/public/core/v3/schedule/0An1v84VPL3k6kypOlxq06D0000000000003
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID: <sessionId>
{
"schedules": [
{
"id": "0An1v84VPL3k6kypOlxq06D0000000000003",
"scheduleFederatedId": "1KiAwzRVIOTlAtCjPtzV4H",
"name": "V3_Test_CreateSchedule_1569944878",
"status": "disabled",
"description": "Update version 2",
"sat": true
}
]
}

Schedules 251
A successful response might look like the following example:
{
"id": "0An1v84VPL3k6kypOlxq06D0000000000003",
"createTime": "2022-09-24T15:34:36.000Z",
"updateTime": "2022-10-01T15:47:59.442Z",
"createdBy": "dev_larry",
"updatedBy": "dev_larry",
"name": "V3_Test_CreateSchedule_1569944878",
"rangeStartTime": null,
"rangeEndTime": null,
"status": "disabled",
"frequency": 1,
"description": "Update version 2",
"mon": false,
"tue": false,
"wed": true,
"thu": false,
"fri": false,
"sat": true,
"sun": false,
"weekDay": false,
"dayOfMonth": 0,
"weekOfMonth": null,
"dayOfWeek": null,
"scheduleFederatedId": "1KiAwzRVIOTlAtCjPtzV4H",
"startTime": "2022-12-25T12:00:00.000Z",
"endTime": null,
"interval": "Hourly",
"timeZoneId": "America/Los Angeles"
}

Deleting a schedule
Use the schedule resource to delete a schedule.

To delete a schedule, send a DELETE request using the following URI:


/public/core/v3/schedule/<id>
A successful response returns the 204 response code. If errors occur, an error object is returned.

SCIM tokens
If your organization pushes user and group information to Informatica Intelligent Cloud Services using SCIM
2.0, you can manage the SCIM tokens using the scimTokens resource. Use the scimTokens resource to list,
create, and delete SCIM tokens.

You can use the following request methods:

• To list the SCIM tokens you created, use a GET request.


• To create a SCIM token, use a POST request.
• To delete a SCIM token that you created, use a DELETE request.
Before you can modify SCIM tokens, ensure that the Map SAML Groups and Roles and Enable IdP to push
users/groups using SCIM 2.0 options are enabled in Administrator. Your user role must also have privileges
to read and update organizations.

For more information about using SCIM 2.0 and about Administrator asset privileges, see User Administration
in the Administrator help.

252 Chapter 3: Platform REST API version 3 resources


Listing SCIM tokens
Use the scimTokens resource to request details about the SCIM tokens that you created.

GET request
To get a list of the SCIM tokens you created, use the following URI:
/public/core/v3/scimTokens

GET response
If successful, returns each SCIM token that you created and its expiration date.

Returns the error object if errors occur.

GET example
To list the SCIM tokens you created, you might use the following request:
GET <baseApiUrl>/public/core/v3/scimTokens
Content-type: application/json
Accept: application/json
INFA-SESSION-ID: <SessionId>
A successful response might look like the following example:
[
{
"id": "im2hLfwsRCvl6WG64Geqi0",
"value": "8fiXOaFR**************",
"expiry": "2025-04-28T21:05:31.000Z",
"status": "active"
}
]

Creating a SCIM token


Use the scimTokens resource to create a SCIM token. If you already have two tokens, you'll need to delete
one before you can create a new token, even if one or both tokens are expired.

POST request
To create a SCIM token, use the following URI:
/public/core/v3/scimTokens

POST request example


To create a token, your request might look something like the following example:
POST <baseApiUrl>/public/core/v3/scimTokens
Content-type: application/json
Accept: application/json
INFA-SESSION-ID: <SessionId>

POST response
Returns the token response object for the token that you created.

Returns an error object if errors occur.

A successful response might look like the following example:


{
"id": "hTc5rzwEFKMh761VofJoG1",
"value":
"k7UxoAAAACMAAAACAQAAAAEBAgAAAAyufel1d7nvOzJh5khiVmxxXrnYJl1iR23aBQtVPKPLTiB0qqLCp-
davEg50diXElP4-Q==0s3URI0up6Ebu4sLzgtSGC",
"expiry": "2025-05-06T04:54:53.594Z",

SCIM tokens 253


"status": "active"
}

Deleting a SCIM token


Use the scimTokens resource to delete a SCIM token.

To delete a SCIM token, send a DELETE request using the following URI:
/public/core/v3/scimTokens/<token_id>
A successful response returns the 204 response code. If errors occur, an error object is returned.

Secure Agent services


Use the agentservice resource to stop or start a Secure Agent service.

After you send a POST request to start or stop a Secure Agent service, you can check the status of the
service using the REST API V2 agent resource.

POST request
To stop or start a Secure Agent service, use the following URI:
public/core/v3/agent/service
Include the following fields in the request:

Field Type Required Description

serviceName String Yes Display name of the Secure Agent service to start or stop.

serviceAction String Yes Action to perform on the Secure Agent service. Include one of the following
values:
- start. Start the latest version of the Secure Agent service.
- stop. Stop all versions of the Secure Agent service.

agentId String Yes The ID of the agent on which the Secure Agent service is located.
To find the ID, send a lookup POST request that includes the agent path.

POST response
If the request is successful, the response includes one of the following states for the service:

State Description

NEED_RUNNING The start process has been initiated.

NEED_STOP The stop process has been initiated.

DEPLOYING The service is being provisioned.

DEPLOYED The service is deployed and will be running soon.

254 Chapter 3: Platform REST API version 3 resources


State Description

UNKNOWN Status is unknown. Check the status using the REST API version 2 agent resource.
To find the status, send a lookup POST request that includes the agent path.

ERROR The service is in a error state.

STARTING The service is starting up.

RUNNING The service is running and ready to accept jobs.

RESTARTING The service is restarting and will be running soon.

STOPPING The service is shutting down.

USER_STOPPED The service has been stopped by a user.

POST request example


To start a Secure Agent service, you might send a request similar to the following example:
POST <baseApiUrl>/public/core/v3/agent/service
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID: <sessionId>
{
"serviceName":"Data Integration Server",
"serviceAction":"start",
"agentId":"kiphQJoRWWJfaC3enJ1smP"
}

POST response example


If a request is successful, you might receive a response similar to the following example:
{
"serviceState":"STARTING",
"message":"Successfully initiated start action. Note that only the latest version of
the service will be started. Send a GET request to /v2/agent/details API to check the
updated status of the service."
}

Security logs
Use the securityLog resource to receive security log entries. Security logs include information about events
such as login actions and creating, updating, and deleting users, user groups, and roles. To use this resource,
you must be logged in with an administrator role.

GET request
To request entries for the last 24 hours with a maximum of 200 entries, use the following URI.
/public/core/v3/securityLog

Security logs 255


Alternatively, you can use query parameters to specify which entries to return. For example, the following URI
returns entries created on July 26, 2019 between 8:00AM and 5:00PM:
/public/core/v3/securityLog?
q=entryTime>="2019-07-26T08:00:00.000Z";entryTime<="2019-07-26T17:00:00.000Z"
You can include the following query parameters in the URI:

Parameter Type Description

entryTime String Start time or end time of the entry in UTC format.
Use one of the following formats:
- yyyy-MM-dd'T'HH:mm:ss'Z'
- yyyy-MM-dd'T'HH:mm:ssZ
- yyyy-MM-dd'T'HH:mm:[Link]'Z'
- yyyy-MM-dd'T'HH:mm:[Link]
The maximum date range is 14 days.
You can use the following operators:
- <=
- =>
- >
- ==
- !=
Default is to return entries for the last 24 hours with a maximum of 200.

actionCategory String Category of the security log entry.


You can use the following operators:
- ==
- !=
To use this query parameter, you must also include a valid time range using the entryTime
query parameter.

actor String User name who performed the action.


You can use the following operators:
- ==
- !=
To use this query parameter, you must also include a valid time range using the entryTime
query parameter.

objectName String Name of the object acted upon.


You can use the following operators:
- ==
- !=
To use this query parameter, you must also include a valid time range using the entryTime
query parameter.

skip Int Number of records to skip.


To use this query parameter, you must also include a valid time range using the entryTime
query parameter.
Default is 0.

limit Int Number of entries to include in the response.


You can specify a minimum of 100 and maximum of 1000.
Default is 200.

GET response
Returns a securityLogEntry object for each security log entry returned. Returns the error object if errors occur.

256 Chapter 3: Platform REST API version 3 resources


The securityLogEntry object includes the following attributes:

Field Type Description

id String Security log entry ID.

orgId String Organization ID.

actor String User who performed the action.

entryTime Timestamp Time the action occurred.

objectId String ID of the object used.

objectName String Name of the object used.

actionCategory String Category of security log entry. Returns one of the following codes:
- Authentication
- Organization
- Sub-organization
- User
- Group
- Role
- Privilege
- Agent
- Privilege-Category
- Preference

actionEvent String Type of action performed. Returns one of the following codes:
- CREATE
- UPDATE
- DELETE
- DISABLE
- AGENT_LOGIN
- USER_LOGIN
- LOGOUT
- PASSWORD_RESET

GET example
To view entries for the actions that the user "admin" performed on July 26, 2019 between 8:00AM and
5:00PM, you might use the following URI:
GET <baseApiUrl>/public/core/v3/securityLog?
q=entryTime>="2019-07-26T08:00:00.000Z";entryTime<="2019-07-26T17:00:00.000Z";actor=='adm
in'
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID: <sessionId>
The response might look similar to the following example:
{
"entries": [
{
"id": "1AoqT9lYsrUhu7kl49kGsx",
"orgId": "9l10ywsSnqadMx1NtEEbKT",
"actor": "admin",
"entryTime": "2019-07-23T22:28:07.000Z",
"objectId": "9l10ywsSnqadMx1NtEEbKT",
"objectName": "idsv3_org_1563920884151",
"actionCategory": "Organization",
"actionEvent": "CREATE"

Security logs 257


},
{
"id": "595EZai5YqFi6X8GIpVVu0",
"orgId": "9l10ywsSnqadMx1NtEEbKT",
"actor": "admin",
"entryTime": "2019-07-23T22:28:13.000Z",
"objectId": "9pieratUfEWkhFHnzY1r49",
"objectName": "idsv3_user_1563920884151",
"actionCategory": "User",
"actionEvent": "CREATE"
}
]
}

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:

• pull. Load objects to the Informatica Intelligent Cloud Services organization.


• pullByCommitHash. Retrieve objects that were modified by a particular commit and load them into your
organization.
• checkout. Check objects out of the repository.
• undoCheckout. Undo the checkout of specified objects or undo the checkout of all objects that were
included in a checkout operation.
• checkin. Check updated objects in to the repository.
• commit. Retrieve details about a commit from your repository.
• commitHistory. Receive commit history for a specific object or all of the objects in the organization.
• compare. Compare two versions of an object to see what's changed between the versions.
• repositoryConnection. Get the repository connection ID for a project-level repository.
• sourceControlAction. Get the status of a source control operation.

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.

258 Chapter 3: Platform REST API version 3 resources


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.

Source control 259


Field Type Required Description

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
- UDF. User-defined
function.

objectSpecification List<Object> - Object specification for


connection and runtime
environments.

source Object Yes, if objectSpecification object is Include in the


included and objectSpecification
relaxObjectSpecificationValidation object.
value is not true Contains information
about the source object.

260 Chapter 3: Platform REST API version 3 resources


Field Type Required Description

path List<String> Yes, if objectSpecification object is Include in the source


included object.
Full path of the
connection or runtime
environment in the
repository.

type String Yes, if objectSpecification object is Include in the source


included object.
Asset type. Use one of
the following values:
- Connection
- AgentGroup

target Object Yes, if objectSpecification object is Include in the


included 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 Include in the target
included object.
ID of the target object.

additionalProviderFlags Collection No Additional object


<complex specifications.
type> Use key-value pairs to
specify additional object
specifications, such as in-
out parameter values and
sequence generator
values.

Source control 261


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” on page 290 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"
}
]
}

262 Chapter 3: Platform REST API version 3 resources


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"
}
}
]
}

Source control 263


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” on page 289.

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.

264 Chapter 3: Platform REST API version 3 resources


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 Include in the objectSpecification


objectSpecification object.
object is included Contains information about the
source object.

path List<String> Yes, if Include in the source object.


objectSpecification Name of the connection or runtime
object is included environment in the repository.

Source control 265


Field Type Required Description

type String Yes, if Include in the source object.


objectSpecification Asset type. Use one of the following
object is included values:
- Connection
- AgentGroup

target Object Yes, if Include in the objectSpecification


objectSpecification object.
object is included 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 Include in the target object.


included Name of the connection or runtime
environment.
Use with type.

type String Yes, if ID is not Include in the target object.


included Asset type.
Use with path.
Use one of the following values:
- Connection
- AgentGroup

id String Yes, if path and type Include in the target object.


are not included ID of the target object.

additionalProviderFlags Collection No Additional object specifications.


<complex Use key-value pairs to specify
type> 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.

266 Chapter 3: Platform REST API version 3 resources


Field Type Description

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” on page 290 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"],

Source control 267


"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” on
page 290.

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 Include in the objects object.


and type are ID of the object.
not included

path List<String> Yes, if ID is not Include in the objects object.


included Full path of the object to be checked out.

268 Chapter 3: Platform REST API version 3 resources


Field Type Required Description

type String Yes, if ID is not Include in the objects object.


included 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
- UDF. User-defined function.
- 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.

Source control 269


Field Type Description

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” on page 290 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": [
{

270 Chapter 3: Platform REST API version 3 resources


"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.

Source control 271


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 Include in the objects object.


and type are not included ID of the object.
and checkoutOperation ID
is not included

path List<String> Yes, if the object's ID is Include in the objects object.


not included and Full path of the object.
checkoutOperation ID is
not included

type String Yes, if the object's ID is Include in the objects object.


not included and Type of asset.
checkoutOperation ID is
not included 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
- UDF. User-defined function.
- 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.

272 Chapter 3: Platform REST API version 3 resources


Field Type Required Description

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 Include in the objectSpecification object.


object is included Contains information about the source
object.

path List<String> Yes, if objectSpecification Include in the source object.


object is included Full path of the connection or runtime
environment in the repository.

type String Yes, if objectSpecification Include in the source object.


object is included Asset type. Use one of the following values:
- Connection
- AgentGroup

target Object Yes, if objectSpecification Include in the objectSpecification object.


object is included 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

Source control 273


Field Type Required Description

id String Yes, if path and type are Include in the target object.
not included ID of the target object.

additionalProviderFlags Collection No Additional object specifications.


<complex Use key-value pairs to specify additional
type> 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” on page 290 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>

274 Chapter 3: Platform REST API version 3 resources


{
"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",

Source control 275


"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 Include in the objects object.


and type are ID of the object.
not included

path List<String> Yes, if ID is Include in the objects object.


not included Full path of the object to be checked in.

276 Chapter 3: Platform REST API version 3 resources


Field Type Required Description

type String Yes, if ID is Include in the objects object.


not included 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
- UDF. User-defined function.
- 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.

Source control 277


Field Type Description

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>

278 Chapter 3: Platform REST API version 3 resources


"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>
If you use project-level repositories, include one or both of the following 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
“Getting repository connection details” on page 289

Source control 279


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:[Link]

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

280 Chapter 3: Platform REST API version 3 resources


GET request examples
If you use a global repository, a GET request might look like the following example:
GET <baseApiUrl>/public/core/v3/commit/aca30f6c44de9bef23db59ed16967653481c5e23
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID: <sessionId>
If you use project-level repositories, a GET request might look like the following example:
GET <baseApiUrl>/public/core/v3/commit/aca30f6c44de9bef23db59ed16967653481c5e23
?searchCustomRepositories=true
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID: <sessionId>
If you use project-level repositories and you want to include the repository connection ID, a GET request
might look like the following example:
GET <baseApiUrl>/public/core/v3/commit/aca30f6c44de9bef23db59ed16967653481c5e23?
repoConnectionId=6ub6oUKHJ8Dkr3QXbGG9Sm
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID: <sessionId>

GET response example


A GET response might look like the following example:
{
"hash": "aca30f6c44de9bef23db59ed16967653481c5e23",
"summary": "Update. ",
"description": "Restructured and updated.",
"username": "testuser",
"email": "user@[Link]",
"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"
}

Source control 281


]
}

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.

282 Chapter 3: Platform REST API version 3 resources


Field Type Operators Description

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
- UDF. User-defined function.
- 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.

• Commit history for a single asset or folder using IDs:


GET /public/core/v3/commitHistory?q=id=='23546'
• Commit history for two projects using IDs:
GET /public/core/v3/commitHistory?q=id=='23423' and id=='5645esf'
• Commit history for two projects using paths:
GET /public/core/v3/commitHistory?q=path=='project name 1' and path=='project name 2'
• Commit history for an asset using the path:
GET /public/core/v3/commitHistory?q=path=='ProjectName/FolderName/AssetName1' and
type=='DTEMPLATE'

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.

Source control 283


Field Type Description

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:[Link]

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.
Note: If you use GitLab or GitHub, the hasNext flag might erroneously return a value of
“true” when the page size is equal to the total size or the last page contains entries that
are the same as the page size.

GET response example


To get commit history, you might use the following request:
GET <baseApiUrl>/public/core/v3/commitHistory?<query parameters>
Content-type: application/json
Accept: application/json
INFA-SESSION-ID: <sessionId>
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@[Link]",
"email": "testuser@[Link]",
"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@[Link]",
"email": "testuser@[Link]",
"date": "2020-03-30T22:22:02.000Z",
"committer": "testuserinfa"
},
{
"hash": "74d776c574dad3bc5cf7a44b22195cf423560fe9",
"summary": "Project2 Folder1 v1",
"description": null,
"username": "testuser@[Link]",
"email": "testuser@[Link]",
"date": "2020-03-30T22:17:48.000Z",
"committer": "testuserinfa"
},

284 Chapter 3: Platform REST API version 3 resources


{
"hash": "02c8b5950df4ef2110288ba7f77a220bc6f05b0a",
"summary": "v1 of project2",
"description": "v1 of project2",
"username": "testuser@[Link]",
"email": "testuser@[Link]",
"date": "2020-03-24T23:41:52.000Z",
"committer": "testuserinfa"
},
],
"pagination": null
}

Comparing object versions


Use the compare resource to compare two versions of an object to find what's changed between the
versions.

You must have pull privileges to compare object versions.

POST request
To compare two versions of an object, use the following URI:
/public/core/v3/compare/<asset ID>
You can specify whether to receive the response in JSON format or as text using the Git diff format.

Include the following fields in the request:

Field Type Required Description

source String Yes The base version of the asset to compare. Use one of the following values:
- If the asset version to compare is checked in to the repository, use the
commit hash for the value.
- If the asset version to compare hasn't been checked in, use the following
value: CURRENT-VERSION

destination String Yes The asset version to compare to the base version.
- If the asset version is checked in to the repository, use the commit hash for
the value.
- If the asset version hasn't been checked in, use the following value:
CURRENT-VERSION

outputFormat String Yes Response format. Use one of the following values:
- JSON
- TEXT

POST response
If the response body is TXT and the response is successful, the asset information and changes are recorded
in Git diff response format.

Source control 285


If the response body is JSON and the response is successful, a POST request returns the following
information:

Field Type Description

source Object Base version of asset that the updated version is compared with.

name String Name of the asset.

path String Full path to the asset.

updatedOn String The timestamp when the commit was submitted in the following format:
yyyy-MM-dd'T'HH:mm:[Link]

updatedBy String User who updated the object.

commitHash String Commit hash of the file retrieved from the commit. Use one of the
following values:
- The commit hash number. Included if the asset version has been
committed to the repository.
- CURRENT-VERSION. The current version of the asset. Included if the
version hasn't been committed to the repository.

destination Object Version of the asset that's being compared to the source version.

name String Name of the asset.

path String Full path to the asset.

updatedOn String The timestamp when the commit was submitted in the following format:
yyyy-MM-dd'T'HH:mm:[Link]

updatedBy String User who updated the object.

commitHash String Commit hash of the file retrieved from the commit. Can be one of the
following values:
- The commit hash number. Included if the asset version was committed
to the repository.
- CURRENT-VERSION. The current version of the asset. Included if the
version hasn't been committed to the repository.

action String Action performed on the asset. Can be one of the following values:
- CREATE
- DELETE
- UPDATE
- MOVE
- MOVE_UPDATE
- RENAME
- NO_ACTION

objectId String Global unique identifier of the object.

lineGroup Array Object that describes the changes made to the source version and
<Object> destination version.

oldChange Object that lists the lines with removed changes.

startPosition Int Initial line number of the removed changes.

286 Chapter 3: Platform REST API version 3 resources


Field Type Description

noOfLinesAffected Int Total lines impacted.

newChange Object that lists the lines with added changes.

startPosition Int Initial line number of the added changes.

noOfLinesAffected Int Total lines impacted.

unmodifiedLinesBefore List <String> Lines before affected lines that are unmodified. Maximum of 3.

unmodifiedLinesAfter List <String> Lines after affected lines that are unmodified. Maximum of 3.

oldChanges List <String> Lines removed from asset file. Inline removal of words are represented
between <remove-txt>.

newChanges List <String> New lines added into asset file. Inline addition of words are represented
between <add-txt>.

POST request examples


To request a comparison of an asset that you have checked out to an older version of the asset and receive
the comparison in JSON format, you might send a request that's similar to the following example:
POST <baseApiUrl>/public/core/v3/compare/jn94HPOUK4zlEoO07eGfEq
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID: <sessionId>
{
"source": "CURRENT-VERSION",
"destination": "aca30f6c44de9bef23db59ed16967653481c5e23",
"outputFormat": "JSON"
}
To request a comparison of two versions that are checked in to the repository and receive the comparison in
text format, you might send a request that's similar to the following example:
POST <baseApiUrl>/public/core/v3/compare/2tDSXSjd2Fkg1AFPSWops3
Content-Type: application/json
Accept: application/text
INFA-SESSION-ID: <sessionId>
{
"source": "b0bdc63a7fb9047db6c3bc29ad67d5ecbf7d1d47",
"destination": "fc6fcc318ad1b4aec17017d053bc2f0d1f605096",
"outputFormat": "TEXT"
}

POST response examples


If you requested a comparison of an asset that you have checked out to an older version of the asset and
receive the response in JSON format, you might receive a response similar to the following example:
{
"source": {
"name": "TestMapping",
"path": "Test",
"updatedOn": null,
"updatedBy": null,
"commitHash": "CURRENT-VERSION"
},
"destination": {
"name": "TestMapping",
"path": "Test",

Source control 287


"updatedOn": "2025-05-08T02:15:17.842Z",
"updatedBy": null,
"commitHash": "95983a4fe44ee21df1933c5c4b4a5c565c68b832"
},
"id": "2tDSXSjd2Fkg1AFPSWops3",
"action": "UPDATE",
"lineGroup": [
{
"oldChange": {
"startPosition": 85,
"noOfLinesAffected": 1
},
"newChange": {
"startPosition": 85,
"noOfLinesAffected": 1
},
"unmodifiedLinesBefore": [
" }",
" ]",
" },"
],
"unmodifiedLinesAfter": [
"}"
],
"oldChanges": [
" \"vcsExportTime\" : \"2025-05-<remove-text>08<remove-text> <remove-
text>09:46:09<remove-text> PDT\""
],
"newChanges": [
" \"vcsExportTime\" : \"2025-05-<add-text>07<add-text> <add-text>19:15:17<add-
text> PDT\""
]
}
]
}
If you requested a comparison of two versions of an asset that are checked in to the repository and receive
the response in text format, you might receive a response similar to the following example:
id: 2tDSXSjd2Fkg1AFPSWops3
action: UPDATE
source: {name='TestMapping', path='Test', updatedOn=Thu May 08 02: 14: 35 UTC 2025,
updatedBy='null', version='ed08ed8f845fe1602006130a734d4416b7b72436'
}
destination: {name='TestMapping', path='Test', updatedOn=Thu May 08 02: 15: 17 UTC 2025,
updatedBy='null', version='95983a4fe44ee21df1933c5c4b4a5c565c68b832'
}
changes:
@@ -2,
0 +2,
0 @@
{
"content": {
+ "description": "This mapping is used for testing",
"allowMaxFieldLength": "false",
"bigIntConvertType": "ONLY_BIGINT",
"documentType": "MAPPING",

@@ -84,
1 +85,
1 @@
}
]
},
- "vcsExportTime": "2025-05-07 <remove-text>19:14:35<remove-text> PDT"
+ "vcsExportTime": "2025-05-07 <add-text>19:15:17<add-text> PDT"
}

288 Chapter 3: Platform REST API version 3 resources


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:
GET [Link]
projectIds=6ub6oUKHJ8Dkr3QXbGG9Sm,5FmdSKPASroei2vyeXwFeT

Source control 289


Content-type: application/json
Accept: application/json
INFA-SESSION-ID: <sessionId>

GET response example


For a successful GET request, the response might look like the following example:
{
"projectRepoConnections": [
{
"projectId": "6ub6oUKHJ8Dkr3QXbGG9Sm",
"projectNames": "customProject2",
"globalRepository": false,
"gitRepositoryURL": "[Link]
azure/_git/infa-cloud-vcs-azure",
"gitRepositoryBranch": "main",
"repoConnectionId": "1rMeeN2te0TetGYVtRS3GS"
},
{
"projectId": "5FmdSKPASroei2vyeXwFeT",
"projectNames": "TestProject",
"globalRepository": true,
"gitRepositoryURL": "[Link]
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.

290 Chapter 3: Platform REST API version 3 resources


Field Type Description

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.

Source control 291


GET response example
To receive the status for each object in the source control operation, you might use the following request:
GET <baseApiUrl>/public/core/v3/sourceControlAction/<action ID>?expand=objects
Content-type: application/json
Accept: application/json
INFA-SESSION-ID: <sessionId>
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."
}
]
}

Tags
A tag is an asset property that you can use to group assets.

You can use the following resources:

• TagObjects. Use this resource to assign tags to an asset.


• UntagObjects. Use this resource to remove tags from an asset.

292 Chapter 3: Platform REST API version 3 resources


Assigning tags
Use the TagObjects resource to assign tags to an asset.

POST request
To assign a tag to an asset, use the following URI:
/public/core/v3/TagObjects
You can assign tags to a maximum of 100 assets in a request.

Include the following information for each asset:

Field Type Required Description

id String Yes Global unique identifier for the object.

tags List Yes List of tags to assign to the object.

POST example
To assign tags to two assets, you might use a POST request similar to the following example:
POST <baseApiUrl>/public/core/v3/TagObjects
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID: <sessionId>

[{
"id":"5kuZuAC3Os0dycZuqGpqmM",
"tags": ["R12 Tag", "DevQA"]

}, {
"id":"7feHjtC50mLb44CTW4Xmon",
"tags": ["Prod", "DevQA", "R12 Tag"]

}]
Returns the 204 response code if the request is successful. Returns errors if the request is unsuccessful. If
the request is partially successful, returns information for the successful and unsuccessful transactions, as
shown in the following example:
[{
"id": "9WfGCcHsygueFigGhAdWqh",
"status": "FAILED",
"msg": "Object: 9WfGCcHsygueFigGhAdWqh skipped, missing READ/UPDATE permissions."
}, {
"id": "0cLD48xB4TOgm8cNjP2kmJ",
"status": "SUCCESS",
"msg": "Object: 0cLD48xB4TOgm8cNjP2kmJ Operation Message: [Tag assignment succeeded
for artifact 0cLD48xB4TOgm8cNjP2kmJ.]"
}]

Removing tags
Use the UntagObjects to remove tags from an asset.

POST request
To remove a tag from an asset, use the following URI:
/public/core/v3/UntagObjects
You can remove tags from a maximum of 100 assets in a request.

Tags 293
Include the following information for each asset:

Field Type Required Description

id String Yes Global unique identifier for the object.

tags List Yes List of tags to remove from the object.

POST example
To remove tags from two assets, you might use a POST request similar to the following example:
POST <baseApiUrl>/public/core/v3/UntagObjects
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID: <sessionId>

[{
"id":"5kuZuAC3Os0dycZuqGpqmM",
"tags": ["R12 Tag", "DevQA"]

}, {
"id":"7feHjtC50mLb44CTW4Xmon",
"tags": ["DevQA", "R12 Tag"]

}]
Returns the 204 response code if the request is successful. Returns errors if the request is unsuccessful. If
the request is partially successful, returns information for the successful and unsuccessful transactions, as
shown in the following example:
[{
"id": "9WfGCcHsygueFigGhAdWqh",
"status": "FAILED",
"msg": "Object: 9WfGCcHsygueFigGhAdWqh skipped, missing READ/UPDATE permissions."
}, {
"id": "0cLD48xB4TOgm8cNjP2kmJ",
"status": "SUCCESS",
"msg": "Object: 0cLD48xB4TOgm8cNjP2kmJ Operation Message: [Tag assignment succeeded
for artifact 0cLD48xB4TOgm8cNjP2kmJ.]"
}]

Users
Use the users resource to request Informatica Intelligent Cloud Services user details, create users, update
role and user group assignments, and delete users.

Note: This resource uses a dynamic rate limit. When the system experiences a large volume or size of
requests, responses might be slow or fail with the error message, "too many requests."

Use the users resource along with the userGroups and roles resources to manage user privileges for
Informatica Intelligent Cloud Services tasks and assets. Users and groups can perform tasks and access
assets based on the roles that you assign to them.

For information about using the userGroups and roles REST API resources, see the following topics:

• “Roles” on page 227


• “User groups” on page 302

For general information about users, user groups, and roles, see the Administrator help.

294 Chapter 3: Platform REST API version 3 resources


Getting user details
Use the users resource to request Informatica Intelligent Cloud Services user details. You can request the
details for all users in the organization or request the details for a particular user.

GET request
To get user details, use the following URI:
/public/core/v3/users
To get the details for a particular user, you can include the following query parameters in the URI:

Parameter Type Description

q String Query filter. You can filter using one of the following fields:
- userId. Unique identifier for the user.
- userName. Informatica Intelligent Cloud Services user name.

limit Int Maximum number of users to return.


Maximum of 200. Default is 100.

skip Int Amount to offset the list of results.


Default is 0.

For example, to get details for a particular user based on the user's ID, you might use the following request:
/public/core/v3/users?q=userId==5N9JGth6pRYfOGjGKv3Q2D &limit=1 &skip=0

GET response
If successful, returns the following information for each user:

Field Type Description

id String User ID.

orgId String ID of the organization the user belongs to.

createdBy String User who created the user account.

updatedBy String User who last updated the user account.

createTime String Date and time the user was created.

updateTime String Date and time the user was last updated.

userName String User name for the user account.

firstName String First name for the user account.

lastName String Last name for the user account.

description String User description.

title String Job title of the user.

Users 295
Field Type Description

phone String Phone number for the user.

email String Email address for the user.

state String State of the user account. Returns one of the following values:
- Active. User account exists and user has activated the account.
- Provisioned. User account exists but the user has not activated the account.
- Disabled. User account is disabled because the user exceeded the maximum
number of login attempts.
Note: If the user's password is expired, the value is null.

timeZoneId String Time zone of the user.


For more information, see “Time zone codes” on page 581 .

maxLoginAttempts Int Number of times a user can attempt to log in before the account is locked.

authentication String Whether the user accesses Informatica Intelligent Cloud Services through single
sign-in (SAML).
Returns one of the following values:
- 0. Native.
- 1. SAML.

forcePasswordChange Boolean Whether the user must reset the password after the user logs in for the first time.

lastLoginTime String The date and time that the user last logged in.

lastLoginMode String Whether the user logged in through a REST API call or through the UI.

roles Array Roles assigned to the user account.

id String Included in the roles object.


Role ID.

roleName String Included in the roles object.


Role name.

description String Included in the roles object.


Description of the role.

displayName String Included in the roles object.


Role name that is displayed in the user interface.

displayDescription String Included in the roles object.


Role description that is displayed in the user interface.

groups Array Group in which the user account is a member.

id String Included in the groups object.


User group ID.

296 Chapter 3: Platform REST API version 3 resources


Field Type Description

userGroupName String Included in the groups object.


User group name.

description String Included in the groups object.


Description of the user group.

GET response example


To get user details, you might use the following request:
GET <baseApiUrl>/public/core/v3/users
Content-type: application/json
Accept: application/json
INFA-SESSION-ID: <sessionId>
If successful, you might receive a response similar to the following example:
[
{
"id": "5N9JGth6pRYfOGjGKv3Q2D",
"orgId": "cPYWk02I4aBeuLEvYRtaMS",
"createdBy": "ma",
"updatedBy": "a@[Link]",
"createTime": "2019-03-06T22:04:00.000Z",
"updateTime": "2019-03-18T22:34:53.000Z",
"userName": "a@[Link]",
"firstName": "a",
"lastName": "jones",
"description": "",
"title": "dev",
"phone": "1112221111",
"email": "a@[Link]",
"state": "Enabled",
"timeZoneId": "America/Los_Angeles",
"maxLoginAttempts": "10",
"authentication": "Native",
"forcePasswordChange": false,
"lastLoginTime": "2020-07-31T21:50:10Z",
"lastLoginMode": "API",
"roles": [
{
"id": "9c2XrdpAz80hg29yXDBPEN",
"roleName": "Data Preview",
"description": "Role to preview data"
"displayName": "Data Preview",
"displayDescription": "Role to preview data"
},
{
"id": "1VfnsgZiCT1fi25VAupQg1",
"roleName": "Designer",
"description": "Role for creating assets, ... and runtime environments.
Has access to the Application Integration Console."
"displayName": "Designer",
"displayDescription": "Role for creating assets, ... and runtime
environments. Has access to the Application Integration Console."
}
],
"groups": [
{
"id": "a6x85hoMvH2kWUIlcIRBEh",
"userGroupName": "group_a",
"description": ""
}
]
},

Users 297
{
"id": "aNJWtppg613c1YbXvRRHcV",
"orgId": "cPYWk02I4aBeuLEvYRtaMS",
"createdBy": "a@[Link]",
"updatedBy": "a@[Link]",
"createTime": "2019-03-13T20:15:58.000Z",
"updateTime": "2019-03-13T20:15:58.000Z",
"userName": "b@[Link]",
"firstName": "b",
"lastName": "smith",
"description": "",
"title": "cs",
"phone": "1112223333",
"email": "b@[Link]",
"state": "Provisioned",
"timeZoneId": "America/Los_Angeles",
"maxLoginAttempts": "10",
"authentication": "Native",
"forcePasswordChange": false,
"lastLoginTime": "2020-07-31T21:50:10Z",
"lastLoginMode": "API",
"roles": [
{
"id": "9c2XrdpAz80hg29yXDBPEN",
"roleName": "Data Preview",
"description": "Role to preview data"
"displayName": "Data Preview",
"displayDescription": "Role to preview data"
}
],
"groups": [
{
"id": "a6x85hoMvH2kWUIlcIRBEh",
"userGroupName": "group_a",
"description": ""
}
]
}
]

Creating a user
If you have administrator privileges, you can use the users resource to create a user.

POST request
To create a user, send a POST request using the following URI:
/public/core/v3/users
Note: The number of users, user groups, and roles combined cannot exceed 1000 for an organization.

Include the following information:

Field Type Required Description

name String Yes Informatica Intelligent Cloud Services user name. Must
be either a valid email address or contain only
alphanumeric characters, hyphens, underscores,
periods, and apostrophes.
Maximum length is 255 characters.

firstName String Yes First name for the user account.

298 Chapter 3: Platform REST API version 3 resources


Field Type Required Description

lastName String Yes Last name for the user account.

password String - Informatica Intelligent Cloud Services password.


If password is empty, the user receives an activation
email.
Maximum length is 255 characters.

description String - Description of the user.

email String Yes Email address for the user.

title String - Job title of the user.

phone String - Phone number for the user.

forcePasswordChange Boolean - Determines whether the user must reset the password
after the user logs in for the first time.

maxLoginAttempts Int - Number of times a user can attempt to log in before the
account is locked.

authentication Int - Determines whether the user accesses Informatica


Intelligent Cloud Services through single sign-in
(SAML).
Use one of the following values:
- 0. Native.
- 1. SAML.

aliasName String Required when The user identifier or user name in the 3rd party
authentication is not system.
0.

roles Array Required when no IDs of the roles to assign to the user.
group IDs are
included.

groups Array Required when no role IDs of the user groups to assign to the user.
IDs are included.

POST response
If successful, returns the users object with the details you included in the POST request.

POST example
To create a user, you might send a request similar to the following example:
POST <baseApiUrl>/public/core/v3/users
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID: <sessionId>
{
"name" : "c@[Link]",
"firstName" : "c",
"lastName" : "smith",
"email" : "c@[Link]",
"authentication" : 0,
"roles" : ["5IPgtye09EbiWqz5XXuzwC", "9gedBDoYQoQibNMohf5KCh"],

Users 299
"groups" : ["a6x85hoMvH2kWUIlcIRBEh"]
}
You might receive a response similar to the following example:
{
"id": "9EcgvBYZ9GGflOYr98GzOH",
"orgId": "cPYWk02I4aBeuLEvYRtaMS",
"createdBy": "a@[Link]",
"updatedBy": "a@[Link]",
"createTime": "2020-08-20T18:29:19.987Z",
"updateTime": "2020-08-20T18:29:20.653Z",
"userName": "c@[Link]",
"firstName": "c",
"lastName": "smith",
"description": null,
"title": "dev",
"phone": null,
"email": "c@[Link]",
"state": "Provisioned",
"timeZoneId": "America/Los_Angeles",
"maxLoginAttempts": "10",
"authentication": "Native",
"forcePasswordChange": false,
"lastLoginTime": null,
"lastLoginMode": "None",
"roles": [
{
"id": "5IPgtye09EbiWqz5XXuzwC",
"roleName": "test",
"description": ""
},
{
"id": "9gedBDoYQoQibNMohf5KCh",
"roleName": "Admin",
"description": "Role for performing administrative tasks for an
organization. Has full access to all licensed services."
}
],
"groups": [
{
"id": "a6x85hoMvH2kWUIlcIRBEh",
"userGroupName": "group_a",
"description": ""
}
]
}

Updating role assignments


You can add or remove role assignments for a user.

You cannot update a user's role assigments if your organization enabled the Map SAML Groups and Roles
option for SAML single sign-on. For more information, see User Administration in the Administrator help.

Assign roles
To assign a role to a user, send a PUT request using one of the following URIs:
/public/core/v3/users/<user ID>/addRoles
/public/core/v3/users/name/<user name>/addRoles
Include an array of the roles that you want to assign to the user.

For example, to assign the Admin and Business Manager roles to a user, you might use the following request:
PUT <baseApiUrl>/public/core/v3/users/cPYWk02I4aBeuLEvYRtaMS/addRoles
Content-Type: application/json

300 Chapter 3: Platform REST API version 3 resources


Accept: application/json
INFA-SESSION-ID: <sessionId>
{
"roles" : ["Admin", "Business Manager"]
}
You can use the roles resource to get a list of roles that you can assign. For more information, see “Roles” on
page 227.

The response includes a success code if successful or an error object if errors occur.

Remove roles
To remove a role assignment from a user, send a PUT request using one of the following URIs:
/public/core/v3/users/<user ID>/removeRoles
/public/core/v3/users/name/<user name>/removeRoles
Include an array of roles to unassign.

For example, to remove the Designer role assignment from a user, you might use the following request:
PUT <baseApiUrl>/public/core/v3/users/cPYWk02I4aBeuLEvYRtaMS/removeRoles
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID: <sessionId>
{
"roles" : "Designer"
}

Updating user group assignments


You can add or remove user group assignments for a user.

You cannot update a user's user group assignments if your organization enabled the Map SAML Groups and
Roles option for SAML single sign-on. For more information, see User Administration in the Administrator
help.

Assign user groups


To assign a user group to a user, send a PUT request using one of the following URIs:
/public/core/v3/users/<user ID>/addGroups
/public/core/v3/users/name/<user name>/addGroups
Include an array of the user groups that you want to assign to the user.

For example, to assign the Workflow Manager and MDM Admin user groups to a user, you might use the
following request:
PUT <baseApiUrl>/public/core/v3/users/cPYWk02I4aBeuLEvYRtaMS/addGroups
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID: <sessionId>
{
"groups" : ["Workflow Manager", "MDM Admin"]
}
You can use the userGroups resource to get a list of user groups that you can assign. For more information,
see “User groups” on page 302.

The response includes a success code if successful or an error object if errors occur.

Users 301
Remove user group assignments
To remove a user group assignment, send a PUT request using one of the following URIs:
/public/core/v3/users/<user ID>/removeGroups
/public/core/v3/users/name/<user name>/removeGroups
Include an array of user group assignments to remove from the user.

For example, to remove the MDM Admin user group assignment, you might use the following request:
PUT <baseApiUrl>/public/core/v3/users/name/LarryR/removeGroups
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID: <sessionId>
{
"groups" : ["MDM Admin"]
}

Deleting a user
If you have administrator privileges, you can use the users resource to delete a user.

DELETE request
To delete a user account, use the following URI:
/public/core/v3/users/<userId>
For example, you might send a request similar to the following example:
DELETE <baseApiUrl>/public/core/v3/users/5N9JGth6pRYfOGdGKv3Q2D
Content-type: application/json
Accept: application/json
INFA-SESSION-ID: <sessionId>

User groups
Use this resource to create, update, and delete user groups.

Use the userGroups resource along with the users and roles resources to manage user privileges. Users and
groups can perform tasks and access assets based on the roles that you assign to them.

You can send the following requests:

• To get details about all of the user groups or a particular user group, send a GET request.
• To create a user group, use a POST request.
• To add roles or users to a user group, use a PUT request.
• To delete a user group, use a DELETE request.

Note: This resource uses a dynamic rate limit. When the system experiences a large volume or size of
requests, responses might be slow or fail with the error message, "too many requests."

For information about using the users and roles REST API resources, see the following topics:

• “Users” on page 294


• “Roles” on page 227

For general information about users, user groups, and roles, see the Administrator help.

302 Chapter 3: Platform REST API version 3 resources


Note: The number of users, user groups, and roles combined cannot exceed 1000 for an organization.

Getting user group details


You can request the details for all user groups in the organization or request the details for a particular user
group.

GET request
You can request the details for all user groups in the organization or request the details for a particular user
group.

To get user group details, use the following URI:


/public/core/v3/userGroups
To get the details for a particular user group, you can include the following query parameters in the URI:

Parameter Type Description

q String Query filter. You can filter using one of the following fields:
- userGroupId. Unique identifier for the user group.
- userGroupName. Name of the user group.

limit Int Maximum number of user groups to return.


Default is 100.

skip Int Amount to offset the list of results.


Default is 0.

For example, to get details for a particular user group using the user group's name, you might use the
following request:
public/core/v3/userGroups?q=userGroupName=="group_a"

GET response
If successful, returns the following information for each user group:

Field Type Description

id String User group ID.

orgId String ID of the organization the user group belongs to.

createdBy String User who created the user account.

updatedBy String User who last updated the user account.

createTime String Date and time the user group was created.

updateTime String Date and time the user group was last updated.

userGroupName String Name of the user group.

description String Description of the user group.

User groups 303


Field Type Description

roles Array Roles assigned to the user group.

id String Included in the roles object.


Role ID.

roleName String Included in the roles object.


Role name.

description String Included in the roles object.


Description of the role.

displayName String Included in the roles object.


Role name that is displayed in the user interface.

displayDescription String Included in the roles object.


Role description that is displayed in the user interface.

users Array Users assigned to the user group.

id String Included in the users object.


User ID.

userName String Included in the users object.


User name.

description String Included in the users object.


Description of the user.

GET response example


To get user group details, you might use the following request:
GET <baseApiUrl>/public/core/v3/userGroups
Content-type: application/json
Accept: application/json
INFA-SESSION-ID: <SessionId>
If successful, you might receive a response similar to the following example:
[
{
"id": "a6x85hoMvH2kWUIlcIRBEh",
"orgId": "cPYWk02I4aBeuLEvYRtaMS",
"createdBy": "a@[Link]",
"updatedBy": "a@[Link]",
"createTime": "2019-03-19T17:27:09.000Z",
"updateTime": "2019-03-19T17:27:09.000Z",
"userGroupName": "group_a",
"description": "",
"roles": [
{
"id": "9gedBDoYQoQibNMohf5KCh",
"roleName": "Admin",
"description": "Role for performing administrative tasks for an
organization. Has full access to all licensed services."
"displayName": "Admin",
"displayDescription": "Role for performing administrative tasks for an
organization. Has full access to all licensed services."
}

304 Chapter 3: Platform REST API version 3 resources


],
"users": [
{
"id": "5N9JGth6pRYfOGjGKv3Q2D",
"userName": "a@[Link]",
"description": ""
}
]
}
]

Creating a user group


If you have administrator privileges, you can use the userGroups resource to create a user group.

Note: The number of users, user groups, and roles combined cannot exceed 1000 for an organization.

POST request
To create a user group, send a POST request using the following URI:
/public/core/v3/userGroups
Include the following information:

Field Type Required Description

name String Yes Name of the user group.

description String - Description of the user group.

roles Array Yes IDs of the roles to assign to the user group.

users Array - IDs of the users to assign to the user group.

POST response
If successful, returns the userGroups object with the details you included in the POST request.

POST example
To create a user group, you might send a request similar to the following example:
POST <baseApiUrl>/public/core/v3/userGroups
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID: <sessionId>
{
"name" : "user_group_1",
"roles" : ["5IPgtye09EbiWqz5XXuzwC", "9gedBDoYQoQibNMohf5KCh"],
"users" : ["9EcgvBYZ9GGflOYr98GzOH"]
}
You might receive a response similar to the following example:
{
"id": "0TLmCMwX0jNdJ5SzlQC2CW",
"orgId": "cPYWk02I4aBeuLEvYRtaMS",
"createdBy": "a@[Link]",
"updatedBy": "a@[Link]",
"createTime": "2019-03-20T18:30:32.457Z",
"updateTime": "2019-03-20T18:30:32.472Z",
"userGroupName": "user_group_1",
"description": null,
"roles": [
{

User groups 305


"id": "9gedBDoYQoQibNMohf5KCh",
"roleName": "Admin",
"description": "Role for performing administrative tasks for an
organization. Has full access to all licensed services."
"displayName": "Admin",
"displayDescription": "Role for performing administrative tasks for an
organization. Has full access to all licensed services."
},
{
"id": "5IPgtye09EbiWqz5XXuzwC",
"roleName": "test_user_1",
"description": ""
"roleName": "test_user_1",
"description": ""
}
],
"users": [
{
"id": "9EcgvBYZ9GGflOYr98GzOH",
"userName": "test_user_2",
"description": null
}
]
}

Updating a user group


You can add users and roles to user groups and remove users and roles from user groups.

Add roles
To add a role to a user group, send a PUT request using one of the following URIs:
/public/core/v3/userGroups/<user group ID>/addRoles
/public/core/v3/userGroups/name/<user group name>/addRoles
Include an array of roles to add to the user group.

To add roles to a user group, you might send a request similar to the following example:
PUT <baseApiUrl>/public/core/v3/userGroups/cPYWk02I4aBeuLEvYRtaMS/addRoles
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID: <sessionId>
{
"roles" : ["Admin", "Business Manager"]
}

Remove roles
To remove a role from a user group, send a PUT request using one of the following URIs:
/public/core/v3/userGroups/<user group ID>/removeRoles
/public/core/v3/userGroups/name/<user group name>/removeRoles
Include an array of roles to remove from the user group.

To remove roles from a user group, you might send a request similar to the following example:
PUT <baseApiUrl>/public/core/v3/userGroups/cPYWk02I4aBeuLEvYRtaMS/removeRoles
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID: <sessionId>
{
"roles" : ["Admin", "Business Manager"]
}

306 Chapter 3: Platform REST API version 3 resources


Add users
To add a user to a user group, send a PUT request using one of the following URIs:
/public/core/v3/userGroups/<user group ID>/addUsers
/public/core/v3/userGroups/name/<user group name>/addUsers
Include an array of user names to add to the user group.

To add users to a user group, you might send a request similar to the following example:
PUT <baseApiUrl>/public/core/v3/userGroups/cPYWk02I4aBeuLEvYRtaMS/addUsers
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID: <sessionId>
{
"users" : ["LarryR", "ScottY"]
}

Remove users
To remove a user from a user group, send a PUT request using one of the following URIs:
/public/core/v3/userGroups/<user group ID>/removeUsers
/public/core/v3/userGroups/name/<user group name>/removeUsers
Include an array of user names to remove from the user group.

To remove users from a user group, you might send a request similar to the following example:
PUT <baseApiUrl>/public/core/v3/userGroups/cPYWk02I4aBeuLEvYRtaMS/removeUsers
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID: <sessionId>
{
"users" : ["LarryR", "ScottY"]
}

PUT response
Returns a success code if successful or an error object if errors occur.

Deleting a user group


You can delete user groups from your organization.

To delete a user group, use the following URI:


/public/core/v3/userGroups/<user group Id>

User groups 307


Chapter 4

Data Integration REST API


The REST API resources in this section apply specifically to the Data Integration service.

For most calls, use Data Integration REST API version 2 resources. When you use Data Integration REST API
version 2 resources, note the following rules:

• Use JSON or XML format.


• Use the serverUrl value from the login response as the base URL. For example:
[Link]
• Use the following URI:
/api/v2/<API name>
• Use the following request header format:
<METHOD> <serverUrl>/<URI> HTTP/<HTTP version>
Content-Type: application/json
Accept: application/json
icSessionId: <SessionId>
In the following example, the serverUrl is [Link] and the URI
is /api/v2/agent:
<METHOD> [Link] HTTP/1.1
Content-Type: application/json
Accept: application/json
icSessionId: IV4wOrJmd6YUtmKa8t
Format rules for resources other than the version 2 resources are included in the appropriate resource topics.

Note: If you use a tool such as Postman that automatically includes the HTTP version, do not enter the HTTP
version in the URL. If the HTTP version appears twice in the URL, the request fails.

Code tasks
Use the code task API to submit Spark code written in Scala to an advanced cluster. You can use the
CodeTask resource to create, start, and cancel a code task job. You can also access session logs, view job
details and job status of a code task.

Consider the following guidelines when you use the code task resource:

• Write your code task in Scala.


• Submit your code in a JAR file using the code task APIs.
• Use an AWS serverless or non-serverless environment.

308
• Use the following base URL:
<server URL>/disnext/api/v1/<API name>
• Use the following request header format:
<METHOD> <server URL>/<URI> HTTP/<HTTP version>
Content-Type: application/json
Accept: application/json
IDS-SESSION-ID: <IDS_SESSION_ID>
• Ensure that you have the permission to create, execute, and view the code task APIs.
• Use the following persisted variables as needed for the code task APIs:
• IDS_SESSION_ID

• ORG_ID

• CODE_TASK_ID

• CODE_TASK_JOB_ID

Note: If you use a tool such as Postman that automatically includes the HTTP version, do not enter the HTTP
version in the URL. If the HTTP version appears twice in the URL, the request fails.

Complete the following tasks to submit Scala code in a JAR file and manage and monitor code task jobs:

• Send login information to get the session ID using “Login” on page 167.
• Create the code task and get the code task ID using “Create a code task ” on page 309.
• Start the code task and get the job ID using “Start a code task” on page 311.
• View code task details using “View a code task” on page 312.
• Check on the job status for the code task using “Status of a code task” on page 314.
• Cancel the code task job using “Cancel a code task” on page 316.
• Access the session logs for the code task using “Session logs for a code task” on page 316.
• Access the Spark task results for the code task using “Spark task results for a code task” on page 317.

Create a code task


Use the CodeTask resource to create a code task. The response includes the code task ID that you can use in
subsequent API calls.

POST request
Use the following URI to create a code task:
POST <server URL>/disnext/api/v1/CodeTask
Use the following fields in the POST request:

Field Type Required Description


/
Optional

codeTaskName String Required Name of the code task.

runtimeEnvironmentName String Optional Runtime environment used for the code task.
Either the runtimeEnvironmentName or the agentGroupId is
required. If both are provided, then the agentGroupId is used.

Code tasks 309


Field Type Required Description
/
Optional

codeExecutionParameters Parameters in the code task.

agentGroupId String Required Runtime environment that contains the Secure Agent used to
run the code task.
Either the runtimeEnvironmentName or the agentGroupId is
required. If both are provided, then the agentGroupId is used.

overrideTaskTimeout Long Optional Overrides the code task timeout value for this execution. A
value of -1 signifies no timeout.

logLevel String Optional Log level for session logs, agent job log, Spark driver, and
executor logs. Valid values are: none, terse, normal,
verboseInitialization, or verboseData.
The default value is normal.

sparkMainClass String Required Entry point of the Spark application. For example:
[Link]

sparkMainClassArgs List Optional Ordered arguments sent to the Spark application main class.
<String> For example:
--appTypeSPARK_PI_FILES_JARS--
[Link].SparkTest1Class

sparkPrimaryResource String Required Scala JAR file that contains the code task.

sparkJars List Optional The directory and file name of the JAR file that is uploaded
<String> to the cluster and added to the Spark driver and executor
classpaths.

sparkFiles List Optional The directory and file name of the Spark file that is uploaded
<String> to the cluster and available under the current working
directory.

advancedCustomPropertie String Optional Spark properties or other custom properties that Data
s Integration uses. For example:
"{\"[Link]\": \"2G\",
\"[Link]\": \"4\"}"

POST response
The following variable is set from the response attributes:

Name Response Value Note

CODE_TASK_ID codeTaskId Used in the start and view code task resources.

POST request example


Use the following sample as a reference to create a code task:
POST <server URL>/disnext/api/v1/CodeTask
Content-Type: application/json

310 Chapter 4: Data Integration REST API


Accept: application/json
IDS-SESSION-ID:{{IDS_SESSION_ID}}
{
"codeTaskName" : "CODETASK_API",
"runtimeEnvironmentName" : "{{RTE_NAME}}",
"codeExecutionParameters" : {
"agentGroupId": "{{AGENT_GROUP_ID}}",
"logLevel": "normal",
"sparkMainClass":
"[Link]",
"sparkMainClassArgs": ["6"],
"sparkPrimaryResource": "spark-examples_2.[Link]",
"sparkJars": [],
"sparkFiles": [],
"advancedCustomProperties": "{\"[Link]\": \"1G\",
\"[Link]\": \"1G\", \"[Link].SPARK_DIRECT_TASK_SLEEP
\": \"600\", \"[Link].SPARK_DIRECT_APP_TYPE\": \"SPARK_PI\",
\"[Link].SPARK_DIRECT_KMS_ENCRYPTED_PROPS\":
\"[Link]\", \"[Link]\":
\"5pkOjS0HILDwSaW6eyxtiwB3g2TBYayjKLRFSSyxn5M=0p6v3eCvrtFkw6K78Buwal\",
\"[Link]\": \"[Link]=false\"}"
}
}

POST response example


A successful POST response returns a summary, the code task ID, and the code task name similar to the
following example:
{
"summary": "Code Task created successfully",
"codeTaskId": 3,
"codeTaskName": "CODETASK_API"
}

Start a code task


Use this POST request to start the code task job. The response includes the code task job ID that you can use
in subsequent API calls.

POST request
To start a code task, use the task ID. The code task ID is included in the response when you create a code
task. For more information, see “Create a code task ” on page 309.

Use the following URI to start a code task:


POST <server URL>/disnext/api/v1/CodeTask/Start
Use the following field in the POST request:

Field Type Required / Optional Description

codeTaskId String Required The code task ID from the create resource.

Code tasks 311


POST response
The following variable is set from the response attributes:

Name Response Value Note

CODE_TASK_JOB_ID jobId Used to cancel the code task job, or to get job status, session logs, or
Spark task status.

POST request example


Use this sample as a reference to start a code task.
POST <server URL>/disnext/api/v1/CodeTask/Start
Content-Type: application/json
Accept: application/json
IDS-SESSION-ID:{{IDS_SESSION_ID}}
{
"codeTaskId" : {{CODE_TASK_ID}}
}

POST response example


A successful POST response returns the code task job ID and other information, similar to the following
example:
{
"summary": "Code Task started successfully",
"jobId": "8zcuMdImeshidZ4XVExs20",
"codeTaskInstanceName": "Demo-2",
"sparkCodeTaskResponseBody": {
"agentGroupId": "01000025000000000003",
"clusterConfigId": "Default",
"logLevel": "normal",
"startRunTime": "2022-04-04T20:23:57.154+00:00",
"submitTime": "2022-04-04T20:23:57.095+00:00"
}
}

View a code task


Use this GET request to view the code task configuration parameters.

GET request
To request the parameters of a code task, use the task ID. The code task ID is included in the response when
you create a code task. For more information, see “Create a code task ” on page 309.

Use the following URI to get the code task parameters:


GET <server URL>/disnext/api/v1/CodeTask/<Code task ID>

GET response
Returns the code task object for the requested task ID.

Returns the error object if errors occurred.

312 Chapter 4: Data Integration REST API


The following table describes the parameters in the response:

Field Type Description

codeTaskName String Name of the code task.

codeTaskId Numeric The code task identifier.

agentGroupId String Runtime environment that contains the Secure Agent used to
run the code task.

overrideTaskTimeout String Overrides the code task timeout value for this execution. A
value of -1 signifies no timeout.

logLevel String Log level for session logs, agent job log, Spark driver, and
executor logs. Valid values are: none, terse, normal,
verboseInitialization, or verboseData.
The default value is normal.

sparkMainClass String Entry point of the Spark application. For example:


[Link]

sparkMainClassArgs List<String> Ordered arguments sent to the Spark application main class.
For example:
--appTypeSPARK_PI_FILES_JARS--
[Link].SparkTest1Class

sparkPrimaryResource String Scala JAR file that contains the code task.

sparkJars List The directory and file name of the JAR file that is uploaded to
<String> the cluster and added to the Spark driver and executor
classpaths.

sparkFiles List The directory and file name of the Spark file that is uploaded
<String> to the cluster and available under the current working
directory.

advancedCustomProperties String Spark properties or other custom properties that Data


Integration uses.

GET request example


Use this sample as a reference to get the code task parameters.
GET <server URL>/disnext/api/v1/CodeTask/<Code task ID>
Content-Type: application/json
Accept: application/json
IDS-SESSION-ID:{{IDS_SESSION_ID}}

GET response example


A successful GET response returns the code task parameters, similar to the following example:
{
"codeTaskName": "CODETASK_API",
"codeTaskId": 3,
"agentGroupId": "01000025000000000003",
"overrideTaskTimeout": null,
"logLevel": "normal",
"sparkMainClass": "[Link]",
"sparkMainClassArgs": ["6"],
"sparkPrimaryResource": "spark-examples_2.[Link]",

Code tasks 313


"sparkJars": [],
"sparkFiles": [],
"advancedCustomProperties": "{\"[Link]\": \"1G\",
\"[Link]\": \"1G\", \"[Link].SPARK_DIRECT_TASK_SLEEP
\": \"600\", \"[Link].SPARK_DIRECT_APP_TYPE\": \"SPARK_PI\",
\"[Link].SPARK_DIRECT_KMS_ENCRYPTED_PROPS\":
\"[Link]\", \"[Link]\":
\"5pkOjS0HILDwSaW6eyxtiwB3g2TBYayjKLRFSSyxn5M=0p6v3eCvrtFkw6K78Buwal\",
\"[Link]\": \"[Link]=false\"}"
}

Status of a code task


Use this GET request to check the code task job status.

GET request
To request the status of a code task job, use the code task job ID. The code task job ID is included in the
response when you start a code task. For more information, see “Start a code task” on page 311.

Use the following URI to get the code task job status parameters:
GET <server URL>/disnext/api/v1/CodeTask/JobStatus/<Code task job ID>

GET response
Returns the code task object for the requested job ID.

Returns the error object if errors occurred.

The following table describes the parameters in the response:

Field Type Description

codeTaskName String Name of the code task.

codeTaskId Numeric The code task identifier.

agentGroupId String Runtime environment that contains the Secure Agent used to run the
code task.

executionState String The state of the job: QUEUED, RUNNING, SUCCEEDED, FAILED,
CANCELLED Job status. A job can have one of the following
statuses:
- Starting. The job is starting.
- Running. The job is either queued or running.
- Success. The job completed successfully.
- Failed. The job did not complete because it encountered errors.

sessionLogUrl String URL of the session log file.

assignedServerlessComputeUnits Double Number of serverless compute units per hour that the task
requested.
You can view the number of requested compute units if the task runs
in a serverless runtime environment.

314 Chapter 4: Data Integration REST API


Field Type Description

consumedServerlessComputeUnits Double Total number of serverless compute units that the task consumed.
You can view the number of consumed compute units if the task
runs in a serverless runtime environment.

firstErrorMessage String Error message, if any, that is associated with the job.

GET request example


Use this sample as a reference to get the code task job status.
GET <server URL>/disnext/api/v1/CodeTask/JobStatus/<Code task job ID>
Content-Type: application/json
Accept: application/json
IDS-SESSION-ID:{{IDS_SESSION_ID}}

GET response example


A successful GET response returns the code task job status, similar to the following example:
{
"status": "RUNNING",
"startTime": "2022-04-04T20:23:57.000",
"updateTime": "2022-04-04T20:23:58.000",
"endTime": null,
"instanceName": "Demo-2",
"assetName": "Demo",
"runId": 2,
"orgId": "kuJVH54wm6gfhVj4QEdboY",
"startedBy": "coder@[Link]",
"runtimeEnvId": "01000025000000000003",
"codeTaskId": 2,
"errorMessage": "",
"sessionLogUrl": "logservice/api/v1/jobs/8zcuMdImeshidZ4XVExs20/logs",
"agentJobLogUrl": null,
"advancedLogLocation": null,
"advancedLogDownloadUrl": null
}
An error status GET response returns the code task job status, similar to the following example:
{
"status": "FAILED",
"startTime": "2022-03-10T17:23:29.000",
"updateTime": "2022-03-10T17:23:34.000",
"endTime": "2022-03-10T17:23:34.000",
"instanceName": "Demo-2",
"assetName": "Demo",
"runId": 2,
"orgId": "4nuRA6NIsI6lvUBYamL76P",
"startedBy": "coder@[Link]",
"runtimeEnvId": "01000025000000000003",
"codeTaskId": 477,
"errorMessage": "WES_internal_error_Failed to start cluster for
[01000025000000000003]. Error reported while starting cluster [404 {\"code
\":\"CONFIG.NOT_FOUND_id\",\"message\":\"Internal error. Cannot find an advanced
configuration with ID 01000025000000000003. Contact Informatica Global Customer
Support.\",\"debugMessage\":\"Internal error. Cannot find an advanced
configurati[truncated]. For more information about the failure, check the application
[Link] the problem persists, contact Informatica Global Customer Support.",
"sessionLogUrl": "logservice/api/v1//jobs/6pqqt9KTgi3l9jyVnAajei/logs",
"agentJobLogUrl": null,
"advancedLogLocation": null,
"advancedLogDownloadUrl": null
}

Code tasks 315


Cancel a code task
Use this PUT request to cancel the code task job.

PUT request
To cancel a code task job, use the code task job ID. The code task job ID is included in the response when
you start a code task. For more information, see “Start a code task” on page 311.

Use the following URI to cancel a code task job:


PUT <server URL>/disnext/api/v1/CodeTask/Cancel
Use the following field in the PUT request:

Field Type Required / Optional Description

jobId String Required The code task job ID from the start resource.

PUT response
Returns the code task cancellation state for the requested job ID.

Returns the error object if errors occurred.

PUT request example


Use this sample as a reference to cancel a code task job.
PUT <server URL>/disnext/api/v1/CodeTask/Cancel
Content-Type: application/json
Accept: application/json
IDS-SESSION-ID:{{IDS_SESSION_ID}}
{
"jobId" : {{CODE_TASK_JOB_ID}}
}

PUT response example


A successful PUT response returns the code task job cancellation information, similar to the following
example:
{
"state": "Code Task marked for cancellation.",
"jobId": "6pqqt9KTgi3l9jyVnAajei"
}

Session logs for a code task


Use the jobs resource to access the code task session logs.

GET request
To access the session logs of a code task, use the code task job ID. The code task job ID is included in the
response when you start a code task. For more information, see “Start a code task” on page 311.

Use the following URI to get code task session logs:

GET <server URL>/logservice/api/v1/jobs/<Code task job ID>/logs


You can use the Postman Send and Download option.

GET response
Returns a link to the code task ZIP file for the requested job ID.

316 Chapter 4: Data Integration REST API


Returns the error object if errors occurred.

GET request example


Use this sample as a reference to access code task session logs.
GET <server URL>/logservice/api/v1/jobs/<Code task job ID>/logs
Content-Type: application/json
Accept: application/json
IDS-SESSION-ID:{{IDS_SESSION_ID}}

Spark task results for a code task


Use the jobs resource to access the Spark task results for the code task.

GET request
To access the Spark task results of a code task, use the code task job ID. The code task job ID is included in
the response when you start a code task. For more information, see “Start a code task” on page 311.

Use the following URI to access code task Spark task results:

GET <server URL>/logservice/api/v1/jobs/<Code task job ID>/callback

GET response
Returns the code task Spark task details for the requested job ID.

Returns the error object if errors occurred.

GET request example


Use this sample as a reference to access code task Spark task results.
GET <server URL>/logservice/api/v1/jobs/<Code task job ID>/callback
Content-Type: application/json
Accept: application/json
IDS-SESSION-ID:{{IDS_SESSION_ID}}

GET response example


A successful GET response returns the code task Spark task results, similar to the following example:
{

"jobId": "73LJ52V0tiNjC2HFb2YggK",

"callbackBody": "{\"taskId\": \"73LJ52V0tiNjC2HFb2YggK\", \"executionId\":


\"73LJ52V0tiNjC2HFb2YggK\", \"sessionLogUrl\": \"logservice/api/v1/jobs/
73LJ52V0tiNjC2HFb2YggK/logs\", \"executionState\": \"RUNNING\"}"

Code tasks 317


Connections
Use this resource to request connection details for an organization. You can also use this resource to create,
update, test, and delete a connection.

Details GET Request


You can request the following details using a connection GET request:

• Details of all connections in the organization.


• Details for a particular connection in the organization.
• List of objects that you can use as a source or target with a particular connection.
• List of connections of a specified type associated with a Secure Agent or runtime environment.
• Metadata details for a specified connection.

Note: Do not use connections with names that begin with "DI Data Preview_".

Details of all connections in the organization

To request the details of all connections in the organization, use the following URI:
/api/v2/connection
Details of a particular connection

To request the details of a particular connection, include the connection ID or name in the URI. Use one
of the following URIs:
/api/v2/connection/<id>
/api/v2/connection/name/<name>
If you use the connection name in the URI and the connection name includes a space, replace the space
with %20. For example:
/api/v2/connection/name/my%20connection
List of objects that you can use as a source or target

You can request the objects that you can use as a source or target. To request source or target objects,
you can include either the connection ID or connection name in the URI. Use one of the following URIs:
/api/v2/connection/source/<id>
/api/v2/connection/target/<id>
/api/v2/connection/source/name/<name>
/api/v2/connection/target/name/<name>
If you use the connection name in the URI and the connection name includes a space, replace the space
with %20. For example:
/api/v2/connection/target/name/my%20connection
If you expect to receive a large number of objects, you might want to include one of the following
parameters:

• searchPattern. Use the searchPattern parameter to filter the results so that only the objects with the
specified string in the object name are included in the response. To use the searchPattern parameter,
use the following URI:
/api/v2/connection/<source or target>/<id>?searchPattern=<pattern>

318 Chapter 4: Data Integration REST API


For example, the following request returns source objects that include "abc" in the object name:
/api/v2/connection/source/002D420000000J?searchPattern=abc
• maxRecordsCount. Use the maxRecordsCount parameter to set the maximum number of objects to
return. To use the maxRecordsCount, use the following URI:
/api/v2/connection/<source or target>/<id>?maxRecordsCount=<max number of objects>
For example, the following request returns a maximum of 5000 source objects:
/api/v2/connection/source/002D420000000J?maxRecordsCount=5000
If you don't include the maxRecordsCount parameter, a maximum of 200 objects can be returned for
the request.

List of connections of a specified type associated with a Secure Agent or runtime environment

To request a list of connections by Secure Agent ID and connection type, use the following URI:
/api/v2/connection/search?agentId=<agentId>&uiType=<uiType>
To request a list of connections by runtime environment ID and connection type, use the following URI:
/api/v2/connection/search?runtimeEnvironmentId=<runtimeEnvironmentId>&uiType=<uiType>
If you pass both agentId and runtimeEnvironmentId, the service uses runtimeEnvironmentId and ignores
agentId. If you pass only agentId, the service translates agentId into its corresponding
runtimeEnvironmentId before it saves the resource to the repository.
Metadata details for a specified connection

To request metadata details for a specified connection, use the following URI:
/api/v2/connection/source/<connection ID>/metadata
/api/v2/connection/target/<connection ID>/metadata
The metadata is returned in the runtimeAttribute object which contains the following attributes:

• name
• dataType
• defaultValue
• label
• mandatory
• maxLength
• sessionVarAllowed
• possibleValues

Connections 319
Use the following connection request URI attributes:

Field Type Required Description

agentId String - Secure Agent ID

runtimeEnvironmentId String - Runtime environment ID.

uiType String Yes Connection type. Use one of the following options:
- CSVFile. CSV flat file.
- FTP.
- MS_ACCESS.
- MSD. Microsoft Dynamics CRM.
- MySQL.
- ODBC.
- Oracle.
- OCOD. Oracle CRM On Demand.
- Salesforce.
- SFTP. Secure FTP.
- SAP_ALE_IDoc_Reader. SAP IDoc Reader.
- SAP_ALE_IDoc_Writer. SAP IDoc Writer.
- SqlServer. Microsoft SQL Server 2000.
- SqlServer2005. Microsoft SQL Server 2005.
- SqlServer2008. Microsoft SQL Server 2008.
- SqlServer2012. Microsoft SQL Server 2012.
- SqlServer2014. Microsoft SQL Server 2014.
- SqlServer2016. Microsoft SQL Server 2016.
- SqlServer2017. Microsoft SQL Server 2017.
- TOOLKIT. Informatica Cloud Connector. Also use for NetSuite
connections.
- WebServicesConsumer. Web Service.

Details GET Response


Returns the connection object for the requested connection ID. If you request information for all connections
in the organization, returns a connection object for each connection in the organization.

If you request a list of connections based on the runtime environment ID and connection type, returns a
connection object for each connection that matches the requirements.

If you request a list of source or target objects available for the requested connection ID, returns the
connListItem object for each available object.

Returns the error object if errors occur.

The connection object includes different information based on connection type.

The following table describes attributes included in a connection object:

Field Type Description

id String Connection ID.

orgId String Organization ID.

name String Connection name.

description String Description of the connection.

320 Chapter 4: Data Integration REST API


Field Type Description

createTime Date/time Time the connection was created.

updateTime Date/time Last time the connection was updated.

createdBy String User who created the connection.

updatedBy String User who last updated the connection.

agentId String Secure Agent ID for Flat File, FTP/SFTP, Microsoft SQL Server, MS Access,
MySQL, ODBC, Oracle, and Web Service connections.

runtimeEnvironmentId String Runtime environment used by the connection. This is the Runtime
Environment field in the user interface. In the response returned to the user
interface, this attribute is named agentGroupId.

instanceName String Microsoft SQL Server instance name.

host String Host name for FTP/SFTP, Microsoft SQL Server, MySQL, and Oracle
connections.

domain String Domain name for Microsoft Dynamics CRM connections that use IFD or Active
Directory authentication, and Web Service connections.

dateFormat Date format for Flat File, FTP, and SFTP connections.

database String Returns the following information:


- For Microsoft SQL Server and MySQL connections, returns the database
name.
- For Flat File connections, returns the directory.
- For FTP and SFTP connections, returns the local directory.
- For MS Access and ODBC connections, returns the data source name.
- For Oracle connections, returns the service name.
- For SAP IDoc Writer and Reader connections, returns the destination entry.
- For Web Service connections, returns the service URL.

codepage Code page for Flat File, FTP, SFTP, Microsoft SQL Server, MySQL, MS Access,
ODBC, Oracle, and SAP.

clientCode String Client code for SAP IDoc Writer connections.

authenticationType String Authentication type for Microsoft Dynamics CRM, Microsoft SQL Server, and
Web Service connections.

adjustedJdbcHostName String Host name. Or host and instance name for Microsoft SQL Server connections.

accountNumber String Account ID for NetSuite connections.

languageCode String Language code for SAP IDoc Writer connections.

remoteDirectory String Remote directory for FTP/SFTP connections.

schema String Schema name for Microsoft SQL Server, ODBC, Oracle, and Web Service
connections.

Connections 321
Field Type Description

serviceUrl String Service URL for Microsoft Dynamics CRM, Oracle CRM On Demand, and
Salesforce connections.

shortDescription String The first 50 letters of the description.

type String Connection type returns one of the following responses:


- CSVFile. CSV flat file.
- FTP.
- MS_ACCESS.
- MSD. Microsoft Dynamics CRM.
- MySQL.
- ODBC.
- Oracle.
- OCOD. Oracle CRM On Demand.
- Salesforce.
- SFTP. Secure FTP.
- SAP_ALE_IDoc_Reader. SAP IDoc Reader.
- SAP_ALE_IDoc_Writer. SAP IDoc Writer.
- SqlServer. Microsoft SQL Server 2000.
- SqlServer2005. Microsoft SQL Server 2005.
- SqlServer2008. Microsoft SQL Server 2008.
- SqlServer2012. Microsoft SQL Server 2012.
- SqlServer2014. Microsoft SQL Server 2014.
- SqlServer2016. Microsoft SQL Server 2016.
- TOOLKIT. Informatica Cloud Connector.
- WebServicesConsumer. Web Service.
Note: The user interface field name on the Connections page varies depending
on the connection. For example, for SQL Server, the user interface field name
is SQL Server Version. Also note that for SQL Server, the REST API attribute
that populates the value in the user interface is named subType.

port Int Port number for FTP/SFTP, Microsoft SQL Server, MySQL, and Oracle
connections.

password String Password for the connection.

username String User name for the connection.

securityToken String Security token for a Salesforce connection.

stsUrl String Security token service URL for Microsoft Dynamics CRM connections that use
Active Directory authentication.

organizationName String Organization name for Microsoft Dynamics CRM connections.

timeout Int Timeout for Web Service connections.

trustCertificatesFile String Trust certificates file name for Web Service connections.

certificateFile String Certificates file name for Web Service connections.

certificateFilePassword String Certificates file password for Web Service connections.

certificateFileType String Certificates file type for Web Service connections.

privateKeyFile String Private key file name for Web Service connections.

322 Chapter 4: Data Integration REST API


Field Type Description

privateKeyPassword String Private key password for Web Service connections.

privateKeyFileType String Private key file type for Web Service connections.

connParams String Parameters used in the connection.


Includes connection attributes in the connParam object for SAP, NetSuite,
Oracle CRM On Demand, ODBC, or other Informatica Cloud connectors.

federatedId String Global unique identifier for the connection.

internal Boolean Indicates whether the connection was created internally for data preview
purposes only.

retryNetworkError Boolean Used for internal purposes only.

supportsCCIMultiGroup Boolean Used for internal purposes only.

connListItem List of connections included in the connListItem object.

id String Included in the connListItem object.


Source or target ID.

name String Included in the connListItem object.


Source or target name.

Test GET Request


To test a connection, use the connection ID in the following URI:
/api/v2/connection/test/<id>

Test GET Response


Returns the success object if the test succeeds.

Returns the error object if errors occur.

POST Request
You can create or update connections. To update a connection, use the connection ID with the following URI.
To create a connection, omit the optional connection ID.
/api/v2/connection/<id>
You can submit a partial update using partial mode. To submit a request using partial mode, use a JSON
request and include the following line in the header:
Update-Mode=PARTIAL
In a connection POST request, use the additional attributes in the connection object. The attributes used by
Informatica Cloud Connector connections vary by connection type.

To create or update an Informatica Cloud Connector connection, consult the Informatica Cloud application
for the attributes used by the connection. Enclose any attributes that are not listed in the following tables in a
connParam object.

To get a list of connectors that are available to the organization and attribute information for a specific
connector type, see “Connectors” on page 340.

Connections 323
For more information about attributes and data types used for creating connections through the REST API,
see “Connection user interface fields to REST API attributes mapping” on page 486 and “Connector data
types” on page 485.

POST Response
If successful, returns the connection object for the connection that was created or updated.

Returns the error object if errors occur.

DELETE Request
To delete a connection, use the connection ID in the following URI.
/api/v2/connection/<id>

DELETE Response
Returns the 200 response code if the request is successful.

Returns the error object if errors occur.

POST Example
To update an SAP Table connection, you might use the following request, enclosing SAP attributes in the
connParam object:
POST <serverUrl>/api/v2/connection/0002D420000000J
Content-Type: application/xml
Accept: application/xml
icSessionId: <icSessionId>

<connection>
<id>0002D420000000J</id>
<orgId>00342000</orgId>
<name>test dir</name>
<type>TOOLKIT</type>
<agentId>00001Y08000000000002</agentId>
<username>username</username>
<password>password</password>
<instanceName>SAPTableConnector</instanceName>
<connParams>
<agentId>00001Y08000000000002</agentId>
<username>username</username>
<password>password</password>
<client>800</client>
<language>EN</language>
<Saprfc Ini Path>C:\\Windows\\SysWOW64</Saprfc Ini Path>
<Destination>GE6</Destination>
</connParams>
<runtimeEnvironmentId>00000C25000000000002</runtimeEnvironmentId>
</connection>
A successful request returns the connection object that you updated.

324 Chapter 4: Data Integration REST API


CSV Flat File Connections
When you create or update a CSV flat file connection, you can configure additional attributes, such as the
connection ID and the connection name.

The following table describes attributes that you can use for CSV flat file connections:

Attribute Description

id Connection ID.

orgId Organization ID.

name Connection name.

description Optional connection description.

type Connection type. Use CSVFile.

database Directory where flat files are stored. In the user interface, this attribute is the Directory field. In the
REST API response that populates the value in the user interface, the name of this attribute is dirName.

Connections 325
Attribute Description

dateFormat Date format for date fields in the flat file. Use one of the following formats:
- MM/dd/yyyy
- MM-dd-yyyy
- [Link]
- dd/MM/yyyy
- dd-MM-yyyy
- [Link]
- MM/dd/yyyy HH:mm
- MM-dd-yyyy HH:mm
- [Link] HH:mm
- dd/MM/yyyy HH:mm
- dd-MM-yyyy HH:mm
- [Link] HH:mm
- MM/dd/yyyy HH:mm:ss
- MM-dd-yyyy HH:mm:ss
- [Link] HH:mm:ss
- dd/MM/yyyy HH:mm:ss
- dd-MM-yyyy HH:mm:ss
- [Link] HH:mm:ss
- yyyy-MM-dd
- yyyy-MM-dd HH:mm
- yyyy-MM-dd HH:mm:ss
- yyyy-MM-ddTHH:mm:[Link]
- yyyy/MM/dd
- yyyy/MM/dd HH:mm
- yyyy/MM/dd HH:mm:ss
- yyyyMMdd
- MM/dd/yyyy HH24:mm:ss
- MM/dd/yyyy HH24:mm:[Link]
- MM/dd/yyyy HH24:mm:[Link]
- MM/dd/yyyy HH24:mm:[Link]
Default is MM/dd/yyyy HH:mm:ss.

codepage The code page of the system that hosts the flat file. Use one of the following options:
- UTF-8. Unicode Transformation Format, multibyte.
- MS1252. MS Windows Latin 1 (ANSI), superset of Latin 1.
- ISO-8859-15. Latin 9, Western European.
- ISO-8859-2. Eastern European.
- ISO-8859-3. Southeast European.
- ISO-8859-5. Cyrillic.
- ISO-8859-9. Latin 5, Turkish.
- IBM500. IBM EBCDIC International Latin-1.

FTP and SFTP Connections


When you create or update an FTP or SFTP connection, you can configure additional attributes, such as the
connection ID and the connection name.

The following table describes attributes that you can use for FTP or SFTP file connections:

Attribute Description

id Connection ID.

orgId Organization ID.

326 Chapter 4: Data Integration REST API


Attribute Description

name Connection name.

description Optional connection description.

type Connection type. Use FTP or SFTP.

username User name.

password Password.

host Name of the machine hosting the database server or FTP/SFTP host. For a FTP/SFTP connection,
enter the host name of IP address.

port Network port number used to connect to FTP/SFTP connection. Default port is 21 for FTP and 22
for SFTP.

database Directory on a local machine that stores the local file. In the user interface, this attribute is the
Directory field. In the REST API response that populates the value in the user interface, the name of
this attribute is dirName.
The local machine must also run the Secure Agent used to run the corresponding task. Enter a local
directory or use the Browse button to select a local directory.

remoteDirectory Directory on the FTP/SFTP host that stores the remote flat file.
Depending on the FTP/SFTP server, you may have limited options to enter directions. For more
information, see the FTP/SFTP server documentation.

dateFormat Date format for date fields in the flat file. Use one of the following formats:
- MM/dd/yyyy
- MM-dd-yyyy
- [Link]
- dd/MM/yyyy
- dd-MM-yyyy
- [Link]
- MM/dd/yyyy HH:mm
- MM-dd-yyyy HH:mm
- [Link] HH:mm
- dd/MM/yyyy HH:mm
- dd-MM-yyyy HH:mm
- [Link] HH:mm
- MM/dd/yyyy HH:mm:ss
- MM-dd-yyyy HH:mm:ss
- [Link] HH:mm:ss
- dd/MM/yyyy HH:mm:ss
- dd-MM-yyyy HH:mm:ss
- [Link] HH:mm:ss
- yyyy-MM-dd
- yyyy-MM-dd HH:mm
- yyyy-MM-dd HH:mm:ss
- yyyy-MM-ddTHH:mm:[Link]

Connections 327
Attribute Description

codepage The code page of the system that hosts the flat file. Use one of the following options:
- UTF-8. Unicode Transformation Format, multibyte.
- MS1252. MS Windows Latin 1 (ANSI), superset of Latin 1.
- ISO-8859-15. Latin 9, Western European.
- ISO-8859-2. Eastern European.
- ISO-8859-3. Southeast European.
- ISO-8859-5. Cyrillic.
- ISO-8859-9. Latin 5, Turkish.
- IBM500. IBM EBCDIC International Latin-1.

agentId Secure Agent ID.

Microsoft Access Connections


When you create or update a Microsoft Access connection, you can configure additional attributes, such as
the connection ID and the connection name.

The following table describes attributes that you can use for Microsoft Access connections:

Attribute Description

id Connection ID.

orgId Organization ID.

name Connection name.

description Optional connection description.

type Connection type. Use MS_ACCESS.

database Data source name. In the user interface, this is the Data Source Name field.

codepage The code page compatible with the MS Access database. Use one of the following options:
- UTF-8. Unicode Transformation Format, multibyte.
- MS1252. MS Windows Latin 1 (ANSI), superset of Latin 1.
- ISO-8859-15. Latin 9, Western European.
- ISO-8859-2. Eastern European.
- ISO-8859-3. Southeast European.
- ISO-8859-5. Cyrillic.
- ISO-8859-9. Latin 5, Turkish.
- IBM500. IBM EBCDIC International Latin-1.

agentId Secure Agent ID.

328 Chapter 4: Data Integration REST API


Microsoft Dynamics CRM Connections
When you create or update a Microsoft Dynamics CRM connection, you can configure additional attributes,
such as the connection ID and the connection name.

The following table describes attributes that you can use for Microsoft Dynamics CRM connections:

Attribute Description

id Connection ID.

orgId Organization ID.

name Connection name.

description Optional connection description.

type Connection type. Use MSD.

authenticationType Authentication type for the connection. Select a valid authentication type. Use one of the
following authentication types:
- LIVE. Microsoft Live. Use for synchronization tasks or PowerCenter tasks.
- IFD. Internet Facing Development (IFD). Use for synchronization tasks or PowerCenter tasks.
- AD. Active Directory. Use for PowerCenter tasks only.

username Microsoft Dynamics CRM user name.

password Microsoft Dynamics CRM password.

organizationName Microsoft Dynamics CRM organization name.

domain Microsoft Dynamics CRM domain name.


Required for IFD and Active Directory authetication.

serviceURL URL of the Microsoft Dynamics CRM service.


For Microsoft Live authentication, use the following format:
https:// <orgname>.[Link]
For IFD authentication, use the following format:
[Link]
For Active Directory, use the following format:
[Link]

stsURL Microsoft Dynamics CRM security token service URL. For example, https:// [Link].
Required for IFD authentication.

agentId Secure Agent ID.


Required for Active Directory authentication only.

Connections 329
Microsoft SQL Server Connections
When you create or update a Microsoft SQL Server connection, you can configure additional attributes, such
as the connection ID and the connection name.

The following table describes attributes that you can use for Microsoft SQL Server connections:

Attribute Description

id Connection ID.

orgId Organization ID.

name Connection name.

description Optional connection description.

type Connection type. Use one of the following codes:


- SqlServer. Microsoft SQL Server 2000.
- SqlServer2005. Microsoft SQL Server 2005.
- SqlServer2008. Microsoft SQL Server 2008.
- SqlServer2012. Microsoft SQL Server 2012.
In the user interface, this attribute is the SQL Server Version field. In the REST API response that
populates the value in the user interface, the name of this attribute is subType.

authenticationType Authentication method for the connection. Use one of the following options:
- Windows. Use Microsoft Windows authentication to access Microsoft SQL Server. Available
when users access Data Integration on Windows.
- SqlServer. Use Microsoft SQL Server authentication to access Microsoft SQL Server.

username User name for the database login. Use when authenticationType is SqlServer.

password Password for the database login. Use when authenticationType is SqlServer.

host Name of the machine hosting the database server.

port Network port number used to connect to the database server. Default port number is 1433.

instanceName Instance name of the Microsoft SQL Server database.

database Database name for the Microsoft SQL Server target. Database name is case sensitive if the
database is case sensitive. Maximum length is 100 characters.
Database names can include alphanumeric and underscore characters.

schema Schema used for the target connection.

codepage The code page of the Microsoft SQL Server database. Use one of the following options:
- UTF-8. Unicode Transformation Format, multibyte.
- MS1252. MS Windows Latin 1 (ANSI), superset of Latin 1.
- ISO-8859-15. Latin 9, Western European.
- ISO-8859-2. Eastern European.
- ISO-8859-3. Southeast European.
- ISO-8859-5. Cyrillic.
- ISO-8859-9. Latin 5, Turkish.
- IBM500. IBM EBCDIC International Latin-1.

agentId Secure Agent ID.

330 Chapter 4: Data Integration REST API


MySQL Connections
When you create or update a MySQL connection, you can configure additional attributes, such as the
connection ID and the connection name.

The following table describes attributes that you can use for MySQL connections:

Attribute Description

id Connection ID.

orgId Organization ID.

name Connection name.

description Optional connection description.

type Connection type. Use MySQL.

username User name for the database login.

password Password for the database login.

host Name of the machine hosting the database server.

port Network port number used to connect to the database server. Default is 3306.

database Database name for the MySQL database target. Database name is case sensitive if the database is case
sensitive.

codepage The code page for the database server. Use one of the following options:
- UTF-8. Unicode Transformation Format, multibyte.
- MS1252. MS Windows Latin 1 (ANSI), superset of Latin 1.
- ISO-8859-15. Latin 9, Western European.
- ISO-8859-2. Eastern European.
- ISO-8859-3. Southeast European.
- ISO-8859-5. Cyrillic.
- ISO-8859-9. Latin 5, Turkish.
- IBM500. IBM EBCDIC International Latin-1.

agentId Secure Agent ID.

NetSuite Connections
When you create or update a NetSuite connection, you can configure additional attributes, such as the
connection ID and the connection name.

The following table describes attributes that you can use for NetSuite connections:

Attribute Description

id Connection ID.

orgId Organization ID.

name Connection name.

Connections 331
Attribute Description

description Optional connection description.

type Connection type. Use NetSuite.

username NetSuite user name.

password NetSuite password.

accountNumber NetSuite account ID. To locate your account ID, log in to NetSuite and navigate to Setup >
Integration > Web Services Preferences.

serviceURL WSDL URL. If your NetSuite account does not use the default NetSuite WSDL URL, enter the WSDL
URL used by your NetSuite account.

ODBC Connections
When you create or update an ODBC connection, you can configure additional attributes, such as the
connection ID and the connection name.

The following table describes attributes that you can use for OBDC connections:

Attribute Description

id Connection ID.

orgId Organization ID.

name Connection name.

description Optional connection description.

type Connection type. Use ODBC.

username User name for the database login.

password Password for the database login.

database Data source name.

schema Schema used for the target connection.


Use uppercase letters when you specify the schema name for an Oracle database.
Required to connect to an IBM DB2 database.

codepage The code page of the database server or flat file defined in the connection. Use one of the
following options:
- UTF-8. Unicode Transformation Format, multibyte.
- MS1252. MS Windows Latin 1 (ANSI), superset of Latin 1.
- ISO-8859-15. Latin 9, Western European.
- ISO-8859-2. Eastern European.
- ISO-8859-3. Southeast European.
- ISO-8859-5. Cyrillic.
- ISO-8859-9. Latin 5, Turkish.
- IBM500. IBM EBCDIC International Latin-1.

332 Chapter 4: Data Integration REST API


Attribute Description

agentId Secure Agent ID.

ODBC_SUBTYPE The ODBC connection subtype to connect to a specific database. Use one of the following
options:
- Azure DW
- DB2
- Google BigQuery
- PostgreSQL
- Redshift
- SAP IQ
- Snowflake
- Teradata
- Other

authenticationType The authentication method to connect to a database. Required for DB2. Use one of the following
options:
- Database
- Kerberos

kerberosProperties Additional connection properties to use Kerberos authentication to connect to DB2. If you
specify more than one property, separate each key-value pair with a semicolon.

Oracle Connections
When you create or update an Oracle connection, you can configure additional attributes, such as the
connection ID and the connection name.

The following table describes attributes that you can use for Oracle connections:

Attribute Description

id Connection ID.

orgId Organization ID.

name Connection name.

description Optional connection description.

type Connection type. Use Oracle.

username User name for the database login.

password Password for the database login.

host Name of the machine hosting the database server.

port Network port number used to connect to the database server. Default is 1521.

database Service name that uniquely identifies the Oracle database. This attribute is the Service Name field in the
user interface.
If the connection fails, contact the database administrator.

Connections 333
Attribute Description

schema Schema used for the target connection. Optional.

codepage The code page of the database server. Use one of the following options:
- UTF-8. Unicode Transformation Format, multibyte.
- MS1252. MS Windows Latin 1 (ANSI), superset of Latin 1.
- ISO-8859-15. Latin 9, Western European.
- ISO-8859-2. Eastern European.
- ISO-8859-3. Southeast European.
- ISO-8859-5. Cyrillic.
- ISO-8859-9. Latin 5, Turkish.
- IBM500. IBM EBCDIC International Latin-1.

agentId Secure Agent that Data Integration uses to access the database in the local area network.

Oracle CRM On Demand Connections


When you create or update an Oracle CRM On Demand connection, you can configure additional attributes,
such as the connection ID and the connection name.

The following tables describes attributes that you can use for Oracle CRM On Demand connections:

Attribute Description

id Connection ID.

orgId Organization ID.

name Connection name.

description Optional connection description.

type Connection type. Use OCOD.

username Oracle CRM On Demand user name. Use the following format:
<domain>/<user name>
For example: domain/jsmith@[Link].

password Oracle CRM On Demand password.

serviceUrl URL of the Oracle CRM On Demand service.


For example: [Link]

334 Chapter 4: Data Integration REST API


Salesforce Connections
When you create or update a Salesforce connection, you can configure additional attributes, such as the
connection ID and the connection name.

The following table describes attributes that you can use for Salesforce connections:

Attribute Description

id Connection ID.

orgId Organization ID.

name Connection name.

description Optional connection description.

type Connection type. Use Salesforce.

username User name for the Salesforce account.


<domain>/<user name>
For example: domain/jsmith@[Link].

password Password for the Salesforce account.

securityToken Security token associated with the user name and password. Optional.

serviceUrl URL of the Salesforce service. Maximum length is 100 characters.

SAP IDoc Reader Connections


When you create or update an SAP IDoc Reader connection, you can configure additional attributes, such as
the connection ID and the connection name.

The following table describes attributes that you can use for SAP IDoc Reader connections:

Attribute Description

id Connection ID.

orgId Organization ID.

name Connection name.

description Optional connection description.

type Connection type. Use SAP_ALE_IDoc_Reader.

username SAP user name with authorization on S_DATASET, S_TABU_DIS, S_PROGRAM, and B_BTCH_JOB objects.

password Password for the SAP user name.

database Type A DEST entry in the [Link] file. This attribute is the Destination Entry field in the user interface.

Connections 335
Attribute Description

codepage The code page compatible with the SAP source. Use one of the following options:
- UTF-8. Unicode Transformation Format, multibyte.
- MS1252. MS Windows Latin 1 (ANSI), superset of Latin 1.
- ISO-8859-15. Latin 9, Western European.
- ISO-8859-2. Eastern European.
- ISO-8859-3. Southeast European.
- ISO-8859-5. Cyrillic.
- ISO-8859-9. Latin 5, Turkish.
- IBM500. IBM EBCDIC International Latin-1.

agentId Secure Agent ID.

SAP IDoc Writer Connections


When you create or update an SAP IDoc Writer connection, you can configure additional attributes, such as
the connection ID and the connection name.

The following table describes attributes that you can use for SAP IDoc Writer connections:

Attribute Description

id Connection ID.

orgId Organization ID.

name Connection name.

description Optional connection description.

type Connection type. Use SAP_ALE_IDoc_Writer.

username SAP user name with authorization on S_DATASET, S_TABU_DIS, S_PROGRAM, and B_BTCH_JOB
objects.

password Password for the SAP user name.

database Type A DEST entry in the [Link] file. This attribute is the Connection String field in the user
interface.

languageCode Language code that corresponds to the SAP language. A two-letter code, such as en for English.

clientCode SAP client number. A three-letter code.

codepage The code page compatible with the SAP target. Use one of the following options:
- UTF-8. Unicode Transformation Format, multibyte.
- MS1252. MS Windows Latin 1 (ANSI), superset of Latin 1.
- ISO-8859-15. Latin 9, Western European.
- ISO-8859-2. Eastern European.
- ISO-8859-3. Southeast European.
- ISO-8859-5. Cyrillic.
- ISO-8859-9. Latin 5, Turkish.
- IBM500. IBM EBCDIC International Latin-1.

agentId Secure Agent ID.

336 Chapter 4: Data Integration REST API


Web Service Connections
When you create or update a Web Service connection, you can configure additional attributes, such as the
connection ID and the connection name.

The following table describes attributes that you can use for Web Service connections:

Attribute Description

id Connection ID.

orgId Organization ID.

name Connection name.

description Optional connection description.

type Connection type. Use WebServicesConsumer.

username SAP user name with authorization on S_DATASET, S_TABU_DIS, S_PROGRAM, and
B_BTCH_JOB objects.

password Password for the web service login. If the web service does not require a user name, leave
this field empty. Optional.

domain Domain for authentication. Optional.

serviceUrl Endpoint URL for the web service that you want to access. The WSDL file specifies this URL
in the location element. This attribute is the Endpoint URL field in the user interface.
Optional.

timeout Secure Agent ID.


Number of seconds Informatica Intelligent Cloud Services waits for a connection to the web
service provider before it closes the connection and fails the session. Also, the number of
seconds the Informatica Intelligent Cloud Services waits for a SOAP response after sending
a SOAP request before it fails the session.
Default is 60. Optional.

trustCertificatesFile File containing the bundle of trusted certificates that Informatica Intelligent Cloud Services
uses when authenticating the SSL certificate of the web services provider. Default is ca-
[Link]. Optional.

certificateFile Client certificate that a web service provider uses when authenticating a client. You specify
the client certificate file if the web service provider needs to authenticate Informatica
Intelligent Cloud Services. Optional.

certificateFilePassword Password for the client certificate. You specify the certificate file password if the web
service provider needs to authenticate Informatica Intelligent Cloud Services. Optional.

certificateFileType File type of the client certificate. You specify the certificate file type if the web service
provider needs to authenticate the Integration Service. Use one of the following codes:
- PEM
- DER
Optional.

privateKeyFile Private key file for the client certificate. You specify the private key file if the web service
provider needs to authenticate Informatica Intelligent Cloud Services. Optional.

Connections 337
Attribute Description

privateKeyPassword Password for the private key of the client certificate. You specify the key password if the
web service provider needs to authenticate Informatica Intelligent Cloud Services. Optional.

privateKeyFileType File type of the private key of the client certificate. You specify the key file type if the web
service provider needs to authenticate Informatica Intelligent Cloud Services.
If necessary, use PEM. Optional.

authenticationType Authentication type to use when the web service provider does not return an authentication
type to Informatica Intelligent Cloud Services. Use one of the following options:
- Auto. The Integration Service attempts to determine the authentication type of the web
service provider.
- Basic. Based on a non-encrypted user name and password.
- Digest. Based on an encrypted user name and password.
- NTLM. Based on encrypted user name, password, and domain.
Default is Auto. Optional.

agentId ID for the Secure Agent that Informatica Intelligent Cloud Services uses to access the
database in the local area network.

Connection migration
Use this resource to migrate an old version of the connection in referenced assets to the latest connection
version within an organization. The migration creates a copy of the project folder and assets and updates the
referenced connection in the assets with the latest version.

You can migrate old connections used in Source, Target, and Lookup transformations from assets such as
mappings and tasks. If the connection is used across assets in multiple projects, all the referenced assets
are updated to use the current connection version.

POST request
To specify the connections to migrate and start the migrate job, use the following URI:
saas/api/v2/connectionMigration/migrate
Include the following fields in the request:

Field Type Required Description

icSessionId String Yes Informatica Intelligent Cloud Services session ID.

sourceConn String Yes The name of the source connection that you want to migrate. This is the old
version of the connector.

338 Chapter 4: Data Integration REST API


Field Type Required Description

targetConn String Yes The target connection name to which you want to migrate. This is the current
version of the connector.

projectName String No The project name contains the referenced assets of the source connection that
you want to migrate.
If you do not specify the project name, the source connection in all assets are
migrated.

POST request example


You can use a request similar to the following example:
POST <baseURL>/saas/api/v2/connectionMigration/migrate
Content-Type: application/json
Accept: application/json
icSessionId: <sessionId>

{
"sourceConn": "Migration_V1",
"targetConn": "Migration_V2",
"projectName": "V1_Assets"
}

POST response
If successful, returns the following information for the export job:

Field Type Description

id String Global unique identifier for the migration job.

name String Name of the migration job.

count Integer Number of dependent objects.

status Complex type Status of the migration.

objects Collection Objects in the migration job.

name String Returned in the objects object. Name of the asset that uses the connector.

type String Returned in the objects object. The type of asset.

sourcePath String Returned in the objects object. Complete path of the referenced asset in the old
connection.

targetPath String Returned in the objects object. Complete path of the referenced assets in the current
connection.
The target folder uses the same name as the source folder, with
"_Migration_<migration job ID>" appended to the name for identification.

status String Returned in the objects object. State of the connection updated in the asset, such as IN
PROGRESS, SUCCESS, or FAILED.

Connection migration 339


POST response examples
If successful, you might receive a response similar to the following example:
{
"id": "4l1XcURpYFjjxpopb7AJ0L",
"name": "job-1661702962208",
"count": "1",
"status": "SUCCESSFUL",
"objects": [
{
"name": "Mapping_V1",
"type": "DTEMPLATE",
"sourcePath": "/AA_Migration_Doc",
"targetPath": "/AA_Migration_Doc_Migration_4l1XcURpYFjjxpopb7AJ0L",
"status": "SUCCESSFUL"
}
]
}
If you receive an error, you might see a response similar to the following example:
{
"error": {
"code": "MigrationSvc_034",
"message": "Invalid object id/s [[242973wgfscbwasd23]]. Object resolution failed.",
"requestId": "2ataXVlgw3ydI1Yb2MA4sq"
}
}
For more information about using the connectionMigration resource to migrate the connectors to the latest
version and for the list of connectors that support migration, see the following How-To Library article:
Migrating a connector from previous versions using the Data Integration REST API

Connectors
Use this resource to request a list of connectors that are available to an organization along with connector
details. You can also use this resource to get attribute information for a specific connector type. You can use
the list of attributes that this resource provides when you create a connection for a specific connector type
since you need to provide these attributes when you create a connection of a certain type.

GET Request and Response for Available Connectors


To request a list of connectors available for an organization, submit a GET request using the following URI:
/api/v2/connector
For example, you might use the following request:
GET <serverUrl>/api/v2/connector
Content-Type: application/xml
Accept: application/xml
icSessionId: <icSessionId>

340 Chapter 4: Data Integration REST API


A successful response returns the following attributes in the connector object:

Field Type Description

name String Name of the connector.

type String Type of connector. Includes the following values:


- Salesforce
- Oracle
- SqlServer
- MySQL
- CSVFile
- ODBC
- MS_ACCESS
- FTP
- SAP
- WebServicesConsumer
- MSD

publisher String Name of the entity that published the connector.

connectorVersion Int Connector version.

shortName String Connector short name.

isPublic Boolean Whether the connector is a public or private connector. If you are interested in a
connector that is private, contact Informatica Global Customer Support.

GET Request and Response for Connector Metadata


To get metadata for a specific connector type, submit a GET request using the following URI:
/api/v2/connector/metadata?connectorName=<connectorName>
For example, you might use the following request:
GET <serverUrl>/api/v2/connector/metadata?connectorName=SQLServer
Content-Type: application/xml
Accept: application/xml
icSessionId: <icSessionId>
A successful response returns the following attributes in the connectorMetadata object:

Field Type Description

type String Type of connector, such as Salesforce or Oracle.

isStandardConnType Boolean Whether the connector is standard or custom. A "True" value indicates the
connector is standard.

attributes Connector attributes for the specified connector type. Includes information in the
attribute object for each connector object.

name String Included in the attribute object.


Name of the attribute, such as database or codePage.

label String Included in the attribute object.


Label.

Connectors 341
Field Type Description

id String Included in the attribute object.


ID.

value String Included in the attribute object.


Value of the attribute.

type Int Included in the attribute object.


Data type. For values, see “Connector data types” on page 485 .

isMandatory Boolean Included in the attribute object.


Whether the attribute is mandatory.

visible Boolean Included in the attribute object.


Whether the attribute is visible.

list String Included in the attribute object.


A list of types for the selected connector type. For example, SQL Server includes
the types SqlServer2000, SqlServer2005, SqlServer2008, and so on.

Data preview
Use this resource to preview data during mapping design. By default, the response returns up to ten rows of
data for the specified object.

GET request
To request preview data, specify the connection ID or connection name and the object name in the URI.
Optionally, you can include field format information in the request.

Use one of the following URIs:

• To request source data, use one of the following URIs:


/api/v2/connection/source/<id>/datapreview/<objectName>
/api/v2/connection/source/name/<name>/datapreview/<objectName>
• To request target data, use one of the following URIs:
/api/v2/connection/target/<id>/datapreview/<objectName>
/api/v2/connection/target/name/<name>/datapreview/<objectName>
You can receive field metadata in the response for flat file, Avro, Parquet, Orc, or JSON formats. To receive
field metadata, include file format information in the request body.

342 Chapter 4: Data Integration REST API


For flat file format, you can include the following information in the flatFileAttrs object:

Field Type Required Description

id Long Yes Field ID.

delimiter String Yes Character used to separate fields.

textQualifier String Yes Quote character that defines the boundaries of text strings.

escapeChar String Yes Character immediately preceding a field delimiter character


embedded in an unquoted string, or immediately preceding the quote
character in a quoted string.

headerLineNo Int Yes Number of header lines.

firstDataRow Int Yes The row number where the data begins in the file.

rowDelimiter Int -- Line break character. Enter the decimal code for an ASCII character
between 1 and 32.
Default is 10, which is the line feed character.

consecutiveDelimiter Boolean -- Indicates whether one or more consecutive delimiters are treated as
one.
Default is false.

multiDelimitersAsAnd Boolean -- If the delimiter you specify is more than one character, indicates
whether the characters are treated as a single delimiter or multiple
delimiters.
Default is true.

For Avro, Parquet, Orc, or JSON formats, include the following information in the dataFormat object:

Field Type Required Description

formatId String Yes Format type, for example, Avro.

schema String -- Schema format.

By default, the dataPreview response returns 10 rows. For flat file connections, you can specify the number
of rows using the numRows parameter as shown in the following example:
/api/v2/connection/source/<id>/datapreview/?objectName=<object name>&numRows=<number of
rows to view>
You can also specify the beginning row using the startRowNum parameter as shown in the following
example:
/api/v2/connection/source/<id>/datapreview/?objectName=<object name>&startRowNum=<row
number of row to begin with>
Note: If you use the connection name in the URI and the connection name includes a space, replace the
space with %20. For example:
/api/v2/connection/target/name/my%20connection/datapreview/SF_ACCOUNT.csv

GET response
Returns the dataPreview object for the requested connection ID or connection name and object name.

Data preview 343


The dataPreview object includes the following attributes:

Field Type Description

connId String Connection ID.

objectName String Name of the source or target object.

header String Column headers.

fieldName String Field name.

fieldBusinessName String Business field name.

data Includes the following attribute in the dataPreviewEntry object.

values String Included in the dataPreviewEntry object. Field values from the source or target object.

GET request examples


The following example shows a request to preview data from the SF_ACCOUNT.csv object:
GET <serverUrl>/api/v2/connection/target/0000010B000000000003/datapreview/SF_ACCOUNT.csv
HTTP/1.0
Accept:application/json
icSessionId: <icSessionId>
The following example shows a request to preview data from the [Link] object.
POST <serverUrl>/api/v2/connection/source/0000010B000000000009/datapreview?
objectName=[Link]
1.0
Content-Type: application/xml
Accept: application/xml
icSessionId: <icSessionId>
{
"@type": "dataFormat",
"dformatId": "Parquet",
"schema": "message AllData_root { optional int32 c_custkey; optional binary c_name
(UTF8); optional binary c_address (UTF8); optional int64 c_nationkey; optional binary
c_phone (UTF8); optional double c_acctbal; optional binary c_mktsegment (UTF8); required
binary c_comment (UTF8);}"
}

GET response example


You might receive a response similar to the following example:
{

"@type": "dataPreview",
"connId": "0000010B000000000003",
"objectName": "SF_ACCOUNT.csv",
"header": [
"ID",
"ISDELETED",
"MASTERRECORDID",
"NAME",
"TYPE",
"PARENTID",
"BILLINGSTREET",
"BILLINGCITY",
"BILLINGSTATE",
"BILLINGPOSTALCODE",
"BILLINGCOUNTRY",
"BILLINGLATITUDE",
"BILLINGLONGITUDE",

344 Chapter 4: Data Integration REST API


"SHIPPINGSTREET",
"SHIPPINGCITY",
"SHIPPINGSTATE",
"SHIPPINGPOSTALCODE",
"SHIPPINGCOUNTRY",
"SHIPPINGLATITUDE",
"SHIPPINGLONGITUDE",
"PHONE",
"FAX",
"ACCOUNTNUMBER",
"WEBSITE"
],

"fieldName": [
"ID",
"ISDELETED",
"MASTERRECORDID",
"NAME",
"TYPE",
"PARENTID",
"BILLINGSTREET",
"BILLINGCITY",
"BILLINGSTATE",
"BILLINGPOSTALCODE",
"BILLINGCOUNTRY",
"BILLINGLATITUDE",
"BILLINGLONGITUDE",
"SHIPPINGSTREET",
"SHIPPINGCITY",
"SHIPPINGSTATE",
"SHIPPINGPOSTALCODE",
"SHIPPINGCOUNTRY",
"SHIPPINGLATITUDE",
"SHIPPINGLONGITUDE",
"PHONE",
"FAX",
"ACCOUNTNUMBER",
"WEBSITE"
],

"fieldBusinessName": [
"ID",
"ISDELETED",
"MASTERRECORDID",
"NAME",
"TYPE",
"PARENTID",
"BILLINGSTREET",
"BILLINGCITY",
"BILLINGSTATE",
"BILLINGPOSTALCODE",
"BILLINGCOUNTRY",
"BILLINGLATITUDE",
"BILLINGLONGITUDE",
"SHIPPINGSTREET",
"SHIPPINGCITY",
"SHIPPINGSTATE",
"SHIPPINGPOSTALCODE",
"SHIPPINGCOUNTRY",
"SHIPPINGLATITUDE",
"SHIPPINGLONGITUDE",
"PHONE",
"FAX",
"ACCOUNTNUMBER",
"WEBSITE"
],

"rows": [
{
"@type": "dataPreviewEntry",
"values": [

Data preview 345


"001i000000KIAQGAA5",
"0",
"",
"ABCPoint",
"Customer - Channel",
"",
"345 ABC Park",
"Mountain View",
"CA",
"94063",
"",
"",
"",
"345 ABC Park",
"Mountain View",
"CA",
"94063",
"",
"",
"",
"(650) 555-3450",
"(650) 555-9895",
"CC978213",
"[Link]"
]
},

{
"@type": "dataPreviewEntry",
"values": [
"001i000000KIAQHAA5",
"0",
"",
"123 United, UK",
"Customer - Direct",
"",
"123 Estate,\nGateshead, Tyne and Wear NE26 3HS\nUnited Kingdom",
"",
"UK",
"94063",
"",
"",
"",
"123 Estate,\nGateshead, Tyne and Wear NE26 3HS\nUnited Kingdom",
"",
"",
"94063",
"",
"",
"",
"+44 123 4567899",
"+44 123 4567899",
"CD355119-A",
"[Link]
]

346 Chapter 4: Data Integration REST API


Data services
Use the services resource to run industry data services using Informatica Intelligent Cloud Services REST
API.

Industry data services refer to a collection of pre-built data services designed to parse, validate, and serialize
industry-specific data standards. These data services are available on the data service repository and you
can use REST APIs to run them.

When you use the services resource, use the following request header format:
<METHOD><base URL>
Content-Type: application/json
Accept: application/json
IDS-SESSION-ID: <SessionId>

POST request
To run a data service, use the following URI:
/DSRepo/rest/api/v1/services/run/<service name>
Include the following fields in the request:

Field Type Required Description

agentGroupId String Yes ID of the Secure agent group to process the request.

input Default input port for the data service.

type string Yes Whether the input is a file or data. Use one of the following
values:
- FILE: Input is a file.
- BUFFER: Input is data.

value string Yes Value of the input type.


- If the type is FILE, value of the input file path.
- If the type is BUFFER, the value is a text string.

output Default output port for the data service.

type String Yes Whether the output is provided as data or saved to a target
file path. Use one of the following values:
- FILE: Output is saved to a target file.
- BUFFER: Output is provided data.

value String Required Value of the output file path.


when type is
FILE

additionalInputs Array Additional input ports for the data service.

name String Name of the additional input port.

type String Whether the additional input is a file or data. Use one of the
following values:
- FILE: Input is a file.
- BUFFER: Input is data.

Data services 347


Field Type Required Description

value String Value of the additional input type.


- If the type is FILE, the value of the input file path.
- If the type is BUFFER, the value is a text string.

additionalOutputs Array Required for Additional output ports for the data service.
some data For HL7, provide the following additional outputs:
services. - Errors
- ErrorsFound
. For HIPPA, provide the following additional outputs:
- Errors
- ErrorsFound
- ValidationReport

name String Yes Name of the additional output port.

type String Yes Whether the additional output is provided data or saved to a
target file path. Use one of the following values:
- FILE: Output is saved to a target file.
- BUFFER: Output is provided as data.

value String Required Value of the additional output file path.


when type is
FILE

serviceParameters Array Variables in the service parameter ports.

name String Name of the service parameter.

value String Value of the service parameter.

POST request example


To run an HL7 data service, you might send a request similar to the following example:

POST <serverUrl>/DSRepo/rest/api/v1/services/run/HL7_2_6_ADT_A01_Parser
Content-Type: application/json
Accept:application/json
IDS-SESSION-ID:2l0oeVx22Rujiej7yTokmT
{
"agentGroupId": "010BM02500000000000K",
"input": {
"type": "FILE",
"value": "/root/TEST/v25_s2.txt"
},
"output": {
"type": "FILE",
"value":"/root/TEST/"
},
"additionalInputs": [],
"serviceParameters": [],
"additionalOutputs": [
{
"name": "Errors",
"type": "FILE",
"value":"/root/TEST/"
},
{
"name": "ErrorsFound",
"type": "FILE",

348 Chapter 4: Data Integration REST API


"value":"/root/TEST/"
}
]
}

POST response
When you use a POST request to run a data service, it returns a success response if successful or an error
object if an error occurs. If the request is unsuccessful, the response includes a reason for the failure.

POST response example


If the request is successful, you might receive a response similar to the following example:

{
"output": "/root/TEST/HL7_2_6_ADT_A01_Parser_output.xml",
"additionalOutputs": [
{
"type": "file",
"value": "/root/TEST/HL7_2_6_ADT_A01_Parser_Errors.xml",
"name": "Errors"
},
{
"type": "file",
"value": "/root/TEST/HL7_2_6_ADT_A01_Parser_ErrorsFound.xml",
"name": "ErrorsFound"
}
],
"message": "Success"
}

Dynamic mapping tasks


You can create a dynamic mapping task with the REST API to batch jobs together that are based on the same
mapping. You can also run the task and get details about the job.

Use the following resources for dynamic mapping tasks:

• Login. Use to log in to Informatica Intelligent Cloud Services and get the session ID to use in dynamic task
REST API calls.
• dynamictask. Use to create, view, update, or delete a dynamic mapping task.
• job. Use to start, stop, or get details about a dynamic mapping task run instance.

When you use these resources, note the following rules:

• Use JSON format.


• Use the following URL:
<serverUrl>/batch-mapping/api/v1/<API name>
• Use the following request header format:
<METHOD> <serverUrl>/<URI> HTTP/<HTTP version>
Content-Type: application/json
Accept: application/json
IDS-SESSION-ID: <SessionId>
The server URL includes the name and region of the POD that your organization uses and the Informatica
Intelligent Cloud Services domain, [Link]. If you do not know the name and region of your
organization's POD, you can find it by logging in to Informatica Intelligent Cloud Services through the user
interface. The POD information is located in the browser's address bar.

Dynamic mapping tasks 349


In the following example, [Link] is the server URL:
[Link]
Use the server URL as the base URL in the header of REST API calls.
Note: If you use a tool such as Postman that automatically includes the HTTP version, do not enter the
HTTP version in the URL. If the HTTP version appears twice in the URL, the request fails.

Logging in
Use this resource to log into Informatica Intelligent Cloud Services when you use resources that require the
IDS-SESSION-ID in the call header. The IDS-SESSION-ID is included in a successful login response.

POST request
Use the following URL:
<login URL>/identity-service/api/v1/Login
The login URL includes the region where your organization is located and the Informatica Intelligent Cloud
Services domain, [Link]. You can find your organization's login region by opening the
Informatica Intelligent Cloud Services log in page. The regional login URL is located in the browser's address
bar before you log in to Informatica Intelligent Cloud Services.

In the following example, [Link] is the region URL:


[Link]
The following table describes the fields to include in the request:

Field Type Required Description

username String Yes Informatica Intelligent Cloud Services user name.


Maximum length is 255 characters.

password String Yes Informatica Intelligent Cloud Services password.


Maximum length is 255 characters.

POST response
Returns the user object if the request is successful. Returns the error object if errors occur.

Use the session ID returned in the response for subsequent requests.

The user object includes the following attributes:

Field Type Description

sessionId String REST API session ID for the current session. Use in most REST API request headers.

sessionExpireTime String Time the session expires.

id String User ID.

name String Informatica Intelligent Cloud Services user name.

currentOrgId String Current organization ID.

350 Chapter 4: Data Integration REST API


Field Type Description

currentOrgName String Name of the current organization.

parentOrgId String ID of the parent organization.

orgId String ID of the organization the user belongs to.

orgName String Name of the organization the user belongs to.

groups String User group.

effectiveRoles String Roles assigned to the user.

effectivePrivileges String Privileges assigned to the user.

status String Status of the user.

timeZoneId String Time zone of the user. Time zone honors Daylight Saving Time. For more information,
see “Time zone codes” on page 581 .

authenticator String User authentication method.

Getting dynamic mapping task details


Use this resource to request the details of a dynamic mapping task. You can also create, update, or delete a
dynamic mapping task.

To request details or to update a dynamic task that already exists, you need the task ID. You can get the task
ID using the V3 lookup resource. To lookup object details with the V3 lookup resource, use the following URI:
/saas/public/core/v3/lookup
Include BATCH_MAPPING as the object type as shown in the following example:
{
"objects": [
{
"path": "Default/DMT_API",
"type": "BATCH_MAPPING"
}
]
}
The response returns details about the objects in the path as shown in the following example:
{
"objects": [
{
"id": "7H67JPHH9Y4g7Hm7JyL5K2",
"path": "Default/DMT_API",
"type": "BATCH_MAPPING",
"description": "",
"updatedBy": "[Link]",
"updateTime": "2021-08-27T23:45:14Z"
}
]
}
For more information about using the V3 lookup resource, see “Lookup” on page 171.

Dynamic mapping tasks 351


You can also find the task ID by opening the task in the Data Integration user interface. In the URL, the last
string of characters in the task ID.

For example, in the following URL, the task ID is 771b8ZpTcfreXm8n5RZUQ5:


[Link]
dynamicmapping/771b8ZpTcfreXm8n5RZUQ5

GET request
To request the details of a dynamic mapping task, use the task ID.

Use the following URI to request the details of a dynamic mapping task:
/batch-mapping/api/v1/dynamictask/<id>

GET response
Returns the dynamictask object for the requested task ID.

Returns the error object if errors occurred.

The following table describes the attributes in a dynamictask object:

Field Type Description

name String Name of the dynamic mapping task.

mappingId String ID of the mapping used in the task.

mappingDocType String Type of mapping used in the task.

runtimeEnvironmentId String Runtime environment used for the task.

groups Groups in the dynamic mapping task.

groupName String Included in the group object.


Name of the group.

enabled Boolean Included in the group object.


Whether the group is enabled or not.
Returns true when the group is enabled.

parameters Parameters in the dynamic mapping task.

name String Included in the parameter object.


Name of the parameter.

type String Included in the parameter object.


Type of parameter.

txName String Included in the parameter object.


Name of the transformation that uses the parameter.

uniqueName String Included in the parameter object.


Transformation name and parameter name. If no transformation name is
present, then parameter name.

352 Chapter 4: Data Integration REST API


Field Type Description

scope String Included in the parameter object.


Scope of the parameter, either DEFAULT or LOCAL.

label String Included in the parameter object.


Parameter label.

description String Included in the parameter object.


Parameter description.

retentionPolicy String Included in the parameter object.


Applicable to in-out parameters. Determines when the task retains the
current parameter value.

aggregationType String Included in the parameter object.


Applicable to in-out parameters. Type of calculation the parameter
performs.

job Jobs in the dynamic mapping task.

jobName String Included in the job object.


Name of the job.

jobType String Included in the job object.


Type of job, either USER or DEFAULT.

enabled Boolean Included in the job object.


Determines if the job is enabled.
Default is false.

stopOnError Boolean Included in the job object.


Stops the job when it encounters an error.
Default is false.

stopOnWarning Boolean Included in the job object.


Stops the job when it encounters a warning.
Default is false.

preProcessingCmds Sting Included in the job object.


List of commands to run before the task.

postProcessingCmds String Included in the job object.


List of commands to run after the task.

advSessionProperties Map Included in the job object.


Map of the advanced session properties that are set for the job.

group String Included in the job object.


Name of the group that the job belongs to.

Dynamic mapping tasks 353


Field Type Description

paramValueBindings Included in the job object.


Parameter attributes in the job.

paramDefnRef Sting Included in the paramValueBindings object.


Unique name of the parameter.

type String Included in the paramValueBindings object.


Type of parameter. Value can be one of the following types:
- Connection
- String
- Source
- Target
- INOUT
- Sequence

connection Attributes for connection type parameters.

connectionId String Included in the paramValueBindings object.


Connection ID.

connectionType String Included in the paramValueBindings object.


Type of connection.

runtimeAttrs Map Included in the paramValueBindings object.


Runtime attributes for the connection.

oprRuntimeAttrs Map Included in the paramValueBindings object.


Read/write runtime attributes.

source Attributes for source type parameters.

sourceObject Object Included in the paramValueBindings object.


Source object.

advancedFilterExpression String Included in the paramValueBindings object.


Advanced filter condition.

filterFields List of Included in the paramValueBindings object.


objects List of filter fields.

sortFields List of Included in the paramValueBindings object.


objects List of sort fields.

srcFFAttrs Object Included in the paramValueBindings object.


Flat file attributes.

ccmDataFormat Object Included in the paramValueBindings object.


Data format

customQuery String Included in the paramValueBindings object.


Custom query

354 Chapter 4: Data Integration REST API


Field Type Description

handleSpecialChars Boolean Included in the paramValueBindings object.


Determines if the task can use special characters.

runtimeAttrs Map Included in the paramValueBindings object.


Runtime Attributes

oprRuntimeAttrs Map Included in the paramValueBindings object.


Read/write runtime attributes.

string Attributes for string type parameters.

text String Included in the paramValueBindings object.


Text value for the parameter.

target Attributes for target type parameters.

objectName String Included in the paramValueBindings object.


Name of the existing target object.

objectLabel String Included in the paramValueBindings object.


Label of the existing target object.

newObjectName String Included in the paramValueBindings object.


Name of the new target file.

truncateTarget Boolean Included in the paramValueBindings object.


Determines if Data Integration truncates the target.

bulkApiDBTarget Boolean Included in the paramValueBindings object.


Determines if bulk API is used.

operationType String Included in the paramValueBindings object.


Task operation.

tgtFFAttrs String Included in the paramValueBindings object.


Flat file attributes.

tgtObjectAttributes Map Included in the paramValueBindings object.


Target object attributes.

runtimeAttrs Map Included in the paramValueBindings object.


Run time attributes

oprRuntimeAttrs Map Included in the paramValueBindings object.


Read/write runtime attributes.

ccmDataFormat Object Included in the paramValueBindings object.


Data format for CCI targets.

Dynamic mapping tasks 355


Field Type Description

dynamicFileName Boolean Included in the paramValueBindings object.


Determines if the target file name is dynamic.

handleSpecialChars Boolean Included in the paramValueBindings object.


Determines if the target object handles special characters.

INOUT Attributes for INOUT type parameters.

initialValue String Included in the paramValueBindings object.


Initial value of the in-out parameter.

datatype String Included in the paramValueBindings object.


Data type of the parameter.

precision String Included in the paramValueBindings object.


Precision of the parameter.

scale String Included in the paramValueBindings object.


Scale of the parameter.

retentionPolicy String Included in the paramValueBindings object.


Determines when the task retains the current parameter value.

aggregationType String Included in the paramValueBindings object.


Type of calculation the parameter performs.

currentValue String Included in the paramValueBindings object.


Current value of the in-out parameter.

sequence Attributes for sequence type parameters.

txName String Included in the paramValueBindings object.


Name of the Sequence transformation.

initialValue String Included in the paramValueBindings object.


Initial value of the Sequence transformation.

value String Included in the paramValueBindings object.


Current value of the Sequence transformation.

POST request
To create a dynamic mapping task, use the following URI:
/batch-mapping/api/v1/dynamictask
If you want to specify a location for the task, include the container ID as a query parameter in the request. If
the container ID isn't included in the request, the task is created in the Default folder. You can find the
container ID for a project or folder in the Data Integration user interface. On the Explore page, select the
folder. In the URL, the last string of characters in the container ID.

356 Chapter 4: Data Integration REST API


For example, in the following URL, the container ID is dH2DuGJYda7ijgW4Sm32sR:
[Link]
dH2DuGJYda7ijgW4Sm32sR
The following table describes the attributes you can include in an dynamictask object:

Field Type Required Description

name String Yes Name of the dynamic mapping task.

mappingId String Yes ID of the mapping used in the task.

mappingDocType String Yes Type of mapping used in the task. Include one of the following
types:
- MAPPING. Use for mappings outside of advanced mode.
- AT_SCALE_MAPPING. Use for mappings in advanced mode.

runtimeEnvironmentId String Yes Runtime environment used for the task.

groups Groups in the dynamic mapping task.

groupName String Yes Include in the group object.


Name of the group.

enabled Boolean Include in the group object.


Determines if the group is enabled or not.

parameters Parameters in the dynamic mapping task.

name String Yes Include in the parameters object.


Name of the parameter in the mapping.

type String Yes Include in the parameters object.


Type of parameter. Include one of the following types:
- SOURCE_CONNECTION
- SOURCE_OBJECT
- TARGET_CONNECTION
- TARGET_OBJECT
- LOOKUP_CONNECTION
- LOOKUP_OBJECT
- TRANSFORM_CONNECTION
- STRING
- GROUPBY
- FIELD
- EXPRESSION
- EXPRESSION_FIELDS
- CONDITION
- FIELD_MAPPING
- SORTLIST
- INOUT_INT
- INOUT_BIGINT
- INOUT_STRING
- INOUT_TEXT
- INOUT_DECIMAL
- INOUT_DOUBLE
- INOUT_DATETIME
- SEQUENCE

Dynamic mapping tasks 357


Field Type Required Description

txName String Include in the parameters object.


Name of the transformation that uses the parameter.

uniqueName String Yes Include in the parameters object.


Transformation name and parameter name. If no
transformation name is present, then parameter name.

Scope String Yes Include in the parameters object.


Scope of the parameter, either default or local.

label String Include in the parameters object.


Parameter label.

description String Include in the parameters object.


Parameter description.

retentionPolicy String Include in the parameters object.


Applicable to in-out parameters. Determines when the task
retains the current parameter value.
Use one of the following values:
- ON_SUCCESS_OR_WARNING
- ON_SUCCESS
- ON_WARNING
- NEVER

aggregationType String Include in the parameters object.


Applicable to in-out parameters. Type of calculation the
parameter performs.
Use one of the following values:
- MAX
- MIN
- COUNT

job Jobs in the dynamic mapping task.

jobName String Yes Include in the job object.


Name of the job.

jobType String Yes Include in the job object.


Type of job. Use either USER or DEFAULT.

enabled Boolean Include in the job object.


Determines if the job is enabled.
Default is false.

stopOnError Boolean Include in the job object.


Stops the job when it encounters an error.
Default is false.

stopOnWarning Boolean Include in the job object.


Stops the job when it encounters a warning.
Default is false.

358 Chapter 4: Data Integration REST API


Field Type Required Description

preProcessingCmds String Include in the job object.


List of commands to run before the task.

postProcessingCmds String Include in the job object.


List of commands to run after the task.

advSessionProperties Map Include in the job object.


Map of the advanced session properties that are set for the
job.

group String Yes Include in the job object.


Name of the group that the job belongs to.

paramValueBindings Parameter attributes in each job.

paramDefnRef Sting Yes Include in the paramValueBindings object.


Unique name of the parameter.

type String Yes Include in the paramValueBindings object.


Type of parameter. Use one of the following types:
- Connection
- String
- Source
- Target
- INOUT
- Sequence

connection Attributes for connection type parameters.

connectionId String Include in the paramValueBindings object.


Connection ID.

connectionType String Include in the paramValueBindings object.


Type of connection. Use one of the following types:
- SOURCE
- TARGET
- LOOKUP
- TRANSFORM

runtimeAttrs Map Include in the paramValueBindings object.


Runtime attributes for the connection.

oprRuntimeAttrs Map Include in the paramValueBindings object.


Read/write runtime attributes.

source Attributes for source type parameters.

sourceObject Object Include in the paramValueBindings object.


Source object.

advancedFilterExpression String Include in the paramValueBindings object.


Advanced filter condition.

Dynamic mapping tasks 359


Field Type Required Description

filterFields List of Include in the paramValueBindings object.


objects List of filter fields.

sortFields List of Include in the paramValueBindings object.


objects List of sort fields.

srcFFAttrs Object Include in the paramValueBindings object.


Flat file attributes.

ccmDataFormat Object Include in the paramValueBindings object.


Data format for CCI sources.

customQuery String Include in the paramValueBindings object.


Custom query.

handleSpecialChars Boolean Include in the paramValueBindings object.


Determines if the task can use special characters.

runtimeAttrs Map Include in the paramValueBindings object.


Runtime attributes for the source.

oprRuntimeAttrs Map Include in the paramValueBindings object.


Read/write runtime attributes.

string Attributes for string type parameters.

text String Include in the paramValueBindings object.


Text value for parameter.

target Attributes for target type parameters.

objectName String Include in the paramValueBindings object.


Name of the existing target object.

objectLabel String Include in the paramValueBindings object.


Label of the existing target object.

newObjectName String Include in the paramValueBindings object.


Name of the new target file.

truncateTarget Boolean Include in the paramValueBindings object.


Determines if Data Integration truncates the target.

bulkApiDBTarget Boolean Include in the paramValueBindings object.


Determines if bulk API is used.

operationType String Include in the paramValueBindings object.


Task operation.

360 Chapter 4: Data Integration REST API


Field Type Required Description

tgtFFAttrs String Include in the paramValueBindings object.


Flat file attributes.

tgtObjectAttributes Map Include in the paramValueBindings object.


Target object attributes.

runtimeAttrs Map Include in the paramValueBindings object.


Run time attributes.

oprRuntimeAttrs Map Include in the paramValueBindings object.


Read/write runtime attributes.

ccmDataFormat Object Include in the paramValueBindings object.


Data format for CCI targets.

dynamicFileName Boolean Include in the paramValueBindings object.


Determines if the target file name is dynamic.

handleSpecialChars Boolean Include in the paramValueBindings object.


Determines if the target object handles special characters.

INOUT Attributes for INOUT type parameters.

initialValue String Include in the paramValueBindings object.


Initial value of the in-out parameter.

datatype String Include in the paramValueBindings object.


Data type of the parameter.

precision String Include in the paramValueBindings object.


Precision of the parameter.

scale String Include in the paramValueBindings object.


Scale of the parameter.

retentionPolicy String Include in the paramValueBindings object.


Determines when the task retains the current parameter value.
Use one of the following values:
- ON_SUCCESS_OR_WARNING
- ON_SUCCESS
- ON_WARNING
- NEVER

aggregationType String Include in the paramValueBindings object.


Type of calculation the parameter performs. Use one of the
following values:
- MAX
- MIN
- COUNT

Dynamic mapping tasks 361


Field Type Required Description

currentValue String Include in the paramValueBindings object.


Current value of the in-out parameter.

sequence Attributes for sequence type parameters.

txName String Include in the paramValueBindings object.


Name of the Sequence transformation.

initialValue String Include in the paramValueBindings object.


Initial value of the Sequence transformation.

value String Include in the paramValueBindings object.


Current value of the Sequence transformation.

POST response
If successful, returns the dynamictask object that you created or updated. Returns the error object if errors
occur.

PUT request
To update a dynamic mapping task, include the task ID as shown in the following example:
/batch-mapping/api/v1/dynamictask/<Id>
When you update a dynamic mapping task, include the same attributes as a POST request.

PUT response
Returns the task ID, state, and any validation errors as shown in the following example:
{
"frsId": "1JVMWZjVPMhKY4SdxcGd60",
"state": "VALID",
"validationErrors": []
}

DELETE request
To delete a dynamic mapping task, use the task ID in the following URI:
/batch-mapping/api/v1/dynamictask/<id>

DELETE response
Returns the 200 response code if the request is successful.

Returns the error object if errors occur.

POST example
To create a new dynamic mapping task with the REST API, you might use the following request:
POST [Link]
Content-Type: application/json
Accept: application/json
IDS-SESSION-ID: jpaybAKQMsmdt7vLJ02z0s
{
"orgId": "2ij4X7Pd63ibnquEQyy9wA",
"name": "DMT_API",
"description": "",
"mappingId": "01003Y1700000000005X",
"mappingDocType": "MAPPING",

362 Chapter 4: Data Integration REST API


"runtimeEnvironmentId": "01003Y25000000000004",
"scheduleId": null,
"state": "VALID",
"groups": [
{
"groupName": "Group_1",
"enabled": true
},
{
"groupName": "Group_2",
"enabled": false
}
],
"parameters": [
{
"uniqueName": "Source:SrcCon",
"name": "SrcCon",
"txName": "Source",
"type": "SOURCE_CONNECTION",
"scope": "DEFAULT",
"label": null,
"description": "",
"retentionPolicy": null,
"aggregationType": null
},
{
"uniqueName": "Source:SrcObj",
"name": "SrcObj",
"txName": "Source",
"type": "SOURCE_OBJECT",
"scope": "LOCAL",
"label": null,
"description": "",
"retentionPolicy": null,
"aggregationType": null
},
{
"uniqueName": "Target:TrgCon",
"name": "TrgCon",
"txName": "Target",
"type": "TARGET_CONNECTION",
"scope": "DEFAULT",
"label": null,
"description": "",
"retentionPolicy": null,
"aggregationType": null
},
{
"uniqueName": "Target:TrgObj",
"name": "TrgObj",
"txName": "Target",
"type": "TARGET_OBJECT",
"scope": "LOCAL",
"label": null,
"description": "",
"retentionPolicy": null,
"aggregationType": null
},
{
"uniqueName": "Lookup:Lkcon",
"name": "Lkcon",
"txName": "Lookup",
"type": "LOOKUP_CONNECTION",
"scope": "DEFAULT",
"label": null,
"description": "",
"retentionPolicy": null,
"aggregationType": null
},
{
"uniqueName": "Lookup:lkObj",

Dynamic mapping tasks 363


"name": "lkObj",
"txName": "Lookup",
"type": "LOOKUP_OBJECT",
"scope": "DEFAULT",
"label": null,
"description": "",
"retentionPolicy": null,
"aggregationType": null
},
{
"uniqueName": "Lkp",
"name": "Lkp",
"txName": null,
"type": "EXPRESSION",
"scope": "LOCAL",
"label": null,
"description": "",
"retentionPolicy": null,
"aggregationType": null
},
{
"uniqueName": "ExParam",
"name": "ExParam",
"txName": null,
"type": "EXPRESSION",
"scope": "LOCAL",
"label": null,
"description": "",
"retentionPolicy": null,
"aggregationType": null
}
],
"jobs": [
{
"jobUUID": "ae1lR3k2ccYgXNeFQe4DIT",
"jobName": "<Default>",
"jobType": "DEFAULT",
"enabled": false,
"stopOnError": false,
"stopOnWarning": false,
"preProcessingCmds": [],
"postProcessingCmds": [],
"advSessionProperties": {},
"paramValueBindings": [
{
"type": "Connection",
"paramDefnRef": "Source:SrcCon",
"connectionId": "01003Y0B000000000006",
"connectionType": null,
"runtimeAttrs": {},
"oprRuntimeAttrs": {}
},
{
"type": "Connection",
"paramDefnRef": "Target:TrgCon",
"connectionId": "01003Y0B00000000001Q",
"connectionType": null,
"runtimeAttrs": {},
"oprRuntimeAttrs": {}
},
{
"type": "Connection",
"paramDefnRef": "Lookup:Lkcon",
"connectionId": "01003Y0B00000000001Q",
"connectionType": null,
"runtimeAttrs": {},
"oprRuntimeAttrs": {}
},
{
"type": "Source",
"paramDefnRef": "Lookup:lkObj",

364 Chapter 4: Data Integration REST API


"sourceObject": {
"name": "EMP",
"label": "EMP",
"metadataUpdated": false
},
"advancedFilterExpression": null,
"userDefinedJoin": null,
"filterFields": [],
"sortFields": [],
"srcFFAttrs": null,
"overriddenFields": [],
"ccmDataFormat": null,
"customQuery": null,
"handleSpecialChars": false,
"runtimeAttrs": {},
"oprRuntimeAttrs": {}
}
],
"group": null
},
{
"jobUUID": "21rswJo8MnOgUTtfCq96AR",
"jobName": "Job_1",
"jobType": "USER",
"enabled": true,
"stopOnError": false,
"stopOnWarning": false,
"preProcessingCmds": [],
"postProcessingCmds": [],
"advSessionProperties": {},
"paramValueBindings": [
{
"type": "Source",
"paramDefnRef": "Source:SrcObj",
"sourceObject": {
"name": "[Link]",
"label": "[Link]",
"metadataUpdated": false
},
"advancedFilterExpression": null,
"userDefinedJoin": null,
"filterFields": [],
"sortFields": [],
"srcFFAttrs": null,
"overriddenFields": [],
"ccmDataFormat": null,
"customQuery": null,
"handleSpecialChars": false,
"runtimeAttrs": {},
"oprRuntimeAttrs": {}
},
{
"type": "Target",
"paramDefnRef": "Target:TrgObj",
"objectName": "CONTACT",
"objectLabel": "CONTACT",
"newObjectName": null,
"truncateTarget": false,
"bulkApiDBTarget": false,
"operationType": null,
"tgtFieldRefs": {},
"targetUpdateColumns": [],
"tgtFFAttrs": null,
"tgtObjectAttributes": {},
"runtimeAttrs": {},
"oprRuntimeAttrs": {},
"handleSpecialChars": false,
"ccmDataFormat": null,
"dynamicFileName": false
},
{

Dynamic mapping tasks 365


"type": "String",
"paramDefnRef": "Lkp",
"text": " EMP_ID||EMP_NAME"
},
{
"type": "String",
"paramDefnRef": "ExParam",
"text": " IsNull(EMP_ID)"
}
],
"group": "Group_1"
},
{
"jobUUID": "6pavcOH4kwZewe1XL1khoF",
"jobName": "Job_2",
"jobType": "USER",
"enabled": true,
"stopOnError": false,
"stopOnWarning": false,
"preProcessingCmds": [],
"postProcessingCmds": [],
"advSessionProperties": {},
"paramValueBindings": [
{
"type": "Source",
"paramDefnRef": "Source:SrcObj",
"sourceObject": {
"name": "Boston_Customers.csv",
"label": "Boston_Customers.csv",
"metadataUpdated": false
},
"advancedFilterExpression": null,
"userDefinedJoin": null,
"filterFields": [],
"sortFields": [],
"srcFFAttrs": null,
"overriddenFields": [],
"ccmDataFormat": null,
"customQuery": null,
"handleSpecialChars": false,
"runtimeAttrs": {},
"oprRuntimeAttrs": {}
},
{
"type": "Target",
"paramDefnRef": "Target:TrgObj",
"objectName": "CUSTINFO_TYPE",
"objectLabel": "CUSTINFO_TYPE",
"newObjectName": null,
"truncateTarget": false,
"bulkApiDBTarget": false,
"operationType": null,
"tgtFieldRefs": {},
"targetUpdateColumns": [],
"tgtFFAttrs": null,
"tgtObjectAttributes": {},
"runtimeAttrs": {},
"oprRuntimeAttrs": {},
"handleSpecialChars": false,
"ccmDataFormat": null,
"dynamicFileName": false
},
{
"type": "String",
"paramDefnRef": "Lkp",
"text": "NAME=Firstname"
},
{
"type": "String",
"paramDefnRef": "ExParam",
"text": "Firstname||Lastname"

366 Chapter 4: Data Integration REST API


}
],
"group": "Group_2"
}
]
}

Running a dynamic mapping task


When you use the REST API to run a dynamic mapping task, use the REST API version 1 job resource to start
or stop the job. You can also get details about the job.

Do not use the platform REST API version 2 job resource to get the status of a dynamic mapping task.

If your organization uses projects and folders, use the REST API version 3 lookup resource to retrieve the
task ID. This ID is the federated task ID, which you must include in the POST request.

GET request
To get details of a dynamic mapping task run, use the following URI:
/batch-mapping/api/v1/Job/monitor/task/<Id>/run/<runId>

GET response
If successful, returns the job status.

If unsuccessful, the response includes a reason for the failure.

For example, you might get the following response when you request details of a completed dynamic
mapping task:
{
"taskId": "jUJNIX39Z6ZbR8KZCm2ieS",
"taskFrsId": "k2AE77O06oYg6NvrOtKt6t",
"taskName": "Dynamic Mapping Task2",
"instanceId": 1,
"startedBy": "user@[Link]",
"startTime": "2021-08-26T16:28:11.000Z",
"updateTime": "2021-08-26T16:28:35.000Z",
"endTime": "2021-08-26T16:28:35.000Z",
"runtimeEnvironment": "test1",
"runtimeEnvironmentId": "01000025000000000002",
"status": "COMPLETED",
"successRows": 3,
"errorRows": 0,
"saasMappingId": "01000017000000000007",
"mappingName": "dsst__copy_data_new_tgt_With_SortList",
"mappingFrsId": "5A90bRPboO0dpMQ8F2nkgy",
"mappingDocType": "MAPPING",
"runContext": "API",
"scheduleName": null,
"jobs": [
{
"jobName": "Job_1",
"jobUUID": "78OZ7JlUNSCd09kwQWXbUf",
"groupName": "Group_1",
"saasJobRunId": 52,
"saasLogId": "010000C100000000040H",
"startTime": "2021-08-26T16:28:18.000Z",
"updateTime": "2021-08-26T16:28:33.000Z",
"endTime": "2021-08-26T16:28:33.000Z",
"errorMessage": null,
"status": "COMPLETED",
"failedSourceRows": 0,
"successSourceRows": 3,
"failedTargetRows": 0,
"successTargetRows": 3,

Dynamic mapping tasks 367


"enabled": true,
"sessionLogUrl": null
}
]
}

Start POST request


To run a dynamic mapping task, use the following URI:
/batch-mapping/api/v1/Job
Include the federated task ID in the request as in the following example:
{
"taskFrsId": "k2AE77O06oYg6NvrOtKt6t"
}

Start POST response


Returns the run ID and the federated task ID.

For example, if you run a dynamic mapping task for the second time, you get the following response:
{
"runId": 2,
"taskFrsId": "k2AE77O06oYg6NvrOtKt6t"
}

Stop POST request


To stop a dynamic mapping task run, use the following URI
/batch-mapping/api/v1/Job/stop
Include the task ID and the job run ID attributes in the job object as shown in the following example:
{
"taskFrsId": "gScmpuSzjSdcbNPFNYbbcg",
"runId": 10
}

Stop POST response


Returns the 200 success object if the request is successful. Returns the error object if errors occur.

Fields
A field is a subset of a data structure that represents a single data item. For example, a database table
column is a field. You can request and update field details for a source or target object.

Getting field details


Use the fields resource to get field details for a source or target object.

GET request
To get field details for a source object, use one of the following URIs:

• If you want to specify the source connection ID, use /api/v2/connection/source/<id>/field/<object


name>.
• If you want to specify the source connection name and the source object name, use /api/v2/
connection/source/name/<name>/field/<object name>.

368 Chapter 4: Data Integration REST API


To get field details for a target object, use one of the following URIs:

• If you want to specify the target connection ID, use /api/v2/connection/target/<id>/field/<object


name>.
• If you want to specify the target connection name and the target object name, use /api/v2/connection/
target/name/<name>/field/<object name>.
You can use the following URI if the object name includes a forward slash (/):
/api/v2/connection/<source or target>/<id>/fields?objectName=<objectName>
If you use the connection name in the URI and the connection name includes a space, replace the space with
%20. For example:
/api/v2/connection/source/name/my%20connection/field/customer
Note: The object name is case-sensitive.

GET response
The response returns the field object for each field in the source or target object and an error object if an
error occurs.

The following table describes the attributes in the field object that might be returned based on the connection
type:

Field Type Description

id Long Field ID.

name String Field name.

type String Field type.

label String Field label.

parentObject String Parent object, if applicable.

precision Int Length of the field in bytes.

pcType String PowerCenter data type.

scale Int Number of digits after the decimal point for numeric values.

columnIndex Int Column index.

isKey Boolean Whether the field is a used as a key.

isExternalId Boolean Whether the field is used as an external ID.

isSfldLookup Boolean Whether the field is used as a Salesforce ID lookup field.

isNullible Boolean Whether the field can contain null values.

isUnique Boolean Whether the field requires unique values.

isCreateable Boolean Whether the field accepts new values.

isCalculated Boolean Whether the field is calculated.

Fields 369
Field Type Description

isUpdateable Boolean Whether the field allows updates.

isFilterable Boolean Whether the field can be filtered.

linkedFields String For a masking task, the source field mapped to the input field of the mapplet.

relatedInfos Information about related fields included in a fieldRelatedInfo object for each related
field.

fieldId Long Included in the fieldRelatedInfo object.


Field ID.

referenceObject String Included in the fieldRelatedInfo object. Object that includes the field.

relationshipName String Included in the fieldRelatedInfo object. Relationship to object.

references Reference information included in a fieldRelatedInfo object for each related field.

fieldId Long Included in the fieldRelatedInfo object.


Field ID.

referenceObject String Included in the fieldRelatedInfo object.


Object that includes the field.

relationshipName String Included in the fieldRelatedInfo object.


Relationship to object.

javaType String Java data type.

showLabel Boolean Whether to show the field label.

naturalOrder Int Position number of the field in the source.

customProperties Custom properties for the field.

GET example
To get field details for a Customer source object available through the source connection with ID
0002D420000000J, you might use the following request:
GET <serverUrl>/api/v2/connection/source/0002D420000000J/field/Customer
Content-Type: application/xml
Accept: application/xml
icSessionId: <icSessionId>
A successful request returns the fields object for each field in the Customer source object.

370 Chapter 4: Data Integration REST API


Updating fields in flat files
Use the fields resource to update fields in a source or target object from a flat file connection.

POST request
Use one of the following URIs:

• For a source object, use /api/v2/connection/source/<id>/field/<objectName>.


• For a target object, use /api/v2/connection/target/<id>/field/<objectName>.
When you update the fields in the object, the flat file attributes in the request override the default attributes
for the object.

The following table describes the attributes you can include in the flatFileAttrs object that you specify in the
request:

Field Type Required Description

id Long Yes Field ID.

delimiter String Yes Character used to separate fields.

textQualifier String Yes Quote character that defines the boundaries of text strings.

escapeChar String Yes Character immediately preceding a field delimiter character


embedded in an unquoted string, or immediately preceding the quote
character in a quoted string.

headerLineNo Int Yes Number of header lines.

firstDataRow Int Yes The row number where the data begins in the file.

rowDelimiter Int -- Line break character. Enter the decimal code for an ASCII character
between 1 and 32.
Default is 10, which is the line feed character.

consecutiveDelimiter Boolean -- Indicates whether one or more consecutive delimiters are treated as
one.
Default is false.

multiDelimitersAsAnd Boolean -- If the delimiter you specify is more than one character, indicates
whether the characters are treated as a single delimiter or multiple
delimiters.
Default is true.

POST request example


To update fields in a flat file source object, you might use the following request:
POST <serverUrl>/api/v2/connection/source/0000010B000000000021/field/test_precision.csv
1.0
Content-Type: application/xml
Accept: application/xml
icSessionId
{
"@type": "flatFileAttrs",
"delimiter": ",",
"textQualifier": "'",
"escapeChar": "\\"
}

Fields 371
Updating fields in objects with non-flat file formats
Use the fields resource to update fields in a source or target object in a non-flat file format such as Avro,
Parquet, ORC, or JSON.

POST request
For Avro, Parquet, ORC, and JSON formats, you can update fields in the source or target object by including
the format type and optionally, the schema. If you don't include the schema, the schema format is inferred
from the data file.

Use one of the following URIs:

• For a source object, use /api/v2/connection/source/<id>/fields?objectName=<object name>.


• For a target object, use /api/v2/connection/target/<id>/fields?objectName=<object name>.
The following table describes the attributes to include in the dataFormat object:

Field Type Required Description

formatId String Yes Format type, for example, Avro.

schema String -- Schema format.

POST request example


To update fields in a Parquet source object, you might use the following request:
POST <serverUrl>/api/v2/connection/source/0100000B00000000000F/fields?
objectName=[Link]%[Link]
1.0
Content-Type: application/xml
Accept: application/xml
icSessionId: <icSessionId>
{
"@type": "dataFormat",
"dformatId": "Parquet",
"schema": "message AllData_root { optional int32 c_custkey; optional binary c_name
(UTF8); optional binary c_address (UTF8); optional int64 c_nationkey; optional binary
c_phone (UTF8); optional double c_acctbal; optional binary c_mktsegment (UTF8); required
binary c_comment (UTF8);}"
}
A successful response might look like the following example:
[
{
"@type": "field",
"id": -1,
"name": "c_custkey",
"type": "parquet_int32",
"uniqueName": "c_custkey",
"label": "c_custkey",
"parentObject": "customer_tgt.parquet",
"pcType": "INTEGER",
"precision": 10,
"scale": 0,
"columnIndex": -1,
"isKey": false,
"isExternalId": false,
"isSfIdLookup": false,
"isNullable": true,
"isUnique": false,
"isCreateable": false,
"isUpdateable": true,
"isFilterable": true,

372 Chapter 4: Data Integration REST API


"isCalculated": false,
"javaType": "[Link]",
"showLabel": true,
"naturalOrder": 0,
"linkedFields": [],
"relatedInfos": [],
"references": []
},
{
"@type": "field",
"id": -1,
"name": "c_address",
"type": "parquet_string",
"uniqueName": "c_address",
"label": "c_address",
"parentObject": "customer_tgt.parquet",
"pcType": "NSTRING",
"precision": 4000,
"scale": 0,
"columnIndex": -1,
"isKey": false,
"isExternalId": false,
"isSfIdLookup": false,
"isNullable": true,
"isUnique": false,
"isCreateable": false,
"isUpdateable": true,
"isFilterable": true,
"isCalculated": false,
"javaType": "[Link]",
"showLabel": true,
"naturalOrder": 2,
"linkedFields": [],
"relatedInfos": [],
"references": []
},
{
"@type": "field",
"id": -1,
"name": "c_nationkey",
"type": "parquet_int64",
"uniqueName": "c_nationkey",
"label": "c_nationkey",
"parentObject": "customer_tgt.parquet",
"pcType": "BIGINT",
"precision": 19,
"scale": 0,
"columnIndex": -1,
"isKey": false,
"isExternalId": false,
"isSfIdLookup": false,
"isNullable": true,
"isUnique": false,
"isCreateable": false,
"isUpdateable": true,
"isFilterable": true,
"isCalculated": false,
"javaType": "[Link]",
"showLabel": true,
"naturalOrder": 3,
"linkedFields": [],
"relatedInfos": [],
"references": []
},
{
"@type": "field",
"id": -1,
"name": "FileName",
"type": "string",
"uniqueName": "FileName",
"label": "FileName",

Fields 373
"parentObject": "customer_tgt.parquet",
"pcType": "NSTRING",
"precision": 1024,
"scale": 0,
"columnIndex": -1,
"isKey": false,
"isExternalId": false,
"isSfIdLookup": false,
"isNullable": false,
"isUnique": false,
"isCreateable": false,
"isUpdateable": true,
"isFilterable": true,
"isCalculated": false,
"javaType": "[Link]",
"showLabel": true,
"naturalOrder": 8,
"linkedFields": [],
"relatedInfos": [],
"references": []
}
]

File listeners
Use the filelisteners resource to create, update, delete, run a file listener, and change the owner of a file
listener association from one user to another. Informatica Intelligent Cloud Services can use file listeners to
monitor specific folders. Informatica Intelligent Cloud Services are notified by using a call-back API when
new files arrive at a monitored folder and when files in the folder are updated or deleted.

Consider the following when you use the filelisteners resource:

• Use JSON format.


• Use the following base URL:
<serverUrl>/mftsaas/api/v1/<API name>
• Use the following request header format:
<METHOD> <serverUrl>/<URI> HTTP/<HTTP version>
Content-Type: application/json
Accept: application/json
IDS-SESSION-ID: <SessionId>
Note: If you use a tool such as Postman that automatically includes the HTTP version, do not enter the HTTP
version in the URL. If the HTTP version appears twice in the URL, the request fails.

Complete the following tasks to run and monitor file listeners:

• Send a GET request to view details of a file listener. See “Getting file listener details” on page 375.
• Send a POST request to create a file listener. See “Creating a file listener” on page 379.
• Send a PUT request to update an existing file listener. See “Updating a file listener” on page 385.
• Send a start POST request to start a file listener job. See “Starting a file listener” on page 390.
• Send a stop POST request to stop the file listener job manually. See “Stopping a file listener” on page 391.
• Send a POST request to change the owner a file listener association. See “Changing the owner of a file
listener association” on page 393.

374 Chapter 4: Data Integration REST API


Getting file listener details
Use the GET request to view file listeners details. You can view the details for a particular file listener or view
details for all file listeners in your organization.

GET request
To view the details of a particular file listener, include the file listener ID in the following URI:

Get <serverUrl>/mftsaas/api/v1/filelisteners/<filelistener ID>

To view the details for all of the file listeners in the organization, omit the file listener ID.

GET response
A request for file listener details returns the following information:

Field Type Description

id String ID number associated with the file listener.

name String Name of the file listener.

description String Description of the file listener.

status String Status of the file listener.


- enabled. Listens to files on the designated folder.
disabled. Does not listen to files on the designated
folder.

agentGroup Numeric Runtime environment that contains the Secure Agent


used to run the file listener.

type String Type of the connection to which the file listener listens.

connection String Connection to which the file listener listens.

folderPath String Path to the folder on the connection to which the file
listener listens.

filePattern String File name pattern to which the file listener listens.

Post Action String Determines the action the file listener must perform
after the file listener listens to the events.
You can select the post action as Delete only if the file
pattern is an indicator file. Default is None.
The following connection types support the Post Action
option:
- Local folder
- Advanced FTP V2
- Advanced FTPS V2
- Advanced SFTP V2
- Azure Data Lake Store Gen2

File listeners 375


Field Type Description

patternType String The file pattern.


- wildcard. Use wildcard patterns of file name.
- regex. Use regular expression to match the file
pattern. Consider the following examples:
- Use the following syntax to listen to all files except
for files with a name that contains out, foo, and
baz: ^(?!.*(?:out|baz|foo)).*$ à all
except
- Use the following syntax to listen to all files with
doc and docx, pdf extensions: ([a-zA-Z0-9\s_\
\.\-\(\):])+(.doc|.docx|.pdf)$ à
- indicator file. Use the file name to which the file
listener listens.

mandatory String Defines whether rule values are mandatory.

recursive String Defines whether rule values are recursive.

type String Frequency at which the file listener runs, daily, weekly, or
monthly.

timezone String Time zone that refers to the start and end time.

startDate Date/Time Date on which the file listener starts running.

endDate Date/Time Date until which the file listener runs.

runIndefinitely String Whether the file listener runs without an end date.

startsAt Date/Time Time of day when the file listener starts running.

endsAt Date/Time Time of day when the file listener stops running.

frequency Numeric Frequency at which the file listener checks for files in
the folder.

frequencyUnit String Unit of frequency to which file listener checks for files in
the folder, by seconds, minutes, or hours.

listenerEvents String Determines when the file listener sends notifications to


the services that are registered to it. Response to each
event when the event is set to true is as follows:
- arrive. Send notifications when files arrive at the
folder to which the file listener listens.
- update. Send notifications when files in the folder to
which the file listener listens are updated.
- delete. Send notifications when files in the folder to
which the file listener listens are deleted.

376 Chapter 4: Data Integration REST API


Field Type Description

stopWhenRulesMet String Whether the file listener stops listening to the folder
when the listener rules are met. Set to one of the
following values:
- false. The file listener notifies the registered
application on events and continues to listen for
subsequent events.
- true. The file listener stops listening to the folder
when the first event of file deletion occurs in the
folder.

checkFileStability String Enter one of the following values.


- [Link] file listener does not verify whether the
entire file is copied to the folder before notifying the
registered services.
- true. The file listener verifies whether the entire file
is copied to the folder before notifying the registered
services.
Default is true.

stabilityCheckInterval Time Time in seconds that a file listener waits to check for file
stability.
You can specify a value in the stabilityCheckInterval field
only if the checkFileStability option is set to true.

notifyExistingFiles String The first time the file listener runs, it sends a
notification if files exist in the folder to which it listens,
of the parameter is set to true.

excludeFileEventsWhenNotRun String Determines if you want to exclude file events that occur
ning when a file listener is not running.

continueOnError String Determines if you want the file listener to continue to


retry and run in case of failures, such as temporary
network disruption.

location String Location of the project folder that contains the file
listener component.

createTime Date/Time Time when the component was created.

lastupdateTime Date/Time Time when the component was last updated.

GET response example for one file listener


To view file listener details of the file listener with ID eX5qlosUfEHbwvNwGpRwQd, you might use the following
request:
Get <serverUrl>/mftsaas/api/v1/filelisteners/<filelistener ID>
Content-Type: application/json
Accept: application/json
IDS-SESSION-ID: eX5qlosUfEHbwvNwGpRwQd
If your request is successful, you might receive a response similar to the following example:
{
"id": "eX5qlosUfEHbwvNwGpRwQd",
"name": "FL512087",
"description": "Demo",

File listeners 377


"status": "ENABLE",
"agentGroup": "01000025000000000002",
"connection": {
"type": "local",
"name": "",
"connId": ""
},
"rules": [
{
"id": 10052,
"folderPath": "C:\\temp1",
"filePattern": "*.txt",
"postAction": "NONE",
"patternType": "wildcard",
"mandatory": false,
"recursive": false
}
],
"scheduleDefinition": {
"type": "DAILY_WITH_INTERVAL",
"timezone": "IST",
"startDate": "20181227",
"endDate": "20181227",
"runIndefinitely": false,
"startsAt": "1015",
"endsAt": "2355",
"frequency": 15,
"frequencyUnit": "SECONDS"
},
"stopWhenRulesMet": false,
"listenerEvents": {
"arrive": true,
"update": true,
"delete": true
},
"checkFileStability": true,
"stabilityCheckInterval": 10,
"notifyExistingFiles": false,
"excludeFileEventsWhenNotRunning": true,
"continueOnError": true,
"location": {
"folderId": "avVCKODMM0RdSmcNWDnrKi",
"folderName": "New",
"projectId": "3iWWHkLbM2giVppBmJmZgV",
"projectName": "Default"
},
"createTime": "2019-02-12T07:03:49Z",
"lastUpdatedTime": "2019-02-12T07:03:49Z"
}

Response example to view all file listeners


If your request to view file listener details is successful, you might receive a response similar to the following
example:
{
"listeners": [
{
"id": "8h9hng2kRokf2Db6Xb4pA8",
"name": "dfgdfg",
"description": "",
"status": "ENABLE",
"stopWhenRulesMet": false,
"checkFileStability": false,
"notifyExistingFiles": false,
"excludeFileEventsWhenNotRunning": true,
"continueOnError": true,
"location": {
"projectId": "3iWWHkLbM2giVppBmJmZgV",
"projectName": "Default"
},

378 Chapter 4: Data Integration REST API


"createTime": "2019-01-28T05:31:00Z",
"lastUpdatedTime": "2019-01-28T05:31:00Z"
},
{
"id": "bQdKQmGlFUUgS85AevLkqi",
"name": "FL123",
"description": "xsdfsdfsdf",
"status": "ENABLE",
"stopWhenRulesMet": false,
"checkFileStability": true,
"stabilityCheckInterval": 10,
"notifyExistingFiles": false,
"excludeFileEventsWhenNotRunning": true,
"continueOnError": true,
"location": {
"projectId": "3iWWHkLbM2giVppBmJmZgV",
"projectName": "Default"
},
"createTime": "2019-01-24T05:20:26Z",
"lastUpdatedTime": "2019-01-25T06:52:40Z"
},
{
"id": "eX5qlosUfEHbwvNwGpRwQd",
"name": "FL512087",
"description": "Demo",
"status": "ENABLE",
"stopWhenRulesMet": false,
"checkFileStability": true,
"stabilityCheckInterval": 10,
"notifyExistingFiles": false,
"excludeFileEventsWhenNotRunning": true,
"continueOnError": true,
"location": {
"folderId": "avVCKODMM0RdSmcNWDnrKi",
"folderName": "New",
"projectId": "3iWWHkLbM2giVppBmJmZgV",
"projectName": "Default"
},
"createTime": "2019-02-12T07:03:49Z",
"lastUpdatedTime": "2019-02-12T07:03:49Z"
}
]
}
If the request to view all file listeners is unsuccessful, you might receive a response similar to the following
example:
File Listener not found (403 Forbidden)
{ "responseCode": "NOT_FOUND", "message": "File Listener with id
'eX5qlosUfEHbwvNwGpRwQd1' not found." }

Creating a file listener


Use a POST request to create a file listener and an event listener.

POST request
Use the following URI to create a file listener and an event listener:
POST <serverUrl>/mftsaas/api/v1/filelisteners

File listeners 379


Use the following fields in the POST request:

Field Type Required Description

name String Yes Name of the file listener.

description String - Description of the file listener.

status String Yes Status of the file listener.


- enabled. Listens to files on the designated folder.
- disabled. Does not listen to files on the
designated folder.

agentGroup Numeric Yes Runtime environment that contains the Secure Agent
used to run the file listener.

connectionType String Yes Type of the connection to which the file listener
listens.

connection String Yes Connection to which the file listener listens.

folderPath String Yes Path to the folder on the connection to which the file
listener listens.

filePattern String Yes File name pattern to which the file listener listens.

Post Action String - Determines the action the file listener must perform
after the file listener listens to the events.
You can select the post action as Delete only if the
file pattern is an indicator file. Default is None.
The following connection types support the Post
Action option:
- Local folder
- Advanced FTP V2
- Advanced FTPS V2
- Advanced SFTP V2
- Azure Data Lake Store Gen2

patternType String Yes The file pattern.


- wildcard. Use wildcard patterns of file name.
- regex. Use regular expression to match the file
pattern. Consider the following examples:
- Use the following syntax to listen to all files
except for files with a name that contains out,
foo, and baz: ^(?!.*(?:out|baz|foo)).*$ à
all except
- Use the following syntax to listen to all files with
doc and docx, pdf extensions: ([a-zA-Z0-9\s_
\\.\-\(\):])+(.doc|.docx|.pdf)$ à
- Indicator File. Use the file name to which the file
listener listens.

mandatory String - Defines whether rule values are mandatory.

recursive String - Defines whether rule values are recursive.

scheduleDefinition String Yes Defines the frequency in which the file listener must
run.

380 Chapter 4: Data Integration REST API


Field Type Required Description

type String Yes Frequency at which the file listener runs, daily, weekly,
or monthly.

timezone String Yes Time zone that refers to the start and end time.

startDate Date/ Yes Date on which the file listener starts running.
Time

endDate Date/ Yes Date until which the file listener runs.
Time

runIndefinitely String - The file listener runs without an end date.

startsAt Date/ Yes Time of day when the file listener starts running.
Time

endsAt Date/ Yes Time of day when the file listener stops running.
Time

frequency Numeric Yes Frequency at which the file listener checks for files in
the folder.

frequencyUnit String Yes Unit of frequency to which file listener checks for files
in the folder, by seconds, minutes, or hours.

listenerEvents String Yes Determines when the file listener sends notifications
to the services that are registered to it. Response to
each event, when the event is set to true is as follows:
- arrive. Send notifications when files arrive at the
folder to which the file listener listens.
- update. Send notifications when files in the folder
to which the file listener listens are updated.
- delete. Send notifications when files in the folder to
which the file listener listens are deleted.

stopWhenRulesMet String - The file listener stops listening to the folder when the
listener rules are met.
- false. The file listener notifies the registered
application on events and continues to listen for
subsequent events.
- true. The listener stops listening to the folder
when the first event of file deletion occurs in the
folder.

checkFileStability String - The file listener verifies that the entire file is copied to
the folder before notifying the registered services.

stabilityCheckInterval Time - Time in seconds that a file listener waits to check for
file stability.
You can specify a value in the stabilityCheckInterval
field only if the checkFileStability option is set to
true.

File listeners 381


Field Type Required Description

notifyExistingFiles String - The first time the file listener runs, it sends a
notification if files exist in the folder to which it
listens.

excludeFileEventsWhenNotRunning String - Determines if you want to exclude file events that


occur when a file listener is not running.

continueOnError String - Determines if you want the file listener to continue to


retry and run in case of failures, such as temporary
network disruption.

emailIds String - List of email addresses to send notifications if the file


listener fails.
Use commas to separate email addresses in the list.

location String - Location of the project folder that contains the file
listener component.

POST request example


Use this sample as a reference to create a file listener.
POST <serverUrl>/mftsaas/api/v1/filelisteners
Content-Type: application/json
Accept:application/json
Content-Type:application/json
IDS-SESSION-ID:{{IDS-SESSION-ID}}
{
"name": "{{NEWFILELISTENER-NAME}}",
"description": "Demo",
"status": "ENABLE",
"location": {
"folderId": "avVCKODMM0RdSmcNWDnrKi",
"folderName": "New",
"projectId": "3iWWHkLbM2giVppBmJmZgV",
"projectName": "Default"
},
"agentGroup": "01000025000000000002",
"connection": {
"type": "local",
"name": "",
"connId": "",
"local": true
},
"listenerEvents":{
"arrive":true,
"update":true,
"delete":true},
"checkFileStability": true,
"stabilityCheckInterval": 10,
"notifyExistingFiles": false,
"excludeFileEventsWhenNotRunning": true,
"continueOnError": true,
"emailIDs":"test@[Link],infa@[Link]",
"rules": [
{
"id": 10070,
"folderPath": "C:\\temp1",
"patternType":"wildcard",
"filePattern": "*.txt",
"postAction": "NONE",
"mandatory": false,

382 Chapter 4: Data Integration REST API


"recursive": false
}
],
"scheduleDefinition": {
"type": "DAILY_WITH_INTERVAL",
"timezone": "IST",
"startDate": "20181227",
"endDate": "20181227",
"runIndefinitely": false,
"startsAt": "1015",
"endsAt": "2355",
"frequency": 15,
"frequencyUnit": "SECONDS",
"dayOfMonth": 0
},
"stopWhenRulesMet": false

POST response example


If the post request is successful, you might receive a response similar to the following example:
{
"id": "eX5qlosUfEHbwvNwGpRwQd",
"name": "FL512087",
"description": "Demo",
"status": "ENABLE",
"agentGroup": "01000025000000000002",
"connection": {
"type": "local",
"name": "",
"connId": ""
},
"rules": [
{
"id": 10070,
"folderPath": "C:\\temp1",
"filePattern": "*.txt",
"patternType": "wildcard",
"postAction": "NONE",
"mandatory": false,
"recursive": false
}
],
"scheduleDefinition": {
"type": "DAILY_WITH_INTERVAL",
"timezone": "IST",
"startDate": "20181227",
"endDate": "20181227",
"runIndefinitely": false,
"startsAt": "1015",
"endsAt": "2355",
"frequency": 15,
"frequencyUnit": "SECONDS",
"dayOfMonth": 0
},
"stopWhenRulesMet": false,
"listenerEvents": {
"arrive": true,
"update": true,
"delete": true
},
"checkFileStability": true,
"stabilityCheckInterval": 10,
"notifyExistingFiles": false,
"excludeFileEventsWhenNotRunning": true,
"continueOnError": true,
"emailIDs":"test@[Link],infa@[Link]",
"location": {
"folderId": "avVCKODMM0RdSmcNWDnrKi",

File listeners 383


"folderName": "New",
"projectId": "3iWWHkLbM2giVppBmJmZgV",
"projectName": "Default"
}
}

POST request example


Use this sample as a reference to create an event listener.
POST <serverUrl>/public/core/v1/filelisteners
Content-Type: application/json
Accept:application/json
Content-Type:application/json
IDS-SESSION-ID:{{IDS-SESSION-ID}}
{
"name": "{{NEWEVENTLISTENER-NAME}}",
"description": "",
"agentGroup": "01000025000000000003",
"sourceType": "Server",
"location": {
"projectId": "1UNDIQkHQYKcNLPdxeR56p",
"projectName": "overRide"
},
"eventProvider": "AS2",
"eventType": "as2_message_receive_failed",
"rules": [
{
"key": "[Link]",
"value": "Suraj",
"operator": "NONE",
"type": "CONTAINS"
},
{
"key": "[Link]",
"value": "Test",
"operator": "AND",
"type": "STRING_EQUALS"
},
{
"key": "[Link]",
"value": "89",
"operator": "OR",
"type": "INTEGER_EQUALS"
}
]
}

POST response example


If the post request is successful, you might receive a response similar to the following example:
{
"id": "f11rC9Kwa0UlOeg2TIjBks",
"name": "EventFL684930",
"description": "",
"agentGroup": "01000025000000000003",
"sourceType": "Server",
"location": {
"projectId": "1UNDIQkHQYKcNLPdxeR56p",
"projectName": "overRide"
},
"createTime": "2020-04-06T05:25:55Z",
"lastUpdatedTime": "2020-04-06T05:25:55Z",
"eventProvider": "AS2",
"eventType": "as2_message_receive_failed",
"rules": [
{
"key": "[Link]",
"value": "Suraj",
"operator": "NONE",
"type": "CONTAINS"

384 Chapter 4: Data Integration REST API


},
{
"key": "[Link]",
"value": "Test",
"operator": "AND",
"type": "STRING_EQUALS"
},
{
"key": "[Link]",
"value": "89",
"operator": "OR",
"type": "INTEGER_EQUALS"
}
]
}

Updating a file listener


Use a PUT request to update a file listener.

PUT Request
Use the following URI to update an existing file listener.
PUT <server URL>/mftsaas/api/v1/filelisteners/<filelistener ID>
Use the following fields in the PUT request:

Field Type Required Description

id String Yes ID number associated with the file listener.

name String Yes Name of the file listener.

description String - Description of the file listener.

status String Yes Status of the file listener.


- enabled. Listens to files on the designated folder.
- disabled. Does not listen to files on the
designated folder.

agentGroup Numeric Yes Runtime environment that contains the Secure Agent
used to run the file listener.

connectionType String Yes Type of the connection to which the file listener
listens.

connection String Yes Connection to which the file listener listens.

folderPath String Yes Path to the folder on the connection to which the file
listener listens.

filePattern String Yes File name pattern to which the file listener listens.

File listeners 385


Field Type Required Description

Post Action String - Determines the action the file listener must perform
after the file listener listens to the events.
You can select the post action as Delete only if the
file pattern is an indicator file. Default is None.
The following connection types support the Post
Action option:
- Local folder
- Advanced FTP V2
- Advanced FTPS V2
- Advanced SFTP V2
- Azure Data Lake Store Gen2

patternType String Yes The file pattern.


- wildcard. Use wildcard patterns of file name.
- regex. Use regular expression to match the file
pattern. Consider the following examples:
- Use the following syntax to listen to all files
except for files with a name that contains out,
foo, and baz: ^(?!.*(?:out|baz|foo)).*$ à
all except
- Use the following syntax to listen to all files with
doc and docx, pdf extensions: ([a-zA-Z0-9\s_
\\.\-\(\):])+(.doc|.docx|.pdf)$ à

mandatory String - Defines whether rule values are mandatory.

recursive String - Defines whether rule values are recursive.

scheduleDefinition String Yes Defines the frequency in which the file listener must
run.

type String Yes Frequency at which the file listener runs, daily, weekly,
or monthly.

timezone String Yes Time zone that refers to the start and end time.

startDate Date/ Yes Date on which the file listener starts running.
Time

endDate Date/ Yes Date until which the file listener runs.
Time

runIndefinitely String - The file listener runs without an end date.

startsAt Date/ Yes Time of day when the file listener starts running.
Time

endsAt Date/ Yes Time of day when the file listener stops running.
Time

frequency Numeric Yes Frequency at which the file listener checks for files in
the folder.

frequencyUnit String Yes Unit of frequency to which file listener checks for files
in the folder, by seconds, minutes, or hours.

386 Chapter 4: Data Integration REST API


Field Type Required Description

listenerEvents String Yes Determines when the file listener sends notifications
to the services that are registered to it. Response to
each event, when the event is set to true is as follows:
- arrive. Send notifications when files arrive at the
folder to which the file listener listens.
- update. Send notifications when files in the folder
to which the file listener listens, are updated.
- delete. Send notifications when files in the folder to
which the file listener listens are deleted.

stopWhenRulesMet String - The file listener stops listening to the folder when the
listener rules are met.
- false. The file listener notifies the registered
application on events and continues to listen for
subsequent events.
- true. The listener stops listening to the folder
when the first event of file deletion occurs in the
folder.

checkFileStability String - The file listener verifies that the entire file is copied to
the folder before notifying the registered services.

stabilityCheckInterval Time - Time in seconds that a file listener waits to check for
file stability.
You can specify a value in the stabilityCheckInterval
field only if the checkFileStability option is set to
true.

notifyExistingFiles String - The first time the file listener runs, it sends a
notification if files exist in the folder to which it
listens.

excludeFileEventsWhenNotRunning String - Determines if you want to exclude the file events that
occur when a file listener is not running.

continueOnError String - Determines if you want the file listener to continue to


retry and run in case of a failure, such as temporary
network disruption.

emailIds String - List of email addresses to send notifications if the file


listener fails.
Use commas to separate email addresses in the list.

location String - Location of the project folder.

PUT request example


Use this sample as a reference to update the file listener.
PUT <serverUrl>/public/core/v1/filelisteners
Content-Type: application/json
Accept:application/json
Content-Type:application/json
IDS-SESSION-ID:{{IDS-SESSION-ID}}
{
"description": "Demo",
"status": "ENABLE",
"location": {

File listeners 387


"folderId": "avVCKODMM0RdSmcNWDnrKi",
"folderName": "New",
"projectId": "3iWWHkLbM2giVppBmJmZgV",
"projectName": "Default"
},
"agentGroup": "01000025000000000002",
"connection": {
"type": "local",
"name": "",
"connId": "",
"local": true
},
"listenerEvents":{
"arrive":true,
"update":true,
"delete":true},
"checkFileStability": true,
"stabilityCheckInterval": 10,
"notifyExistingFiles": false,
"excludeFileEventsWhenNotRunning": true,
"continueOnError": true,
"emailIDs":"test@[Link],infa@[Link]"
"rules": [
{
"id": 10070,
"folderPath": "C:\\temp1",
"patternType":"wildcard",
"filePattern": "*.txt",
"postAction": "NONE",
"mandatory": false,
"recursive": false
}
],
"scheduleDefinition": {
"type": "DAILY_WITH_INTERVAL",
"timezone": "IST",
"startDate": "20181227",
"endDate": "20181227",
"runIndefinitely": false,
"startsAt": "1015",
"endsAt": "2355",
"frequency": 15,
"frequencyUnit": "SECONDS",
"dayOfMonth": 0
},
"stopWhenRulesMet": false

PUT response
If the request to update the file listener is successful, you receive the response similar to the following
example:
{
"id": "eX5qlosUfEHbwvNwGpRwQd",
"name": "FL512087",
"description": "Demo",
"status": "ENABLE",
"agentGroup": "01000025000000000002",
"connection": {
"type": "local",
"name": "",
"connId": ""
},
"rules": [
{
"id": 10070,
"folderPath": "C:\\temp1",
"filePattern": "*.txt",

388 Chapter 4: Data Integration REST API


"patternType": "wildcard",
"postAction": "NONE",
"mandatory": false,
"recursive": false
}
],
"scheduleDefinition": {
"type": "DAILY_WITH_INTERVAL",
"timezone": "IST",
"startDate": "20181227",
"endDate": "20181227",
"runIndefinitely": false,
"startsAt": "1015",
"endsAt": "2355",
"frequency": 15,
"frequencyUnit": "SECONDS",
"dayOfMonth": 0
},
"stopWhenRulesMet": false,
"listenerEvents": {
"arrive": true,
"update": true,
"delete": true
},
"checkFileStability": true,
"stabilityCheckInterval": 10,
"notifyExistingFiles": false,
"excludeFileEventsWhenNotRunning": true,
"continueOnError": true,
"emailIDs":"test@[Link],infa@[Link]"
"location": {
"folderId": "avVCKODMM0RdSmcNWDnrKi",
"folderName": "New",
"projectId": "3iWWHkLbM2giVppBmJmZgV",
"projectName": "Default"
}
}
If the request to update the file listener is unsuccessful, you might receive an error similar to the following
example:
{
"responseCode": "NOT_FOUND",
"message": "File Listener with id 'eX5qlosUfEHbwvNwGpRwQd1' not found."
}

Deleting a file listener


Use a DELETE request to delete a file listener.

DELETE request
Use the following URI to delete a file listener:
DELETE <server URL>/mftsaas/api/v1/filelisteners/<file listener ID>
Use the following fields in the delete request:

Field Type Description

file listener ID String ID number associated with the file listener.

File listeners 389


Delete response example
If the delete request is unsuccessful, you receive a response similar to the following example:
{
"responseCode": "NOT_FOUND",
"message": "Document Artifact with Id = bQdKQmGlFUUgS85AevLkqi3 not found."
}

Starting a file listener


Use a POST request to start a file listener job.

POST request
To start a file listener, use the following URI:
POST <server URL>/mftsaas/api/v1/filelisteners/<file listener ID>/start
Include the following field in the request:

Field Type Description

file listener ID String ID number associated with the file listener.

POST request example


To start a file listener, you might use the following request:
POST <server URL>/mftsaas/api/v1/filelisteners/<file listener ID>/start
Content-Type: application/json
Accept: application/json
IDS-SESSION-ID: <SessionId>

POST response example


If the request to start the file listener is successful, you might receive a response similar to the following
example:
{
"status": "STARTED",
"jobId": 1038
}

POST error response example


If the request to start the file listener is unsuccessful, you might receive a response similar to the following
example:
{
"responseCode": "NOT_FOUND",
"message": "File listener not found for ListenerId: bQdKQmGlFUUgS85AevLkqisd"
}

Response : Agent down (403 Forbidden)


{
"responseCode": "NOT_FOUND", "message": "Agent \"01000008000000000002\" in Agent
Group \"01000025000000000002\" is not accessible."}

390 Chapter 4: Data Integration REST API


Stopping a file listener
Use a POST request to stop a file listener job.

POST request
To stop a file listener, use the following URI:
POST <server URL>/mftsaas/api/v1/filelisteners/<file listener ID>/stop
Include the following field in the request:

Field Type Description

fileListenerID String ID number associated with the file listener.

POST request example


To stop a file listener, you might use the following request:
POST <server URL>/mftsaas/api/v1/filelisteners/<file listener ID>/stop
Content-Type: application/json
Accept: application/json
IDS-SESSION-ID: <SessionId>

POST response example


If the request to stop the file listener is successful, you might receive a response similar to the following
example:
{
"status": "STOPPED",
"jobId": 1038
}

POST error response example


If the request to stop the file listener is unsuccessful, you might receive a response similar to the following
example:
{
"responseCode": "NOT_FOUND",
"message": "File listener not found for ListenerId: bQdKQmGlFUUgS85AevLkqisd"
}

Response : Agent down (403 Forbidden)


{
"responseCode": "NOT_FOUND", "message": "Agent \"01000008000000000002\" in Agent
Group \"01000025000000000002\" is not accessible."}

Getting the status of a file listener


Use a GET request to request the status of a file listener job.

GET request
To view the status of a file listener, use the following URI:
GET <server URL>/mftsaas/api/v1/filelisteners/job/<Job ID>/status

File listeners 391


Include the following field in the request:

Field Type Description

Job ID String ID number associated with the file listener job.

GET request example

To view the status of a file listener job, you might use the following request:
GET <server URL>/mftsaas/api/v1/filelisteners/job/<Job ID>/status
Content-Type: application/json
Accept: application/json
IDS-SESSION-ID: <SessionId>

GET response example


If the request to view the status of a file listener job is successful, you might receive a response similar to the
following example:
{
"status": "STOPPED",
"jobId": 1038
}
If the request to view the status of a file listener job is unsuccessful, you might receive a response similar to
the following example:
{
"responseCode": "NOT_FOUND",
"message": "File listener not found for TaskId: 1079"
}

Getting file listener job details


Use a GET request to view the details of a file listener job.

GET request
To view the details of a file listener job, use the following URI:
GET <server URL>/mftsaas/api/v1/filelisteners/<Run ID>/activityLog
Include the following field in the request:

Field Type Description

Run ID String ID number associated with the file listener job.

GET request example

To view the details of a file listener job, you might use the following request:
GET <server URL>/mftsaas/api/v1/filelisteners/<Run ID>/activityLog
Content-Type: application/json
Accept: application/json
IDS-SESSION-ID: <SessionId>

392 Chapter 4: Data Integration REST API


GET response example
If the request to view the details of a file listener job is a success, you might receive a response similar to the
following example:
{
"instanceName": "FL_1-1006",
"jobId": 1006
"startTime": "2021-02-09T22:38:01Z",
"updateTime": “2021-02-09T22:38:01Z”,
"endTime": “2021-02-09T22:38:01Z”,
"status": “Completed”,
}
The responses vary based on the file listener status.

Changing the owner of a file listener association


A file listener can be associated with a taskflow or with file ingestion tasks. You can use file listener as a
source or schedule (trigger) for file ingestion tasks and as a trigger for a taskflow. A file listener association
is the internal link between file listener and its associated file ingestion tasks or taskflows. The owner of a
file listener association is the last person who selected the file listener as a source or schedule in a file
ingestion task or the last person who published the taskflow with the file listener as a trigger.

You might want to change or transfer the owner of a file listener association when a user who owns the file
listener association leaves the organization. For example, if the user Alex creates a file ingestion task, the
user Beth creates a file listener, and the user Clara selects the file listener as a source or schedule in a file
ingestion task, Clara is the owner of the file listener association. If Clara leaves the organization, you must
reassign her assigned file listener associations to another user before you can delete her user account.

POST request
Use a POST request to change the owner of a file listener association from one user to an another.

Use the following URI to change the owner of a file listener association:
POST <serverUrl>/mftsaas/api/v1/ChangeCallbackOwnership
Use the following fields in the POST request:

Field Type Required Description

currentOwner String Yes User ID of the current owner.

newOwner String Yes User ID of the new owner.

POST request example


Use this sample as a reference to change the owner of a file listener association.
POST <serverUrl>/mftsaas/api/v1/ChangeCallbackOwnership
Content-Type: application/json
Accept:application/json
Content-Type:application/json
IDS-SESSION-ID:{{IDS-SESSION-ID}}
{
"currentOwner": "{{UserIDwhoLeftTheOrganization}}",
"newOwner": "{{NewUserID}}"
}

File listeners 393


POST response example
If the post request is successful, you might receive the following example:
200 OK

File transfer
You can send files to a remote server or receive files from a remote server, and get the job status through the
REST API.

Use the following resources for file transfer:

• sendfiles. Use to send files to a remote server.


• receivefiles. Use to receive files from a remote server.
• job. Use to get the status of the supported file transfer jobs that are initiated using the sendfiles or
receivefiles resource.

When you use these resources, note the following rules:

• Use JSON format.


• Use the following base URL:
<serverUrl>/mftsaas/api/v1/<API name>
• Use the following request header format:
<METHOD> <serverUrl>/<URI> HTTP/<HTTP version>
Content-Type: application/json
Accept: application/json
IDS-SESSION-ID: <SessionId>
Note: You must have the appropriate connector license to send and receive files.

Transferring files to a remote server


Use the sendfiles resource to transfer files to a remote server.

The following connection types use the sendfiles resource to transfer files to the remote server:

• AS2
• Advanced FTP V2
• Advanced FTPS V2
• Advanced SFTP V2
Before you construct a sendfiles request to transfer files, obtain the identifier of the connection that provides
access to the server. To get the connection ID, you can send a GET request using the connection resource.
The connection resource can return information for each of your organization's connections.

POST Request
To transfer files, include the connection ID in the following URI.
mftsaas/api/v1/sendfiles/<connection ID>

394 Chapter 4: Data Integration REST API


Include the following information in the request:

Field Type Required Description

targetConnectionType String Yes Connection type.


The supported connection types are:
- Advanced FTP V2
- Advanced FTPS V2
- Advanced SFTP V2
- AS2

srcDirectoryPath String Yes Directory path from where files are transferred.

tgtDirectoryPath String - Directory path to where files are transferred.


This option is available only for Advanced FTP V2, Advanced FTPS V2,
and Advanced SFTP V2 connection types.
Default is '/'.

srcFilePattern String Yes Source file name pattern. Specify a file name pattern to identify which
files to send. You can use the regular expression type.

deleteSourceFiles String - Whether to delete source files after a successful POST request. Use
one of the following values:
- true. Delete source files.
- false. Save source files.
Default is true.

For example, to transfer the files that begin with "file_" that are located in the workspace directory, you might
use the following request:
POST <serverUrl>/mftsaas/api/v1/sendfiles/<connection ID>
Accept:application/json
IDS-SESSION-ID: <icSessionId or INFA-SESSION-ID>
{
"targetConnectionType": "as2",
"srcDirectoryPath": "C:\\server\\userdata\\workspace",
"srcFilePattern": "file_*“
}
For example, to transfer the files with ".txt" pattern, you might use the following request:
POST <serverUrl>/mftsaas/api/v1/sendfiles/<connection ID>
Accept:application/json
IDS-SESSION-ID: <icSessionId or INFA-SESSION-ID>
{
"targetConnectionType": "Advanced SFTP V2",
"srcDirectoryPath": "C:\\docstoreLocal2",
"tgtDirectoryPath": "C:\\server\\userdata\\workspace",
"srcFilePattern": ".*txt“

POST Response
If successful, Informatica Intelligent Cloud Services returns the run ID for the job. Use the run ID to monitor
the job status.

The following example shows a successful response:


{
"projectId": 0,
"timeTaken": 0,
"queuePriority": 0,

File transfer 395


"runPriority": 0,
"runMode": "UNKNOWN",
"submitSourceId": -1,
"correlationId": "OWMxOTc2YjktNzI4YS00Mm",
"runModeInteractive": false,
"runModeBatch": false,
"runModeDebug": false,
"runModeUnknown": true,
"formattedTimeTaken": "0.00",
"id": 1000000000384,
"runId": 385
}
If unsuccessful, the response includes a reason for the failure.

Receiving files from a remote server


Use the receivefiles resource to get files from a remote server.

The following connection types use the receivefiles resource to transfer files to the remote server:

• Advanced FTP V2
• Advanced FTPS V2
• Advanced SFTP V2
Before you construct a receivefiles request to receive files, obtain the identifier of the connection that
provides access to the server. To get the connection ID, you can send a GET request using the connection
resource. The connection resource can return information for each of your organization's connections.

POST Request
To receive files, include the connection ID in the following URI.
mftsaas/api/v1/receivefiles/<connection ID>
Include the following information in the request:

Field Type Required Description

sourceConnectionType String Yes Connection type.


The supported source connection types are:
- Advanced FTP V2
- Advanced FTPS V2
- Advanced SFTP V2

tgtDirectoryPath String Yes Directory path to where files are transferred.

srcDirectoryPath String - Directory path from where files are transferred.


Default is '/'.

srcFilePattern String Yes Source file name pattern. Specify a file name pattern to identify
which files to send. You can use the regular expression type.

processFilesRecursively String - Whether to process files from all sub-folders within the base
directory. Default is false.

396 Chapter 4: Data Integration REST API


Field Type Required Description

afterFilePickupAction String - Determines what to do with source files after the files transfer. The
following options are available:
- Keep the files in the source directory.
- Delete the files from the source directory.
- Rename the files in the source directory. You must specify a file
name suffix that adds to the file name when renaming the files.
- Archive the files to a different location. You must specify an
archive directory.
Default is KEEP.

skipDuplicateFiles String - Do not transfer duplicate files. If files with the same name and
creation date were transferred, the task does not transfer them
again, and the files are marked as duplicate in the job log. If this
option is not selected the task transfers all files.
Default is false.

whenFileExists String - Determines what to do with a file if a flat file with the same name
exists in the target directory. The following options are available:
- rename
- overwrite
- skip
- stop
- error
Default is rename.

For example, to transfer the files with ".txt" pattern, and rename the file if a flat file with same name exists in
the target directory, you might use the following request:
POST <serverUrl>/mftsaas/api/v1/sendfiles/<connection ID>
Accept:application/json
IDS-SESSION-ID: <icSessionId or INFA-SESSION-ID>
{
"sourceConnectionType": "Advanced SFTP V2",
"tgtDirectoryPath": "C:\\docstoreLocal2",
"srcDirectoryPath": "C:\\server\\userdata\\workspace",
"srcFilePattern": ".*txt“,
"processFilesRecursively": false,
"afterFilePickupAction": "KEEP",
"skipDuplicateFiles": false,
"whenFileExists": "rename",
}

POST Response
If successful, Informatica Intelligent Cloud Services returns the run ID for the job. Use the run ID to monitor
the job status.

The following example shows a successful response:


{
"projectId": 0,
"timeTaken": 0,
"queuePriority": 0,
"runPriority": 0,
"runMode": "UNKNOWN",
"submitSourceId": -1,
"correlationId": "OWMxOTc2YjktNzI4YS00Mm",
"runModeInteractive": false,
"runModeBatch": false,
"runModeDebug": false,
"runModeUnknown": true,
"formattedTimeTaken": "0.00",

File transfer 397


"id": 1000000000384,
"runId": 385
}
If unsuccessful, the response includes a reason for the failure.

Getting job status


When you use the REST API to send or receive files, use the REST API version 1 job resource to get the status
of the file transfer.

Do not use the platform REST API version 2 job resource to get the status of an file transfer job.

GET Request
When you send the request for status of an file transfer job, include the run ID returned in the sendfiles POST
response. Use the following URI:
mftsaas/api/v1/job/<runID>/status

GET Response
If successful, Data Integration returns the job status.

If unsuccessful, the response includes a reason for the failure.

GET Request Example


To view the status of a file transfer job, you might use the following request:
GET <serverUrl>/mftsaas/api/v1/job/<runID>/status
Content-Type: application/json
Accept: application/json
icSessionId: <SessionId>

GET Response Example


If the request is successful, you might receive a response similar to the following example:
{
"jobStatus": "SUCCESS"
}

File transfer tasks


Use the filetransferTask resource to decrypt or decompress inbound files and to encrypt or compress
outbound files.

You can transfer files in the following ways:

• Transfer files locally on a hosted server.


• Transfer files from or to a remote server.

Hosted file transfer task


You can manage files on a hosted server, and transfer files locally.

You can perform the following actions:

• Compress and transfer files to or within a folder in the home directory of the file server user.
• Decompress uploaded files and transfer them from the home directory of file server user to the target
location.
• Encrypt and transfer files from source location to the home directory of the file server user.

398 Chapter 4: Data Integration REST API


• Decrypt and transfer files from the file server user's home directory to the target location.
Compress and transfer files

Compress and transfer inbound files to or within a folder specified in the home directory of the file server
user.

POST Request
To compress and transfer files, include the connection ID in the following URI.
mftsaas/api/v1/filetransferTask/execute/1003
Include the following information in the request:

Field Type Required Description

agentGroupId String Yes The ID of the agent group.

portalUser String - Whether the user is a portal user. Default is false.

fileServerUsername String Yes The user name of the file server.

relativeTargetLocation String - The relative target location within the file server user’s home directory.

pattern String Yes The file pattern to identify the files to collect for compression. The
regular expression pattern is supported.

sourceLocation String Yes The source directory that contains the files that you want to compress.

COMPRESSION_TYPE String Yes The format of the files that you want to compress.
Select one of the following compression methods:
- Zip
- Tar
- Gzip
The values are not case sensitive.

For example, to compress and transfer a file, you might use the following request:
POST <serverUrl>/mftsaas/api/v1/filetransferTask/execute/1003
Accept:application/json
IDS-SESSION-ID: <icSessionId or INFA-SESSION-ID>
{
"agentGroupId": "01000125000000000002",
"fileServerUsername": "arun",
"portalUser":true,
"relativeTargetLocation":"",
"pattern":"[Link]",
"sourceLocation":"C:\\Informatica_Source",
"taskVariables": {
"COMPRESSION_TYPE": "zip"
}
}

POST Response
If successful, Informatica Intelligent Cloud Services returns the run ID for the job. Use the run ID to monitor
the job status.

The following example shows a successful response:


{
"projectId": 0,

File transfer 399


"timeTaken": 0,
"queuePriority": 0,
"runPriority": 0,
"runMode": "UNKNOWN",
"submitSourceId": -1,
"runModeInteractive": false,
"runModeBatch": false,
"runModeDebug": false,
"runModeUnknown": true,
"formattedTimeTaken": "0.00",
"id": 1000000007154,
"runId": 13
}
If unsuccessful, the response includes a reason for the failure.
Decompress and transfer files

Decompress and transfer the uploaded files from the home directory of file server user to the target location.

POST Request
To decompress and transfer files, include the connection ID in the following URI.
mftsaas/api/v1/filetransferTask/execute/1004
Include the following information in the request:

Field Type Required Description

agentGroupId String Yes The ID of the agent group.

fileServerUsername String Yes The user name of the file server.

pattern String Yes The file pattern of the file to release to the specified target
location after decompressing the file. The regular expression
pattern is supported.

targetLocation String Yes The target directory to which the file is moved after
decompressing.

DECOMPRESSION_TYPE String Yes The format of the files that you want to decompress.
Select one of the following decompression methods:
- Zip
- Tar
- Gzip
The values are not case sensitive.

PATTERN_CASE_SENSITIVE String - Whether the file pattern is case sensitive. The values are not case
sensitive. Default is false.

PATTERN _TO_COLLECT String Yes The pattern of the file that you want to collect to decompress
from the file server user’s home directory. Use a regular
expression to match the file name pattern.

For example, to decompress and transfer a file, you might use the following request
POST <serverUrl>/mftsaas/api/v1/filetransferTask/execute/1004
Accept:application/json
IDS-SESSION-ID: <icSessionId or INFA-SESSION-ID>
{
"agentGroupId": "01000125000000000002",
"fileServerUsername": "arun",

400 Chapter 4: Data Integration REST API


"pattern":".*csv",
"targetLocation":"C:\\Informatica_Target",
"taskVariables": {
"PATTERN_CASE_SENSITIVE": "false",
"DECOMPRESSION_TYPE": "unzip",
"PATTERN_TO_COLLECT": ".*zip"
}
}

POST Response
If successful, Informatica Intelligent Cloud Services returns the run ID for the job. Use the run ID to monitor
the job status.

The following example shows a successful response:


{
"projectId": 0,
"timeTaken": 0,
"queuePriority": 0,
"runPriority": 0,
"runMode": "UNKNOWN",
"submitSourceId": -1,
"runModeInteractive": false,
"runModeBatch": false,
"runModeDebug": false,
"runModeUnknown": true,
"formattedTimeTaken": "0.00",
"id": 1000000007161,
"runId": 20
}
If unsuccessful, the response includes a reason for the failure.
Encrypt and transfer files

Encrypt and transfer files from the source location to the home directory of the file server user or the
directory specified in the REST API param within the file server user’s home directory. You can encrypt single
or multiple files.

POST Request
To encrypt and transfer files, include the connection ID in the following URI.
mftsaas/api/v1/filetransferTask/execute/1001
Include the following information in the request:

Field Type Required Description

agentGroupId String Yes The ID of the agent group.

portalUser String - Whether the user is a portal user. Default is false.

fileServerUsername String Yes The user name of the file server.

relativeTargetLocation String - The relative target location within the file server user’s home
directory.

pattern String Yes The file pattern to identify the files to collect for encryption. The
regular expression pattern is supported.

sourceLocation String Yes The source directory that contains the files you want to encrypt.

File transfer 401


Field Type Required Description

SIGN String - Whether the file is signed by PGP. The values are not case
sensitive.
Default is false.

PUBLIC_KEY_ID String Yes The ID of the key that is used to encrypt the file.

SECRET_KEY_ID String Yes The ID of the secret key that is used to sign the file, if the value of
the SIGN variable is true.

SECRET_KEY_PASSPHRASE String Yes The passphrase used to access the secret key if the value of the
SIGN variable is true.

For example, to encrypt and transfer a file, you might use the following request:
POST <serverUrl>/mftsaas/api/v1/filetransferTask/execute/1001
Accept:application/json
IDS-SESSION-ID: <icSessionId or INFA-SESSION-ID>
{
"agentGroupId": "01000125000000000002",
"fileServerUsername": "arun",
"portalUser":true,
"pattern":"[Link]",
"relativeTargetLocation":"",
"sourceLocation":"C:\\Informatica_Source",
"taskVariables": {
"SIGN":"false",
"PUBLIC_KEY_ID":"0x51986F687ADACBE1",
"SECRET_KEY_ID":"0x51986F687ADACBE1",
"SECRET_KEY_PASSPHRASE":"TESTER"
}
}

POST Response
If successful, Informatica Intelligent Cloud Services returns the run ID for the job. Use the run ID to monitor
the job status.

The following example shows a successful response:


{
"projectId": 0,
"timeTaken": 0,
"queuePriority": 0,
"runPriority": 0,
"runMode": "UNKNOWN",
"submitSourceId": -1,
"runModeInteractive": false,
"runModeBatch": false,
"runModeDebug": false,
"runModeUnknown": true,
"formattedTimeTaken": "0.00",
"id": 1000000007155,
"runId": 14
}
If unsuccessful, the response includes a reason for the failure.

402 Chapter 4: Data Integration REST API


Decrypt and transfer files

Decrypt and transfer files from the file server user’s home directory to the target location.

POST Request
To decrypt and transfer files, include the connection ID in the following URI.
mftsaas/api/v1/filetransferTask/execute/1002
Include the following information in the request:

Field Type Required Description

agentGroupId String Yes The ID of the agent group.

fileServerUsername String Yes The user name of the file server.

pattern String Yes The file pattern of the file to release to the specified target
location after decrypting the file. The regular expression pattern
is supported.

targetLocation String Yes The target directory to which the file is moved after decryption.

PATTERN_CASE_SENSITIVE String Yes Whether the file pattern is case sensitive. The values are not case
sensitive.
Default is false.

PGP_PASSPHRASE String Yes The PGP passphrase.

PATTERN _TO_COLLECT String Yes The file name pattern of the files that PGP has to collect and
decrypt. Use a regular expression to match the file name pattern.

For example, to decrypt and transfer a file, you might use the following request:
POST <serverUrl>/mftsaas/api/v1/filetransferTask/execute/1002
Accept:application/json
IDS-SESSION-ID: <icSessionId or INFA-SESSION-ID>
{
"agentGroupId": "01000125000000000002",
"fileServerUsername": "arun",
"pattern":".*csv",
"targetLocation":"C:\\Informatica_Target",
"taskVariables": {
"PATTERN_CASE_SENSITIVE": "false",
"PGP_PASSPHRASE": "TESTER",
"PATTERN_TO_COLLECT": ".*pgp"
}
}

POST Response
If successful, Informatica Intelligent Cloud Services returns the run ID for the job. Use the run ID to monitor
the job status.

The following example shows a successful response:


{
"projectId": 0,
"timeTaken": 0,
"queuePriority": 0,
"runPriority": 0,
"runMode": "UNKNOWN",
"submitSourceId": -1,

File transfer 403


"runModeInteractive": false,
"runModeBatch": false,
"runModeDebug": false,
"runModeUnknown": true,
"formattedTimeTaken": "0.00",
"id": 1000000007160,
"runId": 19
}
If unsuccessful, the response includes a reason for the failure.

Remote file transfer task


You can manage the files on a remote server using Advanced FTP V2, Advanced FTPS V2, and Advanced
SFTP V2 connectors, and transfer files from or to a remote server.

You can perform the following actions:

• Compress and transfer files to or within a folder in the home directory of the file server user.
• Decompress uploaded files and transfer them from the home directory of file server user to the target
location.
• Encrypt and transfer files from source location to the home directory of the file server user.
• Decrypt and transfer files from the file server user's home directory to the target location.
Compress and transfer files

Compress and transfer inbound files to or within a folder specified in the home directory of the remote
server.

POST Request
To compress and transfer files, include the connection ID in the following URI.
mftsaas/api/v1/filetransferTask/execute/1003
Include the following information in the request:

Field Type Required Description

agentGroupId String Yes The ID of the agent group.

portalUser String - Whether the user is a portal user. Default is false.

connectionId String Yes The connection ID of the Advanced FTP, Advanced FTPS, or Advanced
SFTP V2 connector.

relativeTargetLocation String - The relative target location within the remote server home directory.

pattern String Yes The file pattern to identify the files to collect for compression. The
regular expression pattern is supported.

404 Chapter 4: Data Integration REST API


Field Type Required Description

sourceLocation String Yes The source directory that contains the files that you want to compress.

COMPRESSION_TYPE String Yes The format of the files that you want to compress.
Select one of the following compression methods:
- Zip
- Tar
- Gzip
The values are not case sensitive.

For example, to compress and transfer a file, you might use the following request:
POST <serverUrl>/mftsaas/api/v1/filetransferTask/execute/1003
Accept:application/json
IDS-SESSION-ID: <icSessionId or INFA-SESSION-ID>
{
"agentGroupId": "01000125000000000002",
"portalUser": "false",
"connectionId": "0100010B000000000002",
"pattern":"arun_zip.txt",
"relativeTargetLocation":"/",
"sourceLocation":"C:\\FIS_Home\\DOCSTORE",
"taskVariables": {
"COMPRESSION_TYPE": "gzip"
}
}

POST Response
If successful, Informatica Intelligent Cloud Services returns the run ID for the job. Use the run ID to monitor
the job status.

The following example shows a successful response:


{
"projectId": 0,
"timeTaken": 0,
"queuePriority": 0,
"runPriority": 0,
"runMode": "UNKNOWN",
"submitSourceId": -1,
"runModeInteractive": false,
"runModeBatch": false,
"runModeDebug": false,
"runModeUnknown": true,
"formattedTimeTaken": "0.00",
"id": 1000000007170,
"runId": 29
}
If unsuccessful, the response includes a reason for the failure.
Decompress and transfer files

Decompress and transfer the uploaded files from the home directory of the remote server to the target
location.

POST Request
To decompress and transfer files, include the connection ID in the following URI.
mftsaas/api/v1/filetransferTask/execute/1004

File transfer 405


Include the following information in the request:

Field Type Required Description

agentGroupId String Yes The ID of the agent group.

portalUser String - Whether the user is a portal user. Default is false.

relativeSourceLocation String - The relative source location within the remote server home directory.

pattern String Yes The file pattern of the file to release to the specified target location
after decompressing the file. The regular expression pattern is
supported.

targetLocation String Yes The target directory to which the file is moved after decompressing.

relativeTargetLocation String - The relative target location within the remote server home directory.

connectionId String Yes The connection ID of the Advanced FTP, Advanced FTPS, or
Advanced SFTP V2 connector.

afterFilePickupAction String - Determines what to do with the source files after the files are
transferred.
Select one of the following filter options:
- KEEP. Keep the files in the source directory.
- DELETE. Delete the files from the source directory.
- RENAME. Rename the files in the source directory.
- ARCHIVE. Archive the files to a different location. You must
specify an archive directory
Default is KEEP.

renameSuffix String Yes If afterFilePickupAction is selected as RENAME, the file name suffix
to append to the files in the source directory.
You can use the following suffix types:
- $date
- $time
- $runId
- $timestamp

archiveDirectoryPath String Yes If afterFilePickupAction is selected as ARCHIVE, the archive


directory in which to archive the files.

skipDuplicateFiles String - Indicates whether to skip the source files which are already present
in the docstore location. Default is false.

processFilesRecursively String - Indicates whether to process files from all sub-folders within the
base directory. Default is false.

406 Chapter 4: Data Integration REST API


Field Type Required Description

DECOMPRESSION_TYPE String Yes The format of the files that you want to decompress.
Select one of the following decompression methods:
- Zip
- Tar
- Gzip
The values are not case sensitive.

PATTERN _TO_COLLECT String Yes The pattern of the file that you want to collect to decompress from
the file server user’s home directory. Use a regular expression to
match the file name pattern.

For example, to decompress and transfer a file, you might use the following request:
POST <serverUrl>/mftsaas/api/v1/filetransferTask/execute/1004
Accept:application/json
IDS-SESSION-ID: <icSessionId or INFA-SESSION-ID>
{
"agentGroupId": "01000125000000000002",
"portalUser": "false",
"pattern": "arun_zip.txt",
"relativeSourceLocation": "/",
"targetLocation": "C:\\Informatica_Target",
"relativeTargetLocation": "",
"connectionId": "0100010B000000000002",
"afterFilePickupAction": "RENAME",
"renameSuffix":"_RENAME_",
"archiveDirectoryPath" :"",
"skipDuplicateFiles": true,
"processFilesRecursively": false,
"taskVariables": {
"DECOMPRESSION_TYPE": "gunzip",
"PATTERN_TO_COLLECT": ".*gz"
}
}

POST Response
If successful, Informatica Intelligent Cloud Services returns the run ID for the job. Use the run ID to monitor
the job status.

The following example shows a successful response:


{
"projectId": 0,
"timeTaken": 0,
"queuePriority": 0,
"runPriority": 0,
"runMode": "UNKNOWN",
"submitSourceId": -1,
"runModeInteractive": false,
"runModeBatch": false,
"runModeDebug": false,
"runModeUnknown": true,
"formattedTimeTaken": "0.00",
"id": 1000000007171,
"runId": 30
}
If unsuccessful, the response includes a reason for the failure.

File transfer 407


Encrypt and transfer files

Encrypt and transfer files from the source location to a remote server using connectors or to the directory
specified in the REST API param within the remote server's home directory. You can encrypt single or multiple
files.

POST Request
To encrypt and transfer files, include the connection ID in the following URI.
mftsaas/api/v1/filetransferTask/execute/1001
Include the following information in the request:

Field Type Required Description

agentGroupId String Yes The ID of the agent group.

connectionId String Yes The connection ID of the Advanced FTP, Advanced FTPS, or
Advanced SFTP V2 connector.

portalUser String - Whether the user is a portal user. Default is false.

relativeTargetLocation String - The relative target location within the remote server home
directory.

pattern String Yes The file pattern to identify the files to collect for encryption. The
regular expression pattern is supported.

sourceLocation String Yes The source directory that contains the files you want to encrypt.

SIGN String - Whether the file is signed by PGP. The values are not case
sensitive.
Default is false.

PUBLIC_KEY_ID String Yes The ID of the key that is used to encrypt the file.

SECRET_KEY_ID String Yes The ID of the secret key that is used to sign the file, if the value of
the SIGN variable is true.

SECRET_KEY_PASSPHRASE String Yes The passphrase used to access the secret key if the value of the
SIGN variable is true.

For example, to encrypt and transfer a file, you might use the following request:
POST <serverUrl>/mftsaas/api/v1/filetransferTask/execute/1001
Accept:application/json
IDS-SESSION-ID: <icSessionId or INFA-SESSION-ID>
{
"agentGroupId": "01000125000000000002",
"portalUser": "false",
"connectionId": "0100010B000000000002",
"pattern":"[Link]",
"relativeTargetLocation":"/",
"sourceLocation":"C:\\FIS_Home\\DOCSTORE",
"taskVariables": {
"SIGN":"true",
"PUBLIC_KEY_ID":"0x51986F687ADACBE1",
"SECRET_KEY_ID":"0x51986F687ADACBE1",
"SECRET_KEY_PASSPHRASE":"TESTER"
}
}

408 Chapter 4: Data Integration REST API


POST Response
If successful, Informatica Intelligent Cloud Services returns the run ID for the job. Use the run ID to monitor
the job status.

The following example shows a successful response:


{
"projectId": 0,
"timeTaken": 0,
"queuePriority": 0,
"runPriority": 0,
"runMode": "UNKNOWN",
"submitSourceId": -1,
"runModeInteractive": false,
"runModeBatch": false,
"runModeDebug": false,
"runModeUnknown": true,
"formattedTimeTaken": "0.00",
"id": 1000000007165,
"runId": 24
}
If unsuccessful, the response includes a reason for the failure.
Decrypt and transfer files

Decrypt and transfer files from the remote server home directory to the target location.

POST Request
To decrypt and transfer files, include the connection ID in the following URI.
mftsaas/api/v1/filetransferTask/execute/1002
Include the following information in the request:

Field Type Required Description

agentGroupId String Yes The ID of the agent group.

portalUser String - Whether the user is a portal user. Default is false.

relativeSourceLocation String - The relative source location within the remote server home
directory.

pattern String Yes The file pattern of the file to release to the specified target
location after decrypting the file. The regular expression pattern
is supported.

targetLocation String Yes The target directory to which the file is moved after decrypting.

relativeTargetLocation String - The relative target location within the remote server home
directory.

connectionId String Yes The connection ID of the Advanced FTP, Advanced FTPS, or
Advanced SFTP V2 connector.

File transfer 409


Field Type Required Description

afterFilePickupAction String - Determines what to do with the source files after the files are
transferred.
Select one of the following filter options:
- KEEP. Keep the files in the source directory.
- DELETE. Delete the files from the source directory.
- RENAME. Rename the files in the source directory.
- ARCHIVE. Archive the files to a different location. You must
specify an archive directory
Default is KEEP.

renameSuffix String Yes If afterFilePickupAction is selected as RENAME, the file name


suffix to append to the files in the source directory.
You can use the following suffix types:
- $date
- $time
- $runId
- $timestamp

archiveDirectoryPath String Yes If afterFilePickupAction is selected as ARCHIVE, the archive


directory in which to archive the files.

skipDuplicateFiles String - Indicates whether to skip the source files which are already
present in the docstore location. Default is false.

processFilesRecursively String - Indicates whether to process files from all sub-folders within the
base directory. Default is false.

PATTERN_CASE_SENSITIVE String Yes Whether the file pattern is case sensitive. The values are not case
sensitive.
Default is false.

PGP_PASSPHRASE String Yes The PGP passphrase.

PATTERN _TO_COLLECT String Yes The pattern of the file that you want to collect to decompress
from the file server user’s home directory. Use a regular
expression to match the file name pattern.

For example, to decrypt and transfer a file, you might use the following request:
POST <serverUrl>/mftsaas/api/v1/filetransferTask/execute/1002
Accept:application/json
IDS-SESSION-ID: <icSessionId or INFA-SESSION-ID>
{
"agentGroupId": "01000125000000000002",
"portalUser": "false",
"pattern": "[Link]",
"relativeSourceLocation": "/",
"targetLocation": "C:\\Informatica_Target",
"relativeTargetLocation": "",
"connectionId": "0100010B000000000002",
"afterFilePickupAction": "ARCHIVE",
"renameSuffix":"_RENAME_",
"archiveDirectoryPath" :"/ARCH",
"skipDuplicateFiles": false,
"processFilesRecursively": false,
"taskVariables": {
"PATTERN_CASE_SENSITIVE": "false",
"PGP_PASSPHRASE": "TESTER",

410 Chapter 4: Data Integration REST API


"PATTERN_TO_COLLECT": "[Link]"
}
}

POST Response
If successful, Informatica Intelligent Cloud Services returns the run ID for the job. Use the run ID to monitor
the job status.

The following example shows a successful response:


{
"projectId": 0,
"timeTaken": 0,
"queuePriority": 0,
"runPriority": 0,
"runMode": "UNKNOWN",
"submitSourceId": -1,
"runModeInteractive": false,
"runModeBatch": false,
"runModeDebug": false,
"runModeUnknown": true,
"formattedTimeTaken": "0.00",
"id": 1000000007169,
"runId": 28
}
If unsuccessful, the response includes a reason for the failure.

HTTPS file transfer


You can send files to a remote HTTPS server or receive files from a remote HTTPS server, and get the job
status through the REST API.

Consider the following when you use the resources for HTTPS file transfer:

• You must have the HTTPS license to exchange files through HTTPS servers.
• You should log in to the HTTPS server to perform the API operations.
You can use the following resources for HTTPS file transfer:

• Authentication. Use to authenticate a user.


• Standard operations. Use during a file transfer action.
• File transfer. Use to transfer file to or from a HTTPS server
• Server responses. Details on the server responses.
• Status codes. Details on the HTTPS file transfer status codes.

Authentication
Use the following resources to log in to the HTTP server and log out.

login

You should log in to the HTTPS server to perform any HTTPS API operations. Use this command to lg in
to the HTTPS server. To log in to the Informatica Managed File Transfer HTTPS Server send a POST
request using the login resource. You must send a login request to start a user session if you don't use
client certificate authentication.

Include the following parameters in the request:

• Username. The name of the user on the server.

File transfer 411


• Password. The password required to log in.

For example: [Link]


username=https_automation&password=T@1234

logout

Use the logout resource to log out and end the user session on the Informatica Managed File Transfer
HTTPS Server. You can make a GET or POST request.

For example, [Link]

Standard operations
You can use the following standard operational commands:

PWD

Use the PWD (Print Working Directory) command to retrieve the current working directory on the server.
The response includes the absolute path to the current working directory as part of the X-GDX-Reply
header message. The path is enclosed in double quotes.

For example, [Link]

delete

Use this command to remove files from the server. Include the relative or absolute file path to delete in
the file parameter.

For example, [Link]

rename

Use this command to rename files on the server. If the current working directory contains the files that
you want to rename, then the from and to parameters might contain only the file names. You can also
use the rename command to move files on the server. To move files, include the full paths in the from
and to parameters.

For example, the following command changes the name of the [Link] file to [Link]:

[Link]

For example, the following command moves the [Link] file from the current working directory to
the parent directory:

[Link]

Include the following parameters in the request:

Request Type Parameters

GET or POST - from: The relative or absolute path of the file or directory to rename.
- to: The relative or absolute path of the new name.

list

Use this command to list the contents of a directory on the server. Include the target directory as a
parameter to this command. If you do not include the directory, the command lists the contents of the
current working directory.

For example, [Link]

412 Chapter 4: Data Integration REST API


The response body includes the contents of the directory in content type text/plain. The following
example shows the format of the directory listing:

2009-12-03 14:02:19 D 0 backup

The response includes the following information delimited by a tab (\t) character:

• The last modified date of the file or directory. The timestamp is in ISO format yyyy-MM-dd HH:mm:ss.
The hour(hh) is displayed as a 24-hour clock.
• Whether the content type is a file, a directory, or unknown.
• The size of the file in bytes.
• The name of the file or directory.

checksum

Use this command to calculate the hash of a remote file. The reply is returned on the first line of the
response body. You can compare the response with the hash value of the downloaded local file to verify
data integrity.

For example, [Link]

The supported hash algorithms are SHA1, MD5, and CRC32. Include the following parameters in the
request:

Request Parameters
Type

GET or POST - file: Required. The path relative to the current working directory, or an absolute path to the
file.
- algorithm: The hash algorithm to use when calculating a checksum. Valid values are SHA1,
MD5, or CRC32. Default is SHA1.
- length: The starting position within the file. This value is used for calculating partial file
checksums. The default value is 0, which performs the checksum on the entire file.

CD (Change Directory)

Use this command to change the current working directory. The absolute path to the new working
directory returns as part of the X-GDX-Reply header message. The path is enclosed in double quotes.

For example, [Link]

CDUP (Change Directory Up)

Use this command to change the current working directory to the parent directory. The absolute path to
the new working directory returns as part of the X-GDX-Reply header message. The path is enclosed in
double quotes.

For example, [Link]

MKDIR (Make Directory)

Use this command to create a new directory on the server. The absolute path to the newly created
directory returns as part of the X-GDX-Reply header message. The path is enclosed in double quotes.

For example, [Link]

file information

Use this command to retrieve information about a specific file or directory. The response includes the
information in the response body with content type text/plain. The format of the file information is

File transfer 413


identical to the listing returned from the List command. If no information is returned in the response
body, then the file or directory does not exist.

For example, [Link]

File transfer
Use the following commands to transfer an HTTPS file to or from a server:

upload

Use this command to transfer a file to the server. The request must be a multipart POST request and
only one file is uploaded per request. A file is a required part of the multipart request, but any parameter
name given to the file part is ignored.

For example, [Link]

The request includes the following parameters:

Request Parameters
Type

POST/ - to: The relative or absolute path of the destination file.


Multipart - file: The file being uploaded as part of the multipart request.
- generateUniqueId. Optional. Set to true to generate and return a unique ID for the file transfer
task. Default is false.
- fileMetadata. Optional. Metadata related to the file in JSON format.

If you include the optional request parameters, the response includes the following return parameters,
respectively:

• fileUniqueId. Unique ID generated for the file transfer task.


• fileMetadata. Metadata related to the file in JSON format.

upload2

Use this command to transfer a file to the server. The request must be a multipart POST request and
only one file is uploaded per request. A file is a required part of the multipart request, but any parameter
name given to the file part is ignored.

For example, [Link]

The response includes the following parameters:

Request Parameters
Type

POST/ - to: The relative or absolute path of the destination file.


Multipart - append: Optional. If the file exists on the target directory, set this parameter to true to
append the new file to the existing one.
- transferMode: Use B for binary transfers or A for ascii transfers. Default is B.
- file: The file being uploaded as part of the multipart request.

upload3

Use this command to transfer a file to the server. The request must be a multipart POST request and
only one file is uploaded per request. A file is a required part of the multipart request, but any parameter
name given to the file part is ignored.

For example, [Link]

414 Chapter 4: Data Integration REST API


You must provide the fileserver username and password for basic authorization.

The response includes the following parameters:

Request Parameters
Type

POST/ - to: The relative or absolute path of the destination file.


Multipart - append: Optional. If the file exists on the target directory, set this parameter to true to
append the new file to the existing one.
- transferMode: Use B for binary transfers or A for ascii transfers. Default is B.
- file: The file being uploaded as part of the multipart request.

uploadRawData

Use this command to upload data directly to the server where the data is the content of the request
body. The request must be a POST request. The name of the file is automatically derived and returned as
part of the X-GDX-Reply header message. This is a special command where the request body must
contain the file data being uploaded.

For example, [Link]

uploadRawData2

Use this command to upload data directly to the server where the data is the content of the request
body. The request must be a POST request. The name of the file is automatically derived and returned as
part of the X-GDX-Reply header message. This is a special command where the request body must
contain the file data being uploaded.

For example, [Link]

You must provide the fileserver username and password for basic authorization.

download

Use this command to download a file from the server. The file is returned as the response body. The
content type is always an application or force download, along with the content disposition field
containing the name of the file. The content-length header is also included in the response indicating the
size of the file.

For example, [Link]


test&downloadReleased=true&transferMode=b

The response includes the following parameters:

Request Type Parameters

GET or POST - file: Required. The file to download. This can be a path relative to the current working
directory, or an absolute path to the file.
- offset: For downloading partial files. Enter the starting position from where the file must
begin to download.
- transferMode: Use B for binary transfers or A for ascii transfers. Default is B.

Server responses
For every request, the server responds with success or error codes and messages specific to the HTTPS
service in the X-CDX-Reply header. The format of the header message is a status code followed by a single
white space, followed by the message details.

File transfer 415


For example, 200 Welcome, testuser!

You can use header codes and messages to determine the success or failure of an operation.

Status codes
A response might include any of the following HTTPS file transfer status codes:

200-299

Informational or success status codes: Successful operation performed against the server .

500-509

Internal server error: The server experienced a critical error. Contact the server’s administrator
immediately.

510-519

Bad or Invalid request: The server could not process the request due to invalid or incomplete
information. See the X-GDX-Reply header message for more details.

530-539

Login or account related errors: Indicates that an error occurred with the account or login, such as invalid
login or account disabled. See the X-GDX-Reply header message for more details.

550-559

Permission errors: The user does not have permission or authority to perform the requested action. See
the X-GDX-Reply header message for more details.

560-569

Errors related to files or directories on the system: An error occurred while accessing a file or directory
on the server, such as a file or directory does not exist.

580-589

File I/O Errors: An internal server error occurred while trying to access a file or directory.

590

Unknown error: An unexpected error occurred while trying to process the command. See the X-GDX-Reply
header message for more details.

Fixed-width configuration
Use the fwConfig resource to configure column widths for flat file source, lookup, and target objects.

GET request
To request all of the fixed-width formats, use the following URI:
/api/v2/fwConfig

416 Chapter 4: Data Integration REST API


To request the details of a particular fixed-width format, you can include the fixed-width format ID, the fixed-
width federated ID, or fixed-width format name in the URI. If you include the federated ID, the response
includes the project and folder location of the fixed-width format. Use one of the following URIs:
/api/v2/fwConfig/<id>
/api/v2/fwConfig/frs/<id>
/api/v2/fwConfig/name/<name>
If you use the fixed-width format name in the URI and the fixed-width format name includes a space, replace
the space with %20. For example:
/api/v2/fwConfig/name/my%20fixedwidth%20format

GET response
The fwConfig object returns the following attributes:

Field Type Description

id String Fixed-width format ID.

name String Fixed-width format name.

description String Description of the fixed-width format.

createTime Date/time Time that the fixed-width format was created.

updateTime Date/time Last time that the fixed-width format was updated.

createdBy String User who created the fixed-width format.

updatedBy String User who last updated the fixed-width format.

lineSequential Boolean Whether each row ends with a newline character.


- True. Line sequential is enabled.
- False. Line sequential is not enabled.

padBytes Int Number of bytes between the last column of one row and the first column of the
next.

skipRows Int Number of rows to skip. You can skip blank or header rows.

nullChar String The character to represent a null value.

dateFormat String Default date format to use when a date format is not specified in the flat file
connection.

nullCharType String Determines if the null character is single-byte or multibyte.

repeatNullChar Boolean Determines how to treat null characters in a single field.


- True. Read repeat null characters as a single null value.
- False. does not read repeat null characters as a single null value.

stripTrailingBlank Boolean Determines how to treat trailing blanks in string values.


- True. Removes trailing blanks from string values.
- False. Does not remove trailing blanks in string values.

Fixed-width configuration 417


Field Type Description

location String The project and folder that the fixedd-width file resides in.

columns String Includes the following attributes for each column:


- name. Name of the column.
- nativeType. Native data type.
- precision. Length of the field in bytes.
- scale. Number of digits after the decimal point for numeric values.

GET example
The following example shows a request to get details for a fixed-width format using the fixed-width format
ID:
GET <serverUrl>/api/v2/fwConfig/00001R29000000000002
Content-type: application/json
Accept: application/json
icSessionId: <icSessionId>
The following text is a sample response:
{
"@type": "fwConfig",
"id": "00001R29000000000002",
"orgId": "00001R",
"name": "item",
"description": "",
"createTime": "2016-10-06T17:08:09.000Z",
"updateTime": "2016-10-06T17:08:09.000Z",
"createdBy": "org1@[Link]",
"updatedBy": "org1@[Link]",
"lineSequential": true,
"padBytes": 0,
"skipRows": 0,
"nullChar": "*",
"nullCharType": "ASCII",
"repeatNullChar": false,
"stripTrailingBlank": false,
"location": Default\\MyProject
"dateFormat": "",
"columns": [
{
"@type": "fwColumn",
"name": "COLUMN_0",
"nativeType": "string",
"precision": 1,
"physicalLength": 0,
"scale": 0
},
{
"@type": "fwColumn",
"name": "COLUMN_1",
"nativeType": "string",
"precision": 9,
"physicalLength": 0,
"scale": 0
},
{
"@type": "fwColumn",
"name": "COLUMN_2",
"nativeType": "string",
"precision": 10,
"physicalLength": 0,
"scale": 0
}

418 Chapter 4: Data Integration REST API


]
}

POST request
To create a fixed-width format, use the following URI:
/api/v2/fwConfig
If you want to specify a location for the fixed-width format, include the container ID in the request. If the
container ID isn't included in the request, the fixed-width format is created in the Default folder. You can find
the container ID for a project or folder in the Data Integration user interface. On the Explore page, select the
folder. In the URL, the last string of characters is the container ID.

For example, in the following URL, the container ID is dH2DuGJYda7ijgW4Sm32sR


[Link]
dH2DuGJYda7ijgW4Sm32sR
To update a fixed-width format, include the fixed-width format ID in the following URI:
/api/v2/fwConfig/<id>
You can submit a partial update using partial mode. If you want to update a field in the fwColumn object
using partial mode, you must include the name. To submit a request using partial mode, use a JSON request
and include the following line in the header:
Update-Mode=PARTIAL
You can use the following attributes in a fwConfig POST request:

Field Type Required Description

id String Yes Fixed-width format ID.

name String Yes Fixed-width format name.

description String Description of the fixed-width format.

containerId String ID of the project or folder to contain the linear taskflow.


If not included in request, the linear taskflow is created in the Default
folder.

lineSequential Boolean Yes Whether each row ends with a newline character.
- True. Line sequential is enabled.
- False. Line sequential is not enabled.

padBytes Int Yes Number of bytes between the last column of one row and the first column
of the next.

skipRows Int Yes Number of rows to skip. You can skip blank or header rows.

nullChar String Yes The character to represent a null value.

dateFormat String Yes Default date format to use when a date format is not specified in the flat
file connection.

nullCharType String Yes Determines if the null character is single-byte or multibyte.

Fixed-width configuration 419


Field Type Required Description

repeatNullChar Boolean Yes Determines how to treat null characters in a single field.
- True. Read repeat null characters as a single null value.
- False. does not read repeat null characters as a single null value.

stripTrailingBlank Boolean Yes Determines how to treat trailing blanks in string values.
- True. Removes trailing blanks from string values.
- False. Does not remove trailing blanks in string values.

columns String Yes Includes the following attributes for each column:
- name. Name of the column.
- nativeType. Native data type.
- precision. Length of the field in bytes.
- scale. Number of digits after the decimal point for numeric values.

POST response
If successful, returns the fwConfig object that you created or updated. Returns the error object if errors
occur.

POST example
POST <serverURL>/api/v2/fwConfig/00000103000000000004
Content-Type: application/json
Accept: application/json
{
"@type": "fwConfig",
"name": "FW_FILE_CONFIG_1",
"description": "Test description",
"lineSequential": false,
"padBytes": 1,
"skipRows": 2,
"nullChar": "*",
"nullCharType": "ASCII",
"repeatNullChar": false,
"stripTrailingBlank": false,
"columns": [
{
"@type": "fwColumn",
"name": "ASCII",
"nativeType": "string",
"precision": 10
}
]
}

DELETE request
To delete a fixed-width format, use the fixed-width format ID in the following URI:
/api/v2/fwConfig/<id>

DELETE response
Returns the 200 response code if the request is successful.

Returns the error object if errors occur.

420 Chapter 4: Data Integration REST API


Hierarchical mappers
Use the h2h resource to create or run a hierarchical mapper that converts hierarchical data to a different
hierarchical structure. You can also use the h2h resource to get metadata about a hierarchical mapper.

The h2h resource uses a hierarchical mapper ID in the URI. To find the hierarchical mapper ID, open the
hierarchical mapper in the Data Integration user interface. In the URL, the last string of characters is the
hierarchical mapper ID.

For example, in the URL [Link]


idsm/7sQJvjkeZLIfpWg6hpYwqJ/read, the hierarchical mapper ID is 7sQJvjkeZLIfpWg6hpYwqJ.

Creating a hierarchical mapper


To create a hierarchical mapper, send a POST request and specify the hierarchical mapper details.

POST request
Use the following URI to create the hierarchical mapper:
/h2h/api/v1/create/<hierarchical mapper ID>
The following table describes the fields in the POST request:

Field Type Description

name String Name of the hierarchical mapper.

description String Description of the hierarchical mapper.

projectName String Project where you want to save the hierarchical mapper.

projectFolderPath String Folder within the project where you want to save the hierarchical mapper.

sourceXsd String Source XSD file, such as EDI832__20190322_140316.xsd

sourceXsdDependencies Array List of dependencies for the source XSD file.

targetXsd String Target XSD file, such as X12_4010_810.xsd

targetXsdDependencies Array List of dependencies for the target XSD file.

sourceRoot String Name of the root element in the source.

targetRoot String Name of the root element in the target.

variables Details about variables. The variables object includes the name, type, list
indicator, and initial value.

name String Variable name.

type String Variable data type.

list Boolean True or false.

initialValue String Initial value of the variable.

Hierarchical mappers 421


Field Type Description

statements String Comma-separated list of statements in the hierarchical mapper.

encodedService String Base64-encoded ZIP file that contains the source and target XSD files for the
source and target schemas, as well as the dependencies of those XSD files.

POST response
If successful, the API creates the hierarchical mapper.

POST request example


The following example shows a request to create a hierarchical mapper:
POST <serverUrl>/h2h/api/v1/service/create
IDS-SESSION-ID: 689EaCniaW9b0YgwET5DwU
Content-Type: application/json

{
"name": "MigAsset2",
"description": "Migrated service",
"projectName": "Interfor_Mapping",
"projectFolderPath": "C:_Informatica_XMap_Interfor",
"sourceXsd": "EDI_810_0_2_0_2_0_0.xsd",
"sourceXsdDependencies": [],
"targetXsd": "X12_4010_810_schema_restricted_0_0_0_1_0_0_0_0_0_1.xsd",
"targetXsdDependencies": [
"X12_4010_810_schema_segments_restricted_0_1_0_2_0_1_0_1_0_2.xsd"
],
"sourceRoot": "DTedi810",
"targetRoot": "x12:interchanges",
"variables": [
{
"name": "IT_CTR",
"type": "xs:integer",
"list": false,
"initalValue": "0"
},
{
"name": "CTT_1",
"type": "xs:integer",
"list": false,
"initalValue": "0"
}
],
"statements": "[{\"output\":\"interchange/x12:TS_810\",\"mode\":\"Add\",\"input
\":\".\",\"onFail\":\"propagate\",\"statementType\":\"Group\",\"name\":\"INPUT_LOOP
\",\"skip\":true,\"statements\":[{\"output\":\"ST\",\"mode\":\"Add\",\"input
\":\"InvoiceHeader\",\"onFail\":\"Skip\",\"statementType\":\"Group\",\"name\":\"ST
\",\"skip\":true,\"statements\":[{\"output\":\"R01\",\"mode\":\"Add\",\"input
\":\"'810'\",\"onFail\":\"propagate\",\"statementType\":\"Map\",\"name\":\"1\",\"skip
\":false,\"statements\":[],\"statementNumber\":3},{\"output\":\"R02\",\"mode\":\"Add
\",\"input\":\"invNum\",\"onFail\":\"propagate\",\"statementType\":\"Map\",\"name\":\"2-
for now it's default value\",\"skip\":false,\"statements\":[],\"statementNumber
\":4}],\"statementNumber\":2},{\"output\":\"BIG\",\"mode\":\"Add\",\"input
\":\"InvoiceHeader\",\"onFail\":\"Skip\",\"statementType\":\"Group\",\"name\":\"BIG
\",\"skip\":true,\"statements\":[{\"output\":\"R01\",\"mode\":\"Add\",\"input
\":\"replace(invDate,'-','')\",\"onFail\":\"propagate\",\"statementType\":\"Map\",\"name
\":\"1\",\"skip\":false,\"statements\":[],\"statementNumber\":6},{\"output
\":\"R02\",\"mode\":\"Add\",\"input\":\"invNum\",\"onFail\":\"propagate\",\"statementType
\":\"Map\",\"name\":\"2\",\"skip\":false,\"statementNumber\":7},[...]",
"encodedService": "UEsDBBQACAgIALiUSlkAAAAAAAAAAAAAAAAdAAAAb[...]"
}
The statement and encoded service values are truncated for brevity.

422 Chapter 4: Data Integration REST API


Running a hierarchical mapper
To run a hierarchical mapper, create a POST request and specify the XML or JSON data for the hierarchical
mapper to process. You can provide the data as a buffer in the request body or as a file to pass to the
hierarchical mapper. The output can be a buffer that is returned in the response, or you can write the output
to a file.

POST request
Use the following URI to run the hierarchical mapper:
/h2h/api/v1/service/run/<hierarchical mapper ID>
The following table describes the fields in the POST request:

Field Type Description

agentGroupId String Runtime environment to run the hierarchical mapper.


If you don't specify a runtime environment, the hierarchical mapper runs natively on the
Cloud Server.

input Input details.

type String Type of input to send in the request body. Use buffer or file.

value String Input value to pass to the hierarchical mapper. If the input is a buffer, enter the XML or JSON
data. If the input is a file, enter the path to the file.

output Output details.

type String Type of output to receive in the response. Use buffer or file.

value String Output to receive in the response. If the output is a buffer, use an empty string. If the output
is a file, enter the path to the file.

POST response
If successful, the hierarchical mapper returns the data in the target hierarchical structure.

The following table describes the fields in the response:

Field Type Description

output String Output value. The output is either a buffer or the path to a file.

message String Response message, such as Success.

POST request example for buffer to file


The following request runs a hierarchical mapper that converts XML data as a buffer and stores the
converted data in an output file:
POST <server URL>/h2h/api/v1/service/run/<hierarchical mapper ID>
Content-Type: application/json
Accept: application/json
IDS-SESSION-ID: jpaybAKQMsmdt7vLJ02z0

{
"agentGroupId": "016GOR25000000000005",

Hierarchical mappers 423


"input": {
"type": "buffer",
"value":"<?xml version=\"1.0\" encoding=\"UTF-8\"?><HL7:MSH><MSH.1>1</
MSH.1><MSH.2>^~\\&amp;</MSH.2><MSH.3><HD.1>GHH_ADT</HD.1></
MSH.3><MSH.7>20080115153000</MSH.7><MSH.9><MSG.1>ADT</MSG.1><MSG.2>A01</
MSG.2><MSG.3>ADT_A01</MSG.3></MSH.9><MSH.10>0123456789</MSH.10><MSH.11><PT.1>P</PT.1></
MSH.11><MSH.12><VID.1>2.6</VID.1></MSH.12><MSH.16>AL</MSH.16></HL7:MSH>"
},
"output": {
"type": "file",
"value": "/root/idsm"
}
}
If successful, you receive the following response:
{
"output": "/root/idsm/hmapper_runtime_api_5040_output.xml",
"message": "Success"
}

POST request example for file to buffer


The following request runs a hierarchical mapper that converts XML data in a file and returns the output as a
buffer in the response:
POST <server URL>/h2h/api/v1/service/run/<hierarchical mapper ID>
Content-Type: application/json
Accept: application/json
IDS-SESSION-ID: jpaybAKQMsmdt7vLJ02z0

{
"agentGroupId": "016GOR25000000000005",
"input": {
"type": "file",
"value":"/root/idsm/2.6_parser_response.xml"
},
"output": {
"type": "buffer",
"value": " "
}
}
If successful, you receive the following response:
{
"output": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<Departments>\r
\n<Department name=\"\">\r\n<Employee>\r\n<Profile>\r\n<Id>0</Id>\r\n<FullName>1</
FullName>\r\n<Skills>\r\n<FHIR4></FHIR4>\r\n<XYZ></XYZ>\r\n<hl7></hl7>\r\n<HIPAA></HIPAA>
\r\n</Skills>\r\n</Profile>\r\n</Employee>\r\n</Department>\r\n</Departments>\r\n",
"message": "Success"
}

Getting hierarchical mapper metadata


To get metadata about a hierarchical mapper, use a GET request and specify the hierarchical mapper ID.

GET request
Use the following URI to get metadata about a hierarchical mapper:
/h2h/api/v1/idsm/metadata/<hierarchical mapper ID>

GET response
If successful, the response returns the metadata.

424 Chapter 4: Data Integration REST API


The following table describes the fields in the response:

Field Type Description

srcSchemaType String Source schema type

tgtSchemaType String Target schema type

srcSchemaContent String Base64-encoded source schema

tgtSchemaContent String Base64-encoded target schema

The following table lists the source and target schema types that the response returns based on the asset
used to create the hierarchical mapper:

Asset Schema type

Intelligent structure model Any

Data service in the data services repository Native or XML based on whether Input in Native format is selected

Hierarchical schema from an XML file XML

Hierarchical schema from a JSON file JSON

GET example
The following request gets metadata about a hierarchial mapper:
GET <server URL>/h2h/api/v1/idsm/metadata/<hierarchical mapper ID>
Content-Type: application/json
Accept: application/json
IDS-SESSION-ID: jpaybAKQMsmdt7vLJ02z0
If successful, you might receive the following response:
{
"srcSchemaType": "XML",
"tgtSchemaType": "JSON",
"srcSchemaContent": "eJzNV+tP2zAQ/
85fEWXqJ5RHk1CgoqCKthNSAY3HhvYFuYlLLSV2SNzXtD9+Zz...",
"tgtSchemaContent": "eJzNkL0OgjAUhXeegnRm0ZiYuBFlwBA0/q2kylVrUPByHYjh3aVVI2nAusnS3n..."
}
The source and target schema values are truncated for brevity.

Job log files


You can request log information for completed Data Integration jobs from Operational Insights.

To get log entries from Operational Insights, use the following resources:

• Login. Use to log in to Informatica Intelligent Cloud Services and get the session ID to use in job log REST
API calls.
• jobLogEntries. Use to request log information for completed Data Integration jobs.

Job log files 425


When you use these resources, note the following rules:

• Use JSON format.


• Use the following URL:
<serverUrl>/cdiinsights-service/api/v1/analytical/Orgs(<orgID>)/<API name>
• Use the following request header format:
<METHOD> <serverUrl>/<URI> HTTP/<HTTP version>
Content-Type: application/json
Accept: application/json
IDS-SESSION-ID: <SessionId>
The server URL includes the name and region of the POD that your organization uses and the Informatica
Intelligent Cloud Services domain, [Link]. If you don't know the name and region of your
organization's POD, you can find it by logging in to Informatica Intelligent Cloud Services through the user
interface. The POD information is located in the browser's address bar.
In the following example, [Link] is the server URL:
[Link]
Use the server URL as the base URL in the header of REST API calls.
Note: If you use a tool such as Postman that automatically includes the HTTP version, don't enter the
HTTP version in the URL. If the HTTP version appears twice in the URL, the request fails.

Logging in
Use this resource to log into Informatica Intelligent Cloud Services when you use resources that require the
IDS-SESSION-ID in the call header. The IDS-SESSION-ID is included in a successful login response.

POST request
Use the following URL:
<login URL>/identity-service/api/v1/Login
The login URL includes the region where your organization is located and the Informatica Intelligent Cloud
Services domain, [Link]. You can find your organization's login region by opening the
Informatica Intelligent Cloud Services log in page. The regional login URL is located in the browser's address
bar before you log in to Informatica Intelligent Cloud Services.

In the following example, [Link] is the region URL:


[Link]
The following table describes the fields to include in the request:

Field Type Required Description

username String Yes Informatica Intelligent Cloud Services user name.


Maximum length is 255 characters.

password String Yes Informatica Intelligent Cloud Services password.


Maximum length is 255 characters.

POST response
Returns the user object if the request is successful. Returns the error object if errors occur.

Use the session ID returned in the response for subsequent requests.

426 Chapter 4: Data Integration REST API


The user object includes the following attributes:

Field Type Description

sessionId String REST API session ID for the current session. Use in most REST API request headers.

sessionExpireTime String Time the session expires.

id String User ID.

name String Informatica Intelligent Cloud Services user name.

currentOrgId String Current organization ID.

currentOrgName String Name of the current organization.

parentOrgId String ID of the parent organization.

orgId String ID of the organization the user belongs to.

orgName String Name of the organization the user belongs to.

groups String User group.

effectiveRoles String Roles assigned to the user.

effectivePrivileges String Privileges assigned to the user.

status String Status of the user.

timeZoneId String Time zone of the user. Time zone honors Daylight Saving Time. For more information,
see “Time zone codes” on page 581 .

authenticator String User authentication method.

Getting log information


Use the jobLogEntries resource to request log information for completed Data Integration jobs from
Operational Insights. When you use this resource, include the organization ID in the URL.

GET Request
You can request all the log information or filter the log response. You can request data for the last 33 days.
The response returns a maximum of 500 records for any applied filter.

To request information from the log, use the following URI:


/cdiinsights-service/api/v1/analytical/Orgs(<orgID>)/JobLogEntries
To filter the log response, use the following URI:
/cdiinsights-service/api/v1/analytical/Orgs(<orgID>)/JobLogEntries?<query parameters>

Job log files 427


You can include the following filters in the URI:

Parameter Type Description

filter String Query filter.

endTime Date Date and time the task ended.


Include in the filter parameter.

startswith String Runtime environment, Secure Agent, or asset that started the task.
Include in the filter parameter.

listfilter String Job status and asset type.

status in String Status of the task. You can filter by any of the following statuses:
- COMPLETED
- WARNING
- FAILED
- END
- SUCCESS
- STOPPED

assetType in String Type of asset:


- MTT. Mapping task.
- TASKFLOW. Advanced taskflow.
- MI_TASK. Mass ingestion task.
- DSS. Synchronization task.
- WORKFLOW. Linear taskflow.
- DRS. Replication task.
- PCS. PowerCenter task.
- DTT. Data transfer task.
- DLT. Data loader task.
- MAPPING
- BATCH_MAPPING. Dynamic mapping task.
- DMASK. Data masking task.

count Int If true, returns total records available for applied filter.

top Int Number of elements to return. For example, a value of 25 returns the first 25 records
available for the applied filters.
Max is 500.

skip Int Number of records to skip. For example, a value of 4 excludes the first four assets in the list.

orderby String Sort order in which to return the data.

GET request examples


The following examples show how you can use query parameters to request log information:

• To request a list of mapping tasks that successfully completed between October 8, 2023 at 6am and
October 9, 2023 at 6am, you might use the following request:
GET <serverUrl>/cdiinsights-service/api/v1/analytical/Orgs(<orgID>)/JobLogEntries?
$filter=(endTime%20ge%202023-10-08T06:00:00Z)%20and%20(endTime%20le
%202023-10-09T06:00:00Z)&listFilter=status%20in%20(SUCCESS)%20and%20assetType%20in
%20(MTT)&$count=true&$top=500&$skip=0
Content-type: application/json
Accept: application/json
icSessionId: <SessionId>

428 Chapter 4: Data Integration REST API


• To request a list of all jobs that completed between October 1, 2023 at 6am and October 31, 2023 at 6am
and sort the jobs by descending end time, you might use the following request:
GET >serverUrl>/cdiinsights-service/api/v1/analytical/Orgs(<orgID>)/JobLogEntries?
$filter=(endTime%20ge%202023-10-01T06:00:00Z)%20and%20(endTime%20le
%202023-11-31T06:00:00Z)&listFilter=status%20in
%20(COMPLETED,WARNING,FAILED,END,SUCCESS,STOPPED)%20and%20assetType%20in
%20(MTT,DTT,DMASK,PCS,DRS,DSS,MTT_TEST,BATCH_MAPPING,MAPPING,command,MI_TASK)&
$count=true&$top=500&$skip=0&$oderby=endTime desc
Content-type: application/json
Accept: application/json
icSessionId: <SessionId>

GET Response
Returns a jobLogEntry object for each row in the log. Returns the error object if errors occur.

When you request information for each row in the log, the jobLogEntry object includes the following
attributes:

Field Type Description

logEntryId String Log entry ID.

assetId String ID for the task.

runId Long ID for the task run.

assetName String Name of the asset.

instanceName String Name of the job in the following format:


<asset name>-<instance number>

orgId String Organization ID.

status String Whether the job completed successfully.

assetType String Type of task. For Data Integration jobs, returns one of the following codes:
- MTT. Mapping task.
- TASKFLOW. Advanced taskflow.
- MI_TASK. Mass ingestion task.
- DSS. Synchronization task.
- WORKFLOW. Linear taskflow.
- DRS. Replication task.
- PCS. PowerCenter task.
- DTT. Data transfer task.
- DLT. Data loader task.
- MAPPING.
- BATCH_MAPPING. Dynamic mapping task.
- DMASK. Data masking task.

startTime Date/time Start time for the task or linear taskflow. Uses Eastern Time Zone (ET).

endTime Date/time End time for the task or linear taskflow. Uses Eastern Time Zone (ET).

updateTime String Last time the task was updated.

duration String Time in seconds that the task ran.

errorMessage String Error message associated with the job.

Job log files 429


Field Type Description

location String Location of the asset.

rowsProcessed String Total number of rows processed by the task.

successRows String Number of rows that were successfully processed by the task.

errorRows String Number of rows that were not processed by the task.

runtimeEnv String Runtime environment where the task runs.

runtimeEnvName String Name of the runtime environment where the task runs.

startedBy String User or schedule that started the task.

subtasks String Number of subtasks that the task contains.

runContext String Method through which the task was initiated. Includes the following values:
-UI. Task was initiated through the user interface.
-SCHEDULER. Task was initiated through the task scheduler.
-REST-API. Task was initiated through the REST API.
-OUTBOUND MESSAGE. Task was initiated through an outbound message.

extraData String Additional information including the saasLogId and saasTaskId.

parentEntityId String ID of the parent task.

updateDayHour Date/Time Last time the task was updated.

taskId String ID of the task.

stopOnError Boolean Whether or not the runtime environment stops the task when a nonfatal error occurs.

isAtScale Boolean Whether or not the mapping associated with the task is in advanced mode.

parAssetName String Name of the parent asset.

parRunId String Run ID for the parent asset.

parLocation String Location of the parent asset.

parAssetType String Parent asset type.

agentId String Secure Agent that runs the task.

agentName String Name of the agent that runs the task.

projectName String Project in which the asset resides.

GET response example


You might get the following response when you request job log information for mapping tasks:
{
"@[Link]": "$metadata#JobLogEntries",
"@[Link]": 2,
"value": [

430 Chapter 4: Data Integration REST API


{
"logEntryId": "9hQOSzOu0GSeG0r73CzK8L",
"assetId": "jn94HPOUK4zlEoO07eGfEq",
"runId": "148201",
"assetName": "CDI_9102",
"instanceName": "CDI_9102-148201",
"orgId": "010cdi",
"status": "COMPLETED",
"assetType": "MTT",
"correlationId": "ZGVmN2E3ZDEtMTE2MC00NT",
"startTime": "2023-07-20T07:55:52Z",
"endTime": "2023-07-20T07:56:09Z",
"updateTime": null,
"duration": 17,
"errorMessage": "",
"location": "9102",
"rowsProcessed": 2,
"successRows": 2,
"errorRows": 0,
"runtimeEnv": "runtime environment",
"runtimeEnvName": "ASH0001",
"startedBy": "every_day",
"subtasks": 0,
"runContext": "SCHEDULER",
"extraData": "{\"saasLogId\":\"010AXYC100000000RC5Q\", \"runtimeType\":\"\",
\"isServerless\":\"false\", \"releaseVersion\":\"4400\", \"saasTaskId
\":\"010AXY0Z0000000005EM\"}",
"parentEntityId": null,
"statusDisplayName": "SUCCESS",
"updateDayHour": "2023-07-20T07:00:00Z",
"taskId": "010AXY0Z0000000005EM",
"stopOnError": "0",
"requestId": null,
"isAtScale": 0,
"parAssetName": null,
"parRunId": null,
"parLocation": "n/a",
"parAssetType": null,
"agentId": "010AXY08000000000003",
"agentName": "ASH0001",
"projectName": "9102"
}
{
"logEntryId": "7gQRt15YPsBcdK6RsozzSJ",
"assetId": "iwm48QrytmidcBrdpMElu6",
"runId": "145708",
"assetName": "CDI-9845_test2",
"instanceName": "CDI-9845_test2-145708",
"orgId": "010cdi",
"status": "COMPLETED",
"assetType": "MTT",
"correlationId": "NjNlNGFhY2QtYzFjZC00MT",
"startTime": "2023-07-20T07:55:52Z",
"endTime": "2023-07-20T07:56:03Z",
"updateTime": null,
"duration": 11,
"errorMessage": "",
"location": "Default",
"rowsProcessed": 1000,
"successRows": 1000,
"errorRows": 0,
"runtimeEnv": "runtime environment",
"runtimeEnvName": "ASH0001",
"startedBy": "CDI-9845_scheduler",
"subtasks": 0,
"runContext": "SCHEDULER",
"extraData": "{\"saasLogId\":\"010AXYC100000000RC5P\", \"runtimeType\":\"\",
\"isServerless\":\"false\", \"releaseVersion\":\"4400\", \"saasTaskId
\":\"010AXY0Z0000000005N4\"}",
"parentEntityId": null,
"statusDisplayName": "SUCCESS",

Job log files 431


"updateDayHour": "2023-07-20T07:00:00Z",
"taskId": "010AXY0Z0000000005N4",
"stopOnError": "0",
"requestId": null,
"isAtScale": 0,
"parAssetName": null,
"parRunId": null,
"parLocation": "n/a",
"parAssetType": null,
"agentId": "agentID",
"agentName": "ASH0001",
"projectName": "Default"
}

Linear taskflows
Use this resource to request the details of a linear taskflow or the details of all linear taskflows in the
organization. You can also create, update, or delete a linear taskflow.

GET request
To request the details of a particular linear taskflow, include the linear taskflow ID or linear taskflow name in
the URI. Use one of the following URIs:
/api/v2/workflow/<id>
/api/v2/workflow/name/<name>
If you use the linear taskflow name in the URI and the linear taskflow name includes a space, replace the
space with %20. For example:
/api/v2/workflow/name/my%20linear%20taskflow
To request the details of all linear taskflows in the organization, use the following URI:
/api/v2/workflow
Optionally, you can receive the response in simple mode which significantly improves performance. When
you enable simple mode, the response does not include the ScheduleId attribute and the email attributes. To
receive the response in simple mode, include simpleMode=true in the request. Use the following URI to
receive details of all linear taskflows using simple mode:
/api/v2/workflow/?simpleMode=true

GET response
If successful, returns the workflow object for the requested linear taskflow. Or, if you request the details for
all linear taskflows in the organization, returns a workflow object for each linear taskflow in the organization.

Returns an error object if errors occurred.

The workflow object includes the following attributes:

Field Type Description

id String Linear taskflow ID.

orgId String Organization ID.

432 Chapter 4: Data Integration REST API


Field Type Description

name String Linear taskflow name.

description String Description.

createTime Date/time Time the linear taskflow was created.

updateTime Date/time Last time the linear taskflow was updated.

createdBy String User who created the linear taskflow.

updatedBy String User who last updated the linear taskflow.

errorTaskEmail Object that includes the taskEmail object for error notifications.

id String Included in taskEmail object for errorTaskEmail.


ID.

emails String Included in taskEmail object for errorTaskEmail.


Email address that receives email notification when a task fails to complete.

successTaskEmail Object that includes the taskEmail object for success notifications.

id String Included in taskEmail object for successTaskEmail.


ID.

emails String Included in taskEmail object for successTaskEmail.


Email address that receives email notification when a task completes
successfully.

warningTaskEmail Object that includes the taskEmail object for warning notifications.

id String Included in taskEmail object for warningTaskEmail.


ID.

emails String Included in taskEmail object for warningTaskEmail.


Email address that receives email notification when a task completes with
errors.

agentId String Agent that runs the task.

runtimeEnvironmentId String Runtime environment used for the task.

scheduleId String Schedule associated with the linear taskflow, if any.

preProcessingCmd String Command to run before the task.

postProcessingCmd String Command to run after the task completes.

tasks Defines each task associated with the linear taskflow. Includes a workflowTask
object for each task.

Linear taskflows 433


Field Type Description

taskId String Included in the workflowTask object.


Task ID.

type String Included in the workflowTask object.


Workflow task type. Returns one of the following codes:
- DMASK. Masking task.
- DRS. Replication task.
- DSS. Synchronization task.
- MTT. Mapping task.
- PCS. PowerCenter task.

name String Included in the workflowTask object.


Task name.

stopOnError Boolean Included in the workflowTask object.


Stops the linear taskflow if a task fails to complete.

stopOnWarning Boolean Included in the workflowTask object.


Stops the linear taskflow if a task completes with warnings.

POST request
To create a linear taskflow, use the following URI:
/api/v2/workflow
If you want to specify a location for the linear taskflow, include the container ID in the request. If the
container ID isn't included in the request, the linear taskflow is created in the Default folder. You can find the
container ID for a project or folder in the Data Integration user interface. On the Explore page, select the
folder. In the URL, the last string of characters is the container ID.

For example, in the following URL, the container ID is dH2DuGJYda7ijgW4Sm32sR


[Link]
dH2DuGJYda7ijgW4Sm32sR
To update a linear taskflow, include the workflow ID as shown in the following example:
/api/v2/workflow/<id>
When you update a linear taskflow, Data Integration replaces the existing linear taskflow with the update.

You can submit a partial update using partial mode. If you want to update a field in the workflowTask object
using partial mode, you must include the taskId field. To submit a request using partial mode, use a JSON
request and include the following line in the header:
Update-Mode=PARTIAL
With this URI, you can use the following attributes in the workflow object:

Field Type Required Description

name String Yes Name of the linear taskflow.

description String Description of the linear taskflow.

434 Chapter 4: Data Integration REST API


Field Type Required Description

containerId String ID of the project or folder to contain the linear taskflow.


If not included in the request, the linear taskflow is created in the
Default folder.

errorTaskEmail Object that includes the taskEmail object for error notifications.

id String Include in taskEmail object for errorTaskEmail.


ID.

emails String Include in taskEmail object for errorTaskEmail.


Email address that receives email notification when a task fails to
complete.

successTaskEmail Object that includes the taskEmail object for success notifications.

id String Include in taskEmail object for successTaskEmail.


ID.

emails String Include in taskEmail object for successTaskEmail.


Email address that receives email notification when a task completes
successfully.

warningTaskEmail Object that includes the taskEmail object for warning notifications.

id String Include in taskEmail object for warningTaskEmail.


ID.

emails String Include in taskEmail object for warningTaskEmail.


Email address that receives email notification when a task completes
with errors.

tasks Use a workflowTask object to define the following attributes for each
task you want to include in the linear taskflow.

taskId String Yes Include in the workflowTask object.


Task ID.

Yes Include in the workflowTask object.


Workflow task type. Use one of the following codes:
- DMASK. Masking task.
- DRS. Replication task.
- DSS. Synchronization task.
- MTT. Mapping task.
- PCS. PowerCenter task.

name String Yes Include in the workflowTask object.


Name of the task.

Linear taskflows 435


Field Type Required Description

stopOnError Boolean Include in the workflowTask object.


Stops the linear taskflow if the task fails to complete. Use one of the
following options:
- 1. True. Stop on error.
- 2. False. Do not stop on error.

stopOnWarning Boolean Include in the workflowTask object.


Stops the linear taskflow if a task completes with warnings. Use one of
the following options:
- 1. True. Stop on error.
- 2. False. Do not stop on error.

scheduleId String Schedule for the linear taskflow.

POST response
If successful, returns the workflow response object for the linear taskflow that you created or updated.

Returns the error object if errors occur.

DELETE request
To delete a linear taskflow, use the linear taskflow ID in the following URI:
/api/v2/workflow/<id>

DELETE response
Returns the 200 response code if the request is successful.

Returns the error object if errors occur.

POST example
To update an existing linear taskflow with an ID of 0000342J0000K, you might use the following request:
POST <serverUrl>/api/v2/workflow/0000342J0000K
Content-Type: application/json
Accept: application/json
icSessionId: <icSessionId>

{
"@type": "workflow",
"name": "linear taskflow",
"tasks":[{
"@type":"workflowTask",
"taskId":"0000100I00000000001G",
"type":"DSS",
"name":"DSS_DQ5",
"stopOnError":"false"
},{
"@type":"workflowTask",
"taskId":"0000100Z0000000000B8",
"type":"MTT",
"name":"CIT_SimpleTemplate2",
"stopOnError":"false"
},{
"@type":"workflowTask",
"taskId":"0000100G000000000002",
"type":"DRS",
"name":"SF2File",
"stopOnError":"false"
}]
}

436 Chapter 4: Data Integration REST API


A successful request returns the workflow object that you updated.

Mappings
Use this resource to request the details for a mapping or the details of all mappings in the organization.

GET Request
You can request the following information using a mapping GET request:

• Details of all mappings in the organization.


• Details for a particular mapping.
• An image of a mapping.

Details of all mappings in the organization

To request the details of all mappings in the organization, use the following URI:
/api/v2/mapping
Details for a particular mapping
To request the details of a particular mapping, include the mapping ID or mapping name in the URI. Use
one of the following URIs:
/api/v2/mapping/<id>
/api/v2/mapping/name/<name>
If you use the mapping name in the URI and the mapping name value includes a space, replace the space
with %20. For example:
/api/v2/mapping/name/my%20mapping
You can also request a specific mapping by name with the following URI:
/api/v2/mapping/search?name=<name>
Image of a mapping

To request an image of a mapping, specify the mapping ID and whether the mapping is deployed or not.
Use the following URI:
/api/v2/mapping/<id>/image?deployed=<true|false>
For example:
/api/v2/mapping/N0A1700000000001J/image?deployed=true

GET Response
If successful, returns the mapping object for the requested mapping.

If you request the details for all mappings, returns the mapping object for every mapping in the organization
without parameter details.

Returns the error object if errors occur.

Mappings 437
The mapping object includes the following attributes:

Field Type Description

id String Mapping ID.

orgId String Organization ID.

name String Mapping name.

description String Description of the mapping.

createTime Date/time Time the mapping was created.

updateTime Date/time Last time the mapping was updated.

createdBy String User who created the mapping.

updatedBy String User who last updated the mapping.

bundleObjectId String ID of the bundle that includes the mapping, if applicable.

bundleVersion String Version of the bundle that includes the mapping, if applicable.

templateId String ID of the template created internally to represent the mapping.

deployTime Date/time Time the mapping was deployed.

hasParameters Boolean Indicates if the mapping includes parameters. Returns true or


false.

valid Boolean Indicates if the mapping is valid. Returns true or false.

fixedConnection Boolean Indicates if the mapping has fixed connections. Returns true or
false.

hasParametersDeployed Boolean Indicates if the mapping has parameters deployed. Returns true
or false.

fixedConnectionDeployed Boolean Indicates if the mapping has fixed connections deployed.


Returns true or false.

deployedTemplateId String ID of the template created internally to represent the deployed


mapping.

tasks Int Number of tasks that use the mapping.

parameters Parameters used in the mapping. Includes an mtTaskParameter


object for each parameter.

id Long Included in the mtTaskParameter object.


Parameter ID.

name String Included in the mtTaskParameter object.


Parameter name.

438 Chapter 4: Data Integration REST API


Field Type Description

type String Included in the mtTaskParameter object.


Parameter type.

description String Included in the mtTaskParameter object.


Parameter description.

customFuncId String Mapplet ID for mapplet type parameters.

uiProperties String Included in the mtParameter object.


Display property for the parameter. Includes the following
information:
- cnxtype. Connection type for the parameter.
- logcnx. Logical connection.
- order. Display order.
- wizstep. Wizard step to display the parameter.
- default. Default value.
- visible. Whether the parameter is visible.
- editable. Whether the parameter is editable.
- required. Whether the parameter is required.
- paramtype. UI control type for string parameters. Returns one
of the following responses:
- Condition. Filter condition input control.
- Expression. Expression editor input control.
- Field. Field selection input control.
- Fieldmap. Field mapping input control. Includes the
following attributes:
- lefttitle. Left title for the field mapping display.
- righttitle. Right title for the field mapping display.
- leftfs. Set of fields to display in the left table of the field
mapping display.
- rightfs. Set of fields to display in the right table of the
field mapping display.
- leftfilter. Regular expression to limit the fields that
display in the left table of the field mapping display.
- rightfilter. Regular expression to limit the fields that
display in the right table of the field mapping display.
- staticlist. List of fields to display on the right side of the
field mapping display.

inOutParameters In-out parameter used in the mapping. Includes a


mtTaskInOutParameter object for each in-out parameter.

id Long Included in the mtTaskInOutParameter object.


Parameter ID.

name String Included in the mtTaskInOutParameter object.


Parameter name.

Mappings 439
Field Type Description

description String Included in the mtTaskInOutParameter object.


Description of the parameter.

initialValue String Included in the mtTaskInOutParameter object.


Initial value for the parameter.

datatype String Included in the mtTaskInOutParameter object.


Data type of the parameter.

precision String Included in the mtTaskInOutParameter object.


Precision of the parameter.

scale String Included in the mtTaskInOutParameter object.


Scale of the parameter.

retentionPolicy String Included in the mtTaskInOutParameter object.


Determines when the task retains the current value.

aggregationType String Included in the mtTaskInOutParameter object.


Determines the final current value of the parameter when the
task runs.

currentValue String Included in the mtTaskInOutParameter object.


Current value for the parameter.

mappingPreviewFileRecordId String ID of the image file that is used when previewing a mapping.

deployedMappingPreviewFileRecordId String ID of the image file that is used when previewing a deployed
mapping.

references Reference information. Returns the reference object, which


includes the following attributes:

refObjectId String Included in the reference object.

refType String Included in the reference object.

GET Example
To request mapping details for all mappings in the organization, you might use the following request:
GET <serverUrl>/api/v2/mapping
Content-type: application/xml
Accept: application/xml
icSessionId: <icSessionId>

440 Chapter 4: Data Integration REST API


Mapping tasks
Use this resource to request the details of a mapping task. You can also create, update, or delete a mapping
task.

Note: You cannot use the REST API to create a mapping task based on a mapping that includes a mapplet.

GET request
To request the details of a mapping task, you can use the task ID, federated task ID, or task name. To find the
federated task ID, use the lookup resource. The federated task ID is the value of the id field in the lookup
response.

Use one of the following URIs:


/api/v2/mttask/<id>
/api/v2/mttask/frs/<id>
/api/v2/mttask/name/<name>
If you use the task name in the URI and the task name includes a space, replace the space with %20. For
example:
/api/v2/mttask/name/task%20name

GET response
Returns the mtTask object for the requested task ID or task name.

Returns the error object if errors occurred.

The following table describes attributes in an mtTask object:

Field Type Description

id String Task ID.

orgId String Organization ID.

name String Task name.

agentId String Agent that runs the task.

runtimeEnvironmentId String Runtime environment used for the task.

maxLogs Long Number of session log files and import log files Data Integration retains.

description String Description.

createTime Date/time Time the task was created.

updateTime Date/time Last time the task was updated.

createdBy String User who created the task.

updatedBy String User who last updated the task.

schemaMode String Mode in which Data Integration refreshes the data object schema.

Mapping tasks 441


Field Type Description

errorTaskEmail Object that includes the taskEmail object for error notifications

id String Included in taskEmail object for errorTaskEmail.


ID.

emails String Included in taskEmail object for errorTaskEmail.


Email address that receives email notification when a task fails to complete.

successTaskEmail Object that includes the taskEmail object for success notifications.

id String Included in taskEmail object for successTaskEmail.


ID.

emails String Included in taskEmail object for successTaskEmail.


Email address that receives email notification when a task completes
successfully.

warningTaskEmail Object that includes the taskEmail object for warning notifications.

id String Included in taskEmail object for warningTaskEmail.


ID.

emails String Included in taskEmail object for warningTaskEmail.


Email address that receives email notification when a task completes with
errors.

parameters Parameters associated with the task. Includes attributes in the


mtTaskParameter object for each parameter.

id Long Included in the mtTaskParameter object.


Parameter ID.

name String Included in the mtTaskParameter object.


Parameter name.

type String Included in the mtTaskParameter object.


Parameter type.

text String Included in the mtTaskParameter object.


Parameter value.

label String Included in the mtTaskParameter object.


Parameter label.

description String Included in the mtTaskParameter object.


Parameter description.

sourceConnectionId String Included in the mtTaskParameter object.


Source connection ID.

442 Chapter 4: Data Integration REST API


Field Type Description

targetConnectionId String Included in the mtTaskParameter object.


Target connection ID.

lookupConnectionId String Included in the mtTaskParameter object.


Lookup connection ID.

transfConnectionId String Included in the mtTaskParameter object.


Connection ID of mapplet. Reserved for future use.

midstreamConnectionId String Included in the mtTaskParameter object.


Connection ID of midstream transformation.

sourceObject String Included in the mtTaskParameter object.


Source object name.

sourceObjectLabel String Included in the mtTaskParameter object.


Source object label.

targetObject String Included in the mtTaskParameter object.


Target object name.

targetObjectLabel String Included in the mtTaskParameter object.


Target object label.

lookupObject String Included in the mtTaskParameter object.


Lookup object name.

lookupObjectLabel String Included in the mtTaskParameter object.


Lookup object label.

midstreamObject String Included in the mtTaskParameter object.


Midstream object name.

midstreamObjectLabel String Included in the mtTaskParameter object.


Midstream object label.

newObject Boolean Included in the mtTaskParameter object.


Whether the application creates a new flat file target. Returns True when it
creates a target.

newObjectName String Included in the mtTaskParameter object.


Name of the flat file target.

operationType String Included in the mtTaskParameter object.


The task operation for the target.

truncateTarget Boolean Included in the mtTaskParameter object.


Whether the application truncates a database target before writing to it.
Returns True when it truncates the target.

Mapping tasks 443


Field Type Description

srcFFAttrs Included in the mtTaskParameter object.


Object that contains the source file attributes in the flatFileAttrs object.

tgtFFAttrs Included in the mtTaskParameter object.


Object that contains the target file attributes in the flatFileAttrs object.

lkpFFAttrs Included in the mtTaskParameter object.


Object that contains the lookup file attributes in the flatFileAttrs object.

flatFileAttrs Object that includes attributes for the source, target, and lookup files.

id Long Included in the flatFileAttrs object.


Field ID.

delimiter String Included in the flatFileAttrs object.


Character used to separate fields

textQualifier String Included in the flatFileAttrs object.


Quote character that defines the boundaries of text strings

escapeChar String Included in the flatFileAttrs object.


Character immediately preceding a field delimiter character embedded in an
unquoted string, or immediately preceding the quote character in a quoted
string

headerLineNo Int Included in the flatFileAttrs object.


Number of header lines

firstDataRow Int Included in the flatFileAttrs object.


The row number where the data begins in the file.

rowDelimiter Int Included in the flatFileAttrs object.


Line break character. Returns the decimal code for an ASCII character.

consecutiveDelimiter Boolean Included in the flatFileAttrs object.


Indicates whether one or more consecutive delimiters are treated as one.

multiDelimitersAsAnd Boolean Included in the flatFileAttrs object.


If the delimiter is more than one character, indicates whether the characters
are treated as a single delimiter or multiple delimiters.

customFuncCfg Included in the mtTaskParameter object.


Object that defines configuration for mapplets used in the task. Includes
attributes in the customFuncConfig object for each mapplet.

id Long Included in the customFuncConfig object.


Mapplet ID.

connections Included in the customFuncConfig object.


Object to define connections used in a mapplet. Includes information in the
pcsConnection object for each connection.

444 Chapter 4: Data Integration REST API


Field Type Description

id Long Included in the pcsConnection object.

name String Included in the pcsConnection object.


Connection name.

type String Included in the pcsConnection object.


Connection type.

subtype String Included in the pcsConnection object.


Connection subtype.

description String Included in the pcsConnection object.


Description of the connection.

connectionId String Included in the pcsConnection object.


Connection ID.

showBusinessNames Boolean Included in the mtTaskParameter object.


Whether the task displays business names. Returns True when it shows
business names.

naturalOrder Boolean Included in the mtTaskParameter object.


The order that the task uses to display fields. Returns True for the order
returned by the connection. Returns False for alphabetic order.

isRESTModernSource Boolean Included in the mtTaskParameter object.


Always set to True to enable extended objects.

customQuery String Included in the mtTaskParameter object.


The custom query specified in Mapping Designer or mapping task query
options.

overriddenFields Included in the mtTaskParameter object.


Changes to field metadata in the mapping task. Includes information in the
mtTaskOverriddenField object for each overridden field.

name String Included in the mtTaskOverriddenField object.


Field name.

type String Included in the mtTaskOverriddenField object.


Field type.

precision Int Included in the mtTaskOverriddenField object.


Length of the field in bytes.

scale Int Included in the mtTaskOverriddenField object.


Number of digits after the decimal point for numeric values.

platformType String Included in the mtTaskOverriddenField object.


Platform data type for the field.

Mapping tasks 445


Field Type Description

tgtFieldRefs String Included in the mtTaskParameter object.


Salesforce field reference IDs.

extendedObject Included in the mtTaskParameter object.


The source or target with more than one object joined.

targetUpdateColumns String Included in the mtTaskParameter object.


List of column names used to update records in the target object.

runtimeAttrs String Included in the mtTaskParameter object.


Advanced connection properties for connections used in a task.
Use a runtimeAttrs object to define key-value pairs of advanced connection
properties. Use an entry object for each key-value pair.
For the attribute name, use the advanced connection property name as
displayed in the Data Integration user interface.
For more information about advanced connection properties, see the Data
Integration help.

dataFormat Included in the mtTaskParameter object.


Data format provided by the connector.
Includes attributes in the dataFormat object for each connector.
The dataFormat object is not applicable to all connectors. To see if
dataFormat is applicable to the connectors you are using, see the help for the
relevant connectors.

formatId Included in the dataFormat object.


Data format type provided by the connector, such as FLAT, AVRO, PARQUET,
JSON, or XML.

dataFormatAttributes Included in the dataFormat object.


Format attributes for the data format type. For example, for a flat file, the
dataFormatAttributes object includes values such as escapeChar, delimiter,
and qualifier.

sequences Defines values for the Sequence transformation. Includes the


sequenceDefinition object for each sequence transformation.

txName String Included in the sequenceDefinition object.


Name of the Sequence transformation.

initialValue String Included in the sequenceDefinition object.


The initial value of the sequence.

currentValue String Included in the sequenceDefinition object.


The value used for the last row added to the transformation.

inOutParameters In-out parameter used in the task. Includes a mtTaskInOutParameter object


for each in-out parameter.

id Long Included in the mtTaskInOutParameter object.


Parameter ID.

446 Chapter 4: Data Integration REST API


Field Type Description

name String Included in the mtTaskInOutParameter object.


Parameter name.

description String Included in the mtTaskInOutParameter object.


Description of the parameter.

initialValue String Included in the mtTaskInOutParameter object.


Initial value for the parameter.

datatype String Included in the mtTaskInOutParameter object.


Data type of the parameter.

precision String Included in the mtTaskInOutParameter object.


Precision of the parameter.

scale String Included in the mtTaskInOutParameter object.


Scale of the parameter.

retentionPolicy String Included in the mtTaskInOutParameter object.


Determines when the task retains the current value.

aggregationType String Included in the mtTaskInOutParameter object.


Determines the final current value of the parameter when the task runs.

currentValue String Included in the mtTaskInOutParameter object.


Current value for the parameter.

lastRunTime Date/time Time the task last run.

mappingId String Mapping ID. Returned when a mapping is the basis for the task.

scheduleId String Schedule associated with the task, if any.

shortDescription String The first 50 characters of the description.

sessionProperties String Advanced session properties associated with the task.


Includes advanced session properties in a sessionProperties object.

outboundMessageUrlTo String Outbound message URL token for the task, if it exists.
ken

outboundMessageUrlQ Long Outbound message URL queue time for the task, if it exists.
ueueTime

preProcessingCmd String Command to run before the task.

postProcessingCmd String Command to run after the task completes.

parameterFileName String The name of the parameter file used in the task.

verbose Boolean Whether Data Integration generates additional data in the logs to use for
troubleshooting purposes. Returns True or False.

Mapping tasks 447


Field Type Description

connRuntimeAttrs Included in the mtTaskParameter parameter. Includes an


mtTaskConnRuntimeAttr object for each connector.
The connRuntimeAttrs object applies to the CDC connectors.

id String Included in the mtTaskConnRuntimeAttr object.


Internal id for each mtTaskConnRuntimeAttr object.

name String Included in the mtTaskConnRuntimeAttr object.


The internal ID of a connection runtime attribute for a CDC connector.

value String Included in the mtTaskConnRuntimeAttr object.


The value associated with the name attribute.

connectionID String Included in the mtTaskConnRuntimeAttr object.


The CDC connection ID.

POST request
To create a mapping task, use the following URI:
/api/v2/mttask/
If you want to specify a location for the task, include the container ID in the request. If the container ID isn't
included in the request, the task is created in the Default folder. You can find the container ID for a project or
folder in the Data Integration user interface. On the Explore page, select the folder. In the URL, the last string
of characters is the container ID.

For example, in the following URL, the container ID is dH2DuGJYda7ijgW4Sm32sR:


[Link]
dH2DuGJYda7ijgW4Sm32sR
To update a mapping task, include the task ID or federated task ID in the URI. To find the federated task ID,
use the lookup resource. The federated task ID is the value of the id field in the lookup response.

Use one of the following URIs:


/api/v2/mttask/<id>
/api/v2/mttask/frs/<id>
You can submit a partial update using partial mode. If you want to update a field that is within a collection
using partial mode, you must include the key field for the collection. The following table lists the collections
in the mttask resource and the corresponding key fields:

Collection Key Fields

mtTaskInOutParameter name

sequenceDefinition txName

mtTaskOverriddenField name

448 Chapter 4: Data Integration REST API


Collection Key Fields

mtTaskParameter name
type

objects name

To submit a request using partial mode, use a JSON request and include the following line in the header:
Update-Mode=PARTIAL
The following table describes the attributes you can include in an mtTask object:

Field Type Required Description

name String Name of the task.

containerId String ID of the project or folder to contain the


task.
If not included in the request, the task is
created in the Default folder.

description String Description of the task.

runtimeEnvironmentId String Yes ID of the runtime environment used for the


task.

mappingId String Required when a mapping ID of the mapping used in the task.
is the basis for task.

scheduleId String Schedule associated with the task, if any.

sessionProperties String Advanced session properties. Use a


sessionProperties object to define key-
value pairs of advanced session
properties. Use an entry object for each
key-value pair.
For the attribute name, use the advanced
session property name as displayed in the
Data Integration user interface.

schemaMode String Mode in which Data Integration refreshes


the data object schema.
Use one of the following values:
- async
- dynamic
Default is async.
If you run multiple mapping tasks at the
same time, Data Integration picks up the
latest schema regardless of the schema
mode.

errorTaskEmail Object that includes the taskEmail object


for error notifications

Mapping tasks 449


Field Type Required Description

id String Include in taskEmail object for


errorTaskEmail.
ID.

emails String Include in taskEmail object for


errorTaskEmail.
Email address that receives email
notification when a task fails to complete.

successTaskEmail Object that includes the taskEmail object


for success notifications.

id String Include in taskEmail object for


successTaskEmail.
ID.

emails String Include in taskEmail object for


successTaskEmail.
Email address that receives email
notification when a task completes
successfully.

warningTaskEmail Object that includes the taskEmail object


for warning notifications.

id String Include in taskEmail object for


warningTaskEmail.
ID.

emails String Include in taskEmail object for


warningTaskEmail.
Email address that receives email
notification when a task completes with
errors.

parameters Parameters associated with the task. Use


an mtTaskParameter object to define the
following attributes for each parameter.

id Long Include in the mtTaskParameter object.


System generated parameter ID. You
cannot update this value

name String Include in the mtTaskParameter object.


Parameter name. Key field for the
mtTaskParameter collection.

450 Chapter 4: Data Integration REST API


Field Type Required Description

type String Include in the mtTaskParameter object.


Parameter type. Key field for the
mtTaskParameter collection. Use one of
the following values:
- STRING
- SOURCE
- TARGET
- MAPPLET
- LOOKUP

text String Include in the mtTaskParameter object.


Parameter value.

label String Include in the mtTaskParameter object.


Parameter label.

description String Include in the mtTaskParameter object.


Parameter description.

sourceConnectionId String Include in the mtTaskParameter object.


Source connection ID.

targetConnectionId String Include in the mtTaskParameter object.


Target connection ID.

lookupConnectionId String Include in the mtTaskParameter object.


Lookup connection ID.

newFlatFile Boolean Include in the mtTaskParameter object.


Whether Data Integration creates a new
flat file target. Use one of the following
values:
- True.
- False.

flatFileName String Include in the mtTaskParameter object.


Name of the flat file target.

newObject Boolean Include in the mtTaskParameter object.


Whether the application creates a new flat
file target. Returns True when it creates a
target.

newObjectName String Include in the mtTaskParameter object.


Name of the flat file target.

Mapping tasks 451


Field Type Required Description

operationType String Include in the mtTaskParameter object.


The task operation for the target.
Use one of the following values:
- Insert
- Upsert
- Update
- Delete
- Rowbased
Note: The Rowbased value corresponds to
the Data Driven value in the user
interface.

dataDrivenCondition String Include in the mtTaskParameter object.


Applicable when operationType is
Rowbased.
Defines expressions that flag rows for an
insert, update, delete, or reject operation.
For example: IIF(ISNULL
(ISDELETED), DD_INSERT

truncateTarget Boolean Include in the mtTaskParameter object.


Whether the application truncates a
database target before writing to it. Use
one of the following values:
- True.
- False.

srcFFAttrs Include in the mtTaskParameter object.


Object for the source file attributes.
Include the attributes in the flatFileAttrs
object.

tgtFFAttrs Include in the mtTaskParameter object.


Object for the target file attributes.
Include the attributes in the flatFileAttrs
object.

lkpFFAttrs Include in the mtTaskParameter object.


Object for the lookup file attributes.
Include the attributes in the flatFileAttrs
object.

flatFileAttrs Object to hold attributes for the source,


target, and lookup files.

id Long Include in the flatFileAttrs object.


Field ID.

delimiter String Include in the flatFileAttrs object.


Character used to separate fields.

452 Chapter 4: Data Integration REST API


Field Type Required Description

textQualifier String Include in the flatFileAttrs object.


Quote character that defines the
boundaries of text strings.

escapeChar String Include in the flatFileAttrs object.


Character immediately preceding a field
delimiter character embedded in an
unquoted string, or immediately preceding
the quote character in a quoted string.

headerLineNo Int Include in the flatFileAttrs object.


Number of header lines.

firstDataRow Int Include in the flatFileAttrs object.


The row number where the data begins in
the file.

rowDelimiter Int Include in the flatfileAttrs object.


Line break character. Enter the decimal
code for an ASCII character between 1
and 32.
Default is 10, which is the line feed
character.

consecutiveDelimiter Boolean Included in the flatFileAttrs object.


Indicates whether one or more
consecutive delimiters are treated as one.
Default is false.

multiDelimitersAsAnd Boolean Included in the flatFileAttrs object.


If the delimiter is more than one
character, indicates whether the
characters are treated as a single
delimiter or multiple delimiters. Default is
true.

customFuncCfg Include in the mtTaskParameter object.


Object to define configuration for
mapplets used in the task. Use a
customFuncConfig object to define each
mapplet.

id Long Include in the customFuncConfig object.


Mapplet ID.

connections Include in the customFuncConfig object.


Object to define connections used in a
mapplet. Use a pcsConnection object for
each connection.
For more information about connections,
see “Connections” on page 318.

id Long Include in the pcsConnection object.

Mapping tasks 453


Field Type Required Description

name String Include in the pcsConnection object.


Connection name.

type String Include in the pcsConnection object.


Connection type.

subtype String Include in the pcsConnection object.


Connection subtype.

description String Include in the pcsConnection object.


Description of the connection.

connectionId String Include in the pcsConnection object.


Connection ID.

overriddenFields Include in the mtTaskParameter object.


Changes to field metadata in the mapping
task. Use the mtTaskOverriddenField
object for each overridden field.

name String Include in the mtTaskOverriddenField


object.
Field name. Key field for the
mtTaskOverriddenField collection.

type String Include in the mtTaskOverriddenField


object.
Field type.

precision Int Include in the mtTaskOverriddenField


object.
Length of the field in bytes.

scale Int Include in the mtTaskOverriddenField


object.
Number of digits after the decimal point
for numeric values.

platformType String Include in the mtTaskOverriddenField


object.
Platform data type for the field.

tgtFieldRefs String Include in the mtTaskParameter object.


Salesforce field reference IDs.

454 Chapter 4: Data Integration REST API


Field Type Required Description

runtimeAttrs String Include in the mtTaskParameter object.


Advanced connection properties for
connections used in a task.
Use a runtimeAttrs object to define key-
value pairs of advanced connection
properties. Use an entry object for each
key-value pair.
For the attribute name, use the advanced
connection property name as displayed in
the Data Integration user interface.
For more information about advanced
connection properties, see the Data
Integration help.

parameterFileName String Include in the mtTaskParameter object.


Name of the parameter file used in the
task.

parameterFileDir String Include in the mtTaskParameter object.


Path for the directory that contains the
parameter file.

dataFormat Include in the mtTaskParameter object.


Data format provided by the connector.
Include attributes in the dataFormat
object for each connector.
The dataFormat object is not applicable to
all connectors. To see if dataFormat is
applicable to the connectors you are
using, see the help for the relevant
connectors.

formatId String Include in the dataFormat object.


Data format type provided by the
connector, such as FLAT, AVRO,
PARQUET, JSON, or XML.

fwConfigId String Required when formatID Include in the dataFormat object.


is set to Flat and fixed- Valid fixed-width format ID.
width mode is used.

dataFormatAttributes String Include in the dataFormat object.


Format attributes for the data format
type. For example, for a flat file data
format, the dataFormatAttributes object
includes values such as escapeChar,
delimiter, and qualifier.

inOutParameters In-out parameter used in the task. Include


an mtTaskInOutParameter object for each
in-out parameter.

Mapping tasks 455


Field Type Required Description

id Long Include in the mtTaskInOutParameter


object.
Parameter ID.

name String Include in the mtTaskInOutParameter


object.
Parameter name. Key field in the
mtTaskInOutParameter collection.

description String Include in the mtTaskInOutParameter


object.
Description of the parameter.

initialValue String Include in the mtTaskInOutParameter


object.
Initial value for the parameter.

datatype String Include in the mtTaskInOutParameter


object.
Data type of the parameter.

precision String Include in the mtTaskInOutParameter


object.
Precision of the parameter.

scale String Include in the mtTaskInOutParameter


object.
Scale of the parameter.

retentionPolicy String Include in the mtTaskInOutParameter


object.
Determines when the task retains the
current value. Include one of the following
values:
- ON_SUCCESS_OR_WARNING
- ON_SUCCESS
- ON_WARNING
- NEVER

aggregationType String Include in the mtTaskInOutParameter


object.
Determines the final current value of the
parameter when the task runs.

currentValue String Include in the mtTaskInOutParameter


object.
Current value for the parameter.

outboundMessageUrlToken String Outbound message URL token for the


task, if it exists.

outboundMessageUrlQueueTime Long Outbound message URL queue time for


the task, if it exists.

456 Chapter 4: Data Integration REST API


Field Type Required Description

preProcessingCmd String Command to run before the task.

postProcessingCmd String Command to run after the task completes.

maxLogs Long Number of session log files and import


log files to retain. By default, Data
Integration stores each type of log file for
10 runs before it overwrites the log files
for new runs.

verbose Boolean Whether to generate additional data in the


logs to use for troubleshooting purposes.
Use True or False.

agentId String Agent that runs the task.

sequences Defines values for the Sequence


transformation. Use a sequenceDefinition
object for each sequence transformation.

txName String Include in the sequenceDefinition object.


Name of the Sequence transformation.
Key field in the sequenceDefinition
collection.

initialValue String Include in the sequenceDefinition object.


The initial value of the sequence.

currentValue String Include in the sequenceDefinition object.


The value used for the last row added to
the transformation.

connRuntimeAttrs Include in the mtTaskParameter


parameter. Include an
mtTaskConnRuntimeAttr object for each
CDC connector for which runtime
attributes will be changed.
The connRuntimeAttrs object applies to
the CDC connectors.

id String Required for Include in the mtTaskConnRuntimeAttr


connRuntimeAttrs object. object.
Include the internal ID of the
mtTaskConnRuntimeAttr object.

Mapping tasks 457


Field Type Required Description

name String Required for Include in the mtTaskConnRuntimeAttr


mtTaskConnRuntimeAttr. object.
Use one of the following names for the
runtime attributes:
- 101 for Maximum Rows Per Commit.
- 102 for Minimum Rows Per Commit.
- 103 for Maximum Latency in Seconds.
- 104 for Real-time Flush Latency in
Milliseconds.
- 105 for Restart Point.
- 106 for Restart Revision.
- 107 for UOW Count.
- 108 for Update as Delete or Insert.
- 110 for Restart Option.

value String Include in the mtTaskConnRuntimeAttr


object.
Use a valid value for the specified
attribute name:
- Maximum Rows Per Commit. 0 to
999999999.
- Minimum Rows Per Commit. 0 to
999999999.
- Maximum Latency in Seconds. 2 to 360.
- Real-time Flush Latency in
Milliseconds. -1 to 999999999.
- Restart Point. Set in conjunction with
the Restart Option. 0 for earliest
available. An empty string for end of
log. A valid timestamp for specific
timestamp in the log. A valid PWX
Token to restart at a specific token in
the log.
- Restart Revision. A valid revision
number from 0 to 2147483647.
- UOW Count. -1 to 999999999.
- Update as Delete or Insert. 0 to process
as update. 1 to process as delete and
insert.
- Restart Option. Set in conjunction with
the Restart Point. 0 for earliest
available. 1 for end of log. 2 for time-
based. 3 for PWX token.

connectionID String Required for Include in the mtTaskConnRuntimeAttr


mtTaskConnRuntimeAttr object.
object. Include the CDC connection ID.

POST response
If successful, returns the mtTask object that you created or updated. Returns the error object if errors occur.

DELETE request
To delete a mapping task, use the task ID in the following URI:
/api/v2/mttask/<id>
Note: You cannot use the federated task ID to delete a mapping task.

458 Chapter 4: Data Integration REST API


DELETE response
Returns the 200 response code if the request is successful.

Returns the error object if errors occur.

POST example
To create a new mapping task with XML, you might use the following request:
POST <serverUrl>/api/v2/mttask
Content-Type: application/xml
Accept: application/xml
icSessionId: <icSessionId>

<mtTask>
<errorTaskEmail>
<taskEmail>
<emails>email_dev@[Link], email2_dev@[Link]</emails>
</taskEmail>
</errorTaskEmail>
<successTaskEmail>
<taskEmail>
<emails>reviewer@[Link]</emails>
</taskEmail>
</successTaskEmail>
<warningTaskEmail>
<taskEmail>
<emails>email_dev@[Link], email2_dev@[Link]</emails>
</taskEmail>
</warningTaskEmail>
<parameters>
<mtTaskParameter>
<name>sort convert plugin</name>
<type>MAPPLET</type>
</mtTaskParameter>
</parameters>
<parameters>
<mtTaskParameter>
<name>DB lookup</name>
<type>LOOKUP</type>
</mtTaskParameter>
</parameters>
<sessionProperties>
<entry>
<key>Java Classpath</key>
<value>C:/test/classpathnew</value>
</entry>
<entry>
<key>Pushdown Optimization</key>
<value>To Source</value>
</entry>
<entry>
<key>Write Backward Compatible Session Log File</key>
<value>no</value>
</entry>
</sessionProperties>
<runtimeEnvironmentId>00000398D00000004</runtimeEnvironmentId>
<sequences>
<sequenceDefinition>
<txName>SeqGen1</txName>
<initialValue>1</initialValue>
<currentValue>62</currentValue>
</sequenceDefinition>
</sequences>
<preProcessingCmd>echo CurrentDate is 'date'</preProcessingCmd>
<postProcessingCmd>echo PR-PostProcess</postProcessingCmd>
<masterTemplateId>00034234M00000R</masterTemplateId>
</mtTask>
A successful request returns the mtTask object.

Mapping tasks 459


Mask rule parameter attributes for masking techniques
Define the parameter attribute values of a mask rule parameter when you run the mapping task. The
attributes that you define depend on the masking technique that you apply.

For example, to mask a billing city field with the Substitution City masking technique, define the following
attributes:
[
{
"referenceField": "BillingCity",
"pcType": "string",
"precision": 40,
"paramMap": {
"isSeeded": "TRUE",
"seedValue": "190",
"dicName": "informatica_mask_us_towns.dic",
"outputPort": "TOWNNAMES",
},
"maskingType": "Substitution City"
}
]
The following table lists the attributes that you define for each masking technique:

Masking Technique Attributes

Credit Card - isSeeded


- seedValue
- keepCardIssuer
- targetIssuer

Custom Substitution - DicConn


- DicName
- outputPort
- isSeeded
- seedValue

Email address - isSeeded


- seedValue

IP address - isSeeded
- seedValue

Key Date - isSeeded


- seedValue

Key Numeric - override


- isSeeded
- seedValue

Key String - isSeeded


- seedValue
- useMaskFormat
- maskFormat
- useSrcFilter
- srcFilterOption
- srcFilterStr
- useTargetFilter
- targetFilterOption
- targetFilterStr

460 Chapter 4: Data Integration REST API


Masking Technique Attributes

Phone - isSeeded
- seedValue

Random Date - useRange


- minWidth
- maxWidth
- useBlurring
- blurringUnit
- blurLow
- blurHigh

Random Numeric - useRange


- minWidth
- maxWidth
- useBlurring
- blurringOption
- blurLow
- blurHigh

Random String - useRange


- minWidth
- maxWidth
- useMaskFormat
- useSrcFilter
- srcFilterStr
- useTargetFilter
- targetFilterOption
- targetFilterStr

SIN - isSeeded
- seedValue
- startDigit
- startDigitValue

SSN - isSeeded
- seedValue

Substitution City - isSeeded


- seedValue
- DicName
- outputPort

Substitution Country - isSeeded


- seedValue
- DicName
- outputPort

Substitution Female Name - isSeeded


- seedValue
- DicName
- outputPort

Substitution Last Name - isSeeded


- seedValue
- DicName
- outputPort

Mapping tasks 461


Masking Technique Attributes

Substitution Male Name - isSeeded


- seedValue
- DicName
- outputPort

Substitution Name - isSeeded


- seedValue
- DicName
- outputPort

Substitution Position - isSeeded


- seedValue
- DicName
- outputPort

Substitution State - isSeeded


- seedValue
- DicName
- outputPort

Substitution Street - isSeeded


- seedValue
- DicName
- outputPort

Substitution U.S. ZIP code - isSeeded


- seedValue
- DicName
- outputPort

URL - isSeeded
- seedValue

Mask rule parameter attribute values


Define the required parameter attribute values when you run the mapping task.

The following table describes the attributes and values that you define for the mask rule parameter:

Attribute Description

blurHigh Required. The higher bound for blurring. You can specify the value in digits.
Default is 0.

blurLow Required. The lower bound for blurring. You can specify the value in digits.
Default is 0.

blurringOption Required. The unit of blurring for a numeric port. You can specify the
following values:
- Percent. Blurs the data based on a percent value.
- Fixed. Blurs the data based on a fixed value.

462 Chapter 4: Data Integration REST API


Attribute Description

blurringUnit Required. The unit of blurring for a date port. You can specify the following
values:
- Year. Blurs the year value.
- Month. Blurs the month value.
- Day. Blurs the day value.
- Hour. Blurs the hour value.
- Minute. Blurs the minute value.
- Second. Blurs the second value.
Default is Year.

delimiter Delimiter to separate the first name and last name in a masked email
address. You can specify the value as:
- .
- -
- _

DicConn The connection that contains the dictionary files. Create a flat file connection
that points to the directory with the dictionary files. Specify the flat file
connection name.

dicName The name of the flat file dictionary file. The dictionary file must be present in
the rdtmDir directory of the Secure Agent.

domainConstantValue Domain name to use in masked email addresses.


Default is [Link].

expText An attribute to configure an expression.

firstNameColumn The first name column to use in masked email addresses. Specify the name
of the port.

firstNameLength The length of the first name in a masked email address. You can specify the
value in digits.
Default is 5.

isSeeded An attribute to configure repeatable output. You can specify the following
values:
- TRUE. Masks the data with repeatable output. When true, specify a seed
value.
- FALSE. Masks the data with random output.
Default is TRUE.

keepCardIssuer Masks a credit card field with a credit card number from the same issuer.
You can specify the following values:
- TRUE. Retains the same card issuer in the masked data.
- FALSE. Uses a specified card issuer in the masked data.
When false, define the targetIssuer attribute.
Default is TRUE.

lastNameColumn The last name column to use in masked email addresses. Specify the name
of the port.

lastNameLength The maximum length of the last name in masked email addresses. You can
enter the value in digits.
Default is 5.

Mapping tasks 463


Attribute Description

maskFormat Defines the type of character to substitute for each character in the input
data. You can limit each character to an alphabetic, numeric, or alphanumeric
character type.
Use the following characters to define a mask format:
- A. Alphabetic
- D. Digits 0-9
- N. Alphanumeric
- X. Any character
- R. Rest of the characters.
Specify the value as ADNX+R. R must appear as the last character. For
example, to ensure the masked output begins with an alphabet, enter the
value as A+R.
Default is R.

maxWidth Required. The minimum value for the range. Enter the value in digits.
Default is 0.

maxWidth Required. The maximum value for the range. Enter the datetime value.
Default is 01/19/2038 03:13:59.

minWidth Required. The minimum value for the range. Enter the datetime value.
Default is 01/01/1970 00:00:00.

minWdth Required. The minimum value for the range. Enter the value in digits.
Default is 0.

outputPort The output port column from the dictionary.

seedValue The seed value. Specify a value between 1 and 999.


Default is 190.

srcFilterOption Required. The type of filter to apply to source filter characters. You can
specify the following values:
- Mask Only. Masks only the specified characters in the source.
- Mask all except. Masks all characters in the source except the characters
specified.

srcFilterStr Required. Defines the characters in the source string that you want to mask.

startDigit Required. Defines the first digit of the masked SIN. You can specify the
following values:
- TRUE. Uses the digit that you specify as the first digit of the masked SIN.
- FALSE. Uses a random digit as the first digit of the masked SIN.
Default is FALSE. When true, define the startDigitValue attribute.

startDigitValue Required. Defines the first digit of the masked SIN. Specify a value between 0
and 9.
Default is 0.

targetFilterOption Required. The type of filter to apply on target filter characters. You can
specify the following values:
- Use Only. Uses only the target characters that you specify.
- Use All Except. Uses all characters in the target except what you specify.

464 Chapter 4: Data Integration REST API


Attribute Description

targetFilterStr Required. Substitutes the characters in a target string with the characters
that you define in target filter characters. For example, enter the following
characters to configure the masked output to contain all uppercase
alphabetic characters: ABCDEFGHIJKLMNOPQRSTUVWXYZ.

targetIssuer Required. Masked values contain credit card numbers from the issuer that
you select. You can specify the following values:
- ANY
- JCB
- VISA
- AMEX
- DISCOVER
- MASTERCARD

useBlurring Required. Masks dates based on a variance that you apply to a unit of the
date. The masked date is within the variance. You can specify the following
values:
- TRUE. Applies a variance that you specify on a unit of the date.
- FALSE. Does not apply a variance.
Default is FALSE.

useMaskFormat Specifies a mask format. You can specify the following values:
- TRUE. Masks the data based on a format that you specify.
- FALSE. Masks the data in a random format.
Default is TRUE. If true, define the maskFormat attribute.

useRange Required. Specifies a return value between the minimum and maximum
values of the range based on field precision. You can specify the following
values:
- TRUE. Masks the data within a range that you specify.
- FALSE. Does not use a specified range to mask the data.
To define the range, configure the minimum and maximum ranges or
configure a blurring range based on a variance from the original source
value.
Default is FALSE.

useSrcFilter Specifies the characters in the source string that you want to mask. You can
specify the following values:
- TRUE. Masks the characters in the source string that you specify.
- FALSE. Masks random characters in the source string.
Default is FALSE.

useTargetFilter Specifies the characters to use in the masked string. You can specify the
following values:
- TRUE. Uses characters that you specify in the masked string.
- FALSE. Uses random characters in the masked string.
Default is FALSE.

Mapping tasks 465


PowerCenter mapplets
Use this resource to request the details of a PowerCenter mapplet or to request a list of all PowerCenter
mapplets in the organization. You can also use this resource to upload or delete a PowerCenter mapplet.

Note: To request a list of all mapplets in the organization, use the objects resource. For more information,
see “Finding an asset” on page 205.

GET request
To request a list of all PowerCenter mapplets in the organization, use the following URI:
/api/v2/customFunc
To request the details of a single mapplet, you can use the mapplet ID or mapplet name in the request. Use
one of the following URIs:
/api/v2/customFunc/<id>
/api/v2/customFunc/name/<name>
If you use the mapplet name and the mapplet name includes a space, replace the space with %20. For
example:
/api/v2/customFunc/name/my%20mapplet

GET response
If the request for a list of mapplets is successful, returns the customFunc object for every PowerCenter
mapplet in the organization without the input, output, and connection details.

If the request for the details of a single mapplet is successful, returns the customFunc object.

Returns the error object if errors occur.

The customFunc object includes the following attributes:

Field Type Description

id String Mapplet ID.

orgId String Organization ID.

name String Mapplet name.

description String Mapplet description.

createTime Date/time Time the mapplet was created.

updateTime Date/time Time the mapplet was last updated.

createdBy String User who created the mapplet.

updatedBy String User who last updated the mapplet.

mappletName String Name of the Mapplet transformation used in the mapplet.

active Boolean Whether the mapplet is active. Returns true or false.

mappletXmlFile String The mapplet XML file.

466 Chapter 4: Data Integration REST API


Field Type Description

inputs String Input fields for the mapplet. Includes the following information for each field in the
field object:
- id
- name
- type
- label
- parentObject
- precision
- pcType
- scale
- columnIndex
- isKey
- isExternalId
- isNullable
- isUnique
- isCreateable
- isCalculated
- isUpdateable
- isFilterable
- linkedFields
- relatedInfos. Includes the following information in the fieldRelatedInfo object:
- id
- referenceObject
- relationshipName
- javaType
- showLabel
- naturalOrder
- customProperties

outputs String Output fields for the mapplet. Includes the following information for each field in the
field object:
- id
- name
- type
- label
- parentObject
- precision
- pcType
- scale
- columnIndex
- isKey
- isExternalId
- isNullable
- isUnique
- isCreateable
- isCalculated
- isUpdateable
- isFilterable
- linkedFields
- relatedInfos. Includes the following information in the fieldRelatedInfo object:
- id
- referenceObject
- relationshipName
- javaType
- showLabel
- naturalOrder
- customProperties

PowerCenter mapplets 467


Field Type Description

connections Connection information for the mapplet. Includes a pcsConnection object for each
connection.

id Long Included in the pcsConnection object.

name String Included in the pcsConnection object.


Connection name.

type String Included in the pcsConnection object.


Connection type.

subtype String Included in the pcsConnection object.


Connection subtype.

description String Included in the pcsConnection object.


Description of the connection.

connectionId String Included in the pcsConnection object.


Connection ID.

POST request
To upload a new PowerCenter mapplet, use the following URI:
/api/v2/customFunc
If you want to specify a location for the mapplet, include the container ID in the request. If the container ID
isn't included in the request, the mapplet is created in the Default folder. You can find the container ID for a
project or folder in the Data Integration user interface. On the Explore page, select the folder. In the URL, the
last string of characters is the container ID.

For example, in the following URL, the container ID is dH2DuGJYda7ijgW4Sm32sR:


[Link]
dH2DuGJYda7ijgW4Sm32sR
To update an existing PowerCenter mapplet, include the mapplet ID in the following URI:
/api/v2/customFunc/<id>
Note: Encode the request body as multipart/form-data.

With this URI, you can use the following attributes in the request body:

Field Type Required Description

file String Yes The mapplet XML file exported from Informatica PowerCenter. File content should
be in binary format, UTF-8 encoding.

name String Yes The mapplet name.

468 Chapter 4: Data Integration REST API


Field Type Required Description

description String - The mapplet description.

containerId String - ID of the project or folder to contain the mapplet.


If not included in request, the mapplet is created in the Default folder.

In addition to the POST attributes, pass the following information in the request body:

• Boundary value. Used to define different parts of the request body.


• File name. Name of the mapplet XML file.
• icSessionId. Informatica Intelligent Cloud Services session ID returned by the login resource. You can
pass this information in the request body for clients that do not allow custom headers. If you can pass
icSessionId as part of the request header, you can omit this information in the request body.

Use the following template for the customFunc POST request:


URL: <serverUrl>/api/v2/customFunc/
HTTP method: POST

Content-Type:multipart/form-data;boundary=<boundary value>
--<boundary value>
Content-Disposition:form-data; name="file";filename="<[Link]>";Content-Type:text/
<xml|json>

<content of the mapplet XML file encoded as UTF-8>

--<boundary value>
Content-Disposition: form-data; name="name"

<mapplet name>
--<boundary value>
Content-Disposition: form-data; name="desc"

<description of the mapplet>


--<boundary value>
Content-Disposition: form-data; name="icSessionId"

<icSessionID returned from login resource>


--<boundary value>--

POST response
If successful, returns the customFunc response object for the PowerCenter mapplet that was created or
updated.

Returns the error object if errors occur.

DELETE request
To delete a PowerCenter mapplet, use the mapplet ID in the following URI:
/api/v2/customFunc/<id>

DELETE response
Returns the 200 response code if the request is successful.

Returns the error object if errors occur.

PowerCenter mapplets 469


POST example
To update a PowerCenter mapplet with an ID of 3 with an icSessionId of IV4wOrJmd6YUtmKa8t, you might
use the following request. The updated mapplet is named Lookup Mapplet and uses the lookup_mapplet.xml
file. XML data should be encoded in UTF-8.
URL: [Link]
HTTP method: POST

Content-Type:multipart/form-data;boundary=243553118520053
--243553118520053
Content-Disposition:form-data; name="file";filename="<lookup_mapplet.xml>";Content-
Type:text/xml

<?xml version="1.0" encoding="UTF-8"?>


<!DOCTYPE POWERMART SYSTEM "[Link]">
<POWERMART CREATION_DATE="05/14/2012 12:17:26" REPOSITORY_VERSION="181.90">
<REPOSITORY NAME="pc91hf1" VERSION="181" CODEPAGE="UTF-8" DATABASETYPE="Oracle">
<FOLDER NAME="test" GROUP="" OWNER="Administrator" SHARED="SHARED" DESCRIPTION=""
PERMISSIONS="rwx---r--" UUID="96f9d03b-c2c5-4034-8e3a-838026bbf6e8">
<SOURCE BUSINESSNAME ="" DATABASETYPE ="Oracle" DBDNAME ="ddicst" DESCRIPTION ="" NAME
="CUSTOMERMASTER" OBJECTVERSION ="1" OWNERNAME ="C01" VERSIONNUMBER ="1">
<SOURCEFIELD BUSINESSNAME ="" DATATYPE ="nvarchar2" DESCRIPTION ="" FIELDNUMBER ="1"
FIELDPROPERTY ="0" FIELDTYPE ="ELEMITEM" HIDDEN ="NO" KEYTYPE ="PRIMARY KEY" LENGTH ="0"
LEVEL ="0" NAME ="CUSTOMERID" NULLABLE ="NOTNULL" OCCURS ="0" OFFSET ="0" PHYSICALLENGTH
="30" PHYSICALOFFSET ="0" PICTURETEXT ="" PRECISION ="30" SCALE ="0" USAGE_FLAGS =""/>
.
.
.
<ATTRIBUTE NAME ="Parameter Filename" VALUE =""/>
<ATTRIBUTE NAME ="Write Backward Compatible Workflow Log File" VALUE ="NO"/>
<ATTRIBUTE NAME ="Workflow Log File Name" VALUE ="wf_plugin_lookup.log"/>
<ATTRIBUTE NAME ="Workflow Log File Directory" VALUE ="$PMWorkflowLogDir&#x5c;"/>
<ATTRIBUTE NAME ="Save Workflow log by" VALUE ="By runs"/>
<ATTRIBUTE NAME ="Save workflow log for these runs" VALUE ="0"/>
<ATTRIBUTE NAME ="Service Name" VALUE =""/>
<ATTRIBUTE NAME ="Service Timeout" VALUE ="0"/>
<ATTRIBUTE NAME ="Is Service Visible" VALUE ="NO"/>
<ATTRIBUTE NAME ="Is Service Protected" VALUE ="NO"/>
<ATTRIBUTE NAME ="Fail task after wait time" VALUE ="0"/>
<ATTRIBUTE NAME ="Enable HA recovery" VALUE ="NO"/>
<ATTRIBUTE NAME ="Automatically recover terminated tasks" VALUE ="NO"/>
<ATTRIBUTE NAME ="Service Level Name" VALUE ="Default"/>
<ATTRIBUTE NAME ="Allow concurrent run with unique run instance name" VALUE
="NO"/>
<ATTRIBUTE NAME ="Allow concurrent run with same run instance name" VALUE ="NO"/>
<ATTRIBUTE NAME ="Maximum number of concurrent runs" VALUE ="0"/>
<ATTRIBUTE NAME ="Assigned Web Services Hubs" VALUE =""/>
<ATTRIBUTE NAME ="Maximum number of concurrent runs per Hub" VALUE ="1000"/>
<ATTRIBUTE NAME ="Expected Service Time" VALUE ="1"/>
</WORKFLOW>
</FOLDER>
</REPOSITORY>
</POWERMART>

--243553118520053
Content-Disposition: form-data; name="name"

Lookup Mapplet
--243553118520053
Content-Disposition: form-data; name="icSessionId"

IV4wOrJmd6YUtmKa8t
--243553118520053--
A successful request returns the customFunc response object for the mapplet that you updated.

470 Chapter 4: Data Integration REST API


Synchronization task conversion
Use the convert resource to convert synchronization tasks to data transfer tasks.

You can use the convert resource to send the following requests:

• Send a GET request to test whether the synchronization task is compatible with data transfer task
features.
• Send a POST request to convert the synchronization task to a data transfer task.

When you use the convert resource, use the following request header format:
<METHOD><server URL><URI>
Content-Type: application/json
Accept: application/json
IDS-SESSION-ID: <SessionId>
The server URL includes the name and region of the POD that your organization uses and the domain,
[Link]. If you don't know the name and region of your organization's POD, you can find it by
logging in through the user interface. The POD information is located in the browser's address bar.

In the following example, [Link] is the server URL:


[Link]

Testing compatibility
Use the convert resource to test whether a synchronization task can be converted to a data transfer task. If
the synchronization task isn't compatible with data transfer task features, the response includes the reasons
for the incompatibility.

GET request
To find out if a synchronization task can be converted to a data transfer task, use the following URI:
/dtt/dss/convert/test/<assetId
To find the asset ID, you can send a lookup request. For information about the lookup resource, see
“Lookup” on page 171.

GET response
The response includes the following information:

Field Type Description

assetId String ID of the synchronization task to be converted.

assetName String Name of the synchronization task to be converted.

dttparity Boolean Whether the synchronization task is compatible with data transfer task features. A Yes value
means the synchronization task is compatible with data transfer task features so the task
can be converted.

errors String If the value for dttparity is No, includes reasons why the synchronization task can't be
converted to a data transfer task.

Synchronization task conversion 471


GET example
The following request checks a synchronization task to see if it's compatible with data transfer task features:
GET <server URL>/dtt/dss/convert/test/0001R291234567891234
Content-type: application/json
Accept: application/json
INFA-SESSION-ID: 2l0oeVx22Rujiej7y1234T
The following response shows that the synchronization task can be converted to a data transfer task:
{
"assetId": "0001R291234567891234",
"assetName": "Sync Task 1",
"errors": [],
"dttparity": YES
}
The following text is an example of a response when the synchronization task can't be converted to a data
transfer task:
{
"assetId": "0001R291234567896789",
"assetName": "Sync Task 2",
"errors": [
"Multiple source objects are not supported"
],
"dttparity": NO
}

Converting an asset to a data transfer task


Use the convert resource to convert a synchronization task to a data transfer task. The synchronization task
still exists after the conversion, but you can delete it.

POST request
To convert a synchronization task, include the asset ID of the synchronization task in the following URI:
/dtt/dss/convert/<assetId>
Include the following fields in the request:

Field Type Required Description

projectId String Yes Project or folder where you want the data transfer task to
reside.

skipSchedulerJob Boole -- Whether to exclude the schedule settings from the


an synchronization task in the data transfer task. Use one of the
following values:
- true: Don't include the schedule settings.
- false: Include the schedule settings.
Default is false.

472 Chapter 4: Data Integration REST API


POST response
The following table describes the fields in the POST response:

Field Type Description

originalAssetId String ID of the synchronization task that was converted.

originalAssetName String Name of the synchronization task that was converted.

status String Status of the conversion, such as SUCCESS or FAILED.

newAssetId String Asset ID of the new data transfer task.

newAssetName String Name of the data transfer task, which is the same as the synchronization task used in
the conversion.

newAssetType String Value will always be DTT.

errors String If the status is FAILED, reason for the failure.

POST example
The following request converts a synchronization task to a data transfer task:

POST <server URL>/dtt/dss/convert/0001R291234567891234


Content-Type: application/json
Accept:application/json
IDS-SESSION-ID:2l0oeVx22Rujiej7y1234T

{
"projectId": "8Fhm0Ovp4Dhfl3yNr1234G",
"skipSchedulerJob" : false
}
If successful, you receive the following response:
{
"originalAssetId": "0100000I00000000000H",
"originalAssetName": "Sync Task 1",
"status": "SUCCESS",
"newAssetId": "8Fhm0Ovp4Dhfl3yNr2345G",
"newAssetName": "Sync Task 1",
"newAssetType": "Data Transfer Task"
}
If the request isn't successful, you receive the following response:
{
"originalAssetId": "0100000I00000000000H",
"originalAssetName": "Sync Task 1",
"status": "FAIL",
"errors": [
"Multiple sorting conditions are not supported"
]
}

Synchronization task conversion 473


Taskflows
You can use the REST API to get the status of a taskflow and publish multiple taskflows simultaneously.

For more information about how to run a taskflow as an API, see Running a taskflow as an API.

Monitoring taskflow status with the status resource


If you have the privilege to view job results in Monitor, you can use the status resource to get the status of a
taskflow. You can get the status of a taskflow using the taskflow run ID as a path parameter or using query
parameters such as run ID, run status, start time, end time, offset, and row limit.

GET request
To get the status of a taskflow using the run ID as a path parameter, use the following URI:
<Informatica Intelligent Cloud Services URL>/active-bpel/services/tf/status/<run ID>
For example:
[Link]
20262247166322413568
You can add the optional subtaskDetails parameter in the Taskflow Status API URL to return only the
taskflow status without any task or step statuses within the taskflow.
Use the following URL to return only the taskflow status:

GET/active-bpel/services/tf/status/<runId>?subtaskDetails =<value>

Provide the Yes or No value in the optional parameter return only the taskflow status. Set the value to No to
return only the taskflow status.

For example:
[Link]
20262247166322413568?subtaskDetails=No
When the subtaskDetails is set to No, you get the following sample API response:
{
"assetName": "Taskflow1",
"assetType": "TASKFLOW",
"duration": 1,
"endTime": "2025-06-30T07:53:53Z",
"errorMessage": "",
"location": "Default",
"runId": 1.1242464044289925e+18,
"runtimeEnv": "application-integration:8443",
"runtimeEnvName": "",
"startedBy": "kkunal@[Link]",
"startTime": "2025-06-30T07:53:52Z",
"status": "SUCCESS",
"subtasks": 1,
"updateTime": "2025-06-30T07:53:53Z",
"subtaskDetails": {
"details": {
"tasks": []
}
}
}
You can also get the status of multiple taskflows using query parameters. The query parameters are case
sensitive.

474 Chapter 4: Data Integration REST API


You can use the following optional query parameters in the GET request URI:

Field Description

runId Run ID for the taskflow.


For example, to get the status of a particular taskflow with a run ID, use the following URI:
[Link]
runId=20262247166322413568

runStatus Execution status of the taskflow. You can specify the status as Success, Failed, Suspended, or Running.
For example, to get the status of all the taskflows that were successfully executed in the last 24 hours,
use the following URl:
[Link]
runStatus=Success

startTime Start time for the taskflow runs at the beginning of the date and time range. Use Coordinated Universal
Time (UTC).
For example, to get the status of all the taskflows that started on or after 2021-06-10T05:48:28Z, use the
following URl:
[Link]
startTime=2021-06-10T05:48:28Z

endTime Start time for the taskflow runs at the end of the date and time range. Use Coordinated Universal Time
(UTC).
For example, to get the status of all the taskflows that started between 2021-06-10T05:48:28Z and
2021-06-11T05:48:28Z, use the following URl:
[Link]
startTime=2021-06-10T05:48:28Z&endTime=2021-06-11T05:48:28Z

offset Number of rows to skip. For example, you might want to skip the first three rows.

rowLimit Maximum number of rows to return. The maximum number you can specify is 50. If you omit this
parameter, the query returns all available rows, up to a maximum of 10 rows.

You can use any combination of these query parameters to get the status of multiple taskflows. For example,
you can use the following URI:
<Informatica Intelligent Cloud Services URL>/active-bpel/services/tf/status?
startTime=<startTime>&runStatus=<runStatus>&endTime=<endTime>&rowLimit=<rowLimit>
Note: If the startTime or endTime parameters are not used in the query, the response contains status
information about the taskflows that ran in the last 24 hours.

Authenticate the GET request in one of the following ways:

• Use basic authorization and specify the Informatica Intelligent Cloud Services user name and password.
For example:
GET <Informatica Intelligent Cloud Services URL>/active-bpel/services/tf/status/<run
ID>
Accept: application/json
Authorization: Basic Auth
username: <Informatica Intelligent Cloud Services user name>
password: <Informatica Intelligent Cloud Services password>
• Use the INFA-SESSION-ID in the HTTP header.

Taskflows 475
For example:
GET <Informatica Intelligent Cloud Services URL>/active-bpel/services/tf/status/<run
ID>
Accept: application/json
INFA-SESSION-ID: <sessionId>
To get the INFA-SESSION-ID, use the Platform REST API version 3 login resource. For more information
about the login resource, see REST API Reference.

Send the request using JSON format. Include the following line in the header: Accept: application/json

GET response
Returns the taskflow status information if successful or an error object if errors occur.

If successful, returns the following status information for a taskflow:

Field Type Description

assetName String Name of the taskflow.


The taskflow name also includes the custom name, if you had added a custom name
to the taskflow using an API or the RunAJob utility.

assetType String Type of the object. Returns the value TASKFLOW.

duration String Time in seconds that the taskflow ran before it completed, was suspended, was
failed, or was stopped.

endTime Date/time End time for the taskflow run. Uses Coordinated Universal Time (UTC).

location String Project and folder path where the taskflow is located.

runId Long Run ID for the taskflow.

runtimeEnv String ID of the runtime environment where the taskflow runs.

runtimeEnvName String Name of the runtime environment where the taskflow runs.

startTime Date/time Start time for the taskflow run. Uses Coordinated Universal Time (UTC).

startedBy String User who started the taskflow.

status String Execution status of the taskflow.


Returns one of the following values to indicate the taskflow status:
- RUNNING. The taskflow is running.
- SUCCESS. The taskflow completed successfully.
- FAILED. The taskflow did not complete because it encountered errors.
- SUSPENDED. The taskflow run was suspended.

subtasks String Number of subtasks that the taskflow contains.

updateTime Date/time Last time the taskflow run status was updated. Uses Coordinated Universal Time
(UTC).

errorMessage String Error message string.

subtaskDetails String Object that contains status details for all subtasks in the taskflow.

476 Chapter 4: Data Integration REST API


Field Type Description

details String Status details. Includes status information for each subtask in the tasks object.

tasks Collection Status information for all subtasks that the taskflow contains.

The tasks object includes the following status information for each subtask that the taskflow contains:

Field Type Description

assetName String Name of the subtask in the taskflow.

assetType String Type of the subtask. Returns one of the following values:
- MTT. Mapping task.
- DSS. Synchronization task.

duration String Time in seconds that the subtask ran before it completed, was failed, or was
stopped.

endTime Date/time End time for the subtask run. Uses Coordinated Universal Time (UTC).

errorMessage String Error message string.

errorRows String Total number of rows that resulted in errors in a subtask.

location String Project and folder path where the subtask is located.

rowsProcessed String Total number of rows that were processed in a subtask.

runId Long Run ID for the subtask.

runtimeEnv String ID of the runtime environment where the subtask runs.

runtimeEnvName String Name of the runtime environment where the subtask runs.

startTime Date/time Start time for the subtask run. Uses Coordinated Universal Time (UTC).

startedBy String User who started the task. This field is the same as the user who started the
taskflow.

status String Execution status of the subtask.


Returns one of the following values to indicate the subtask status:
- QUEUED. The subtask is queued on a Secure Agent, but it has not started yet.
- STARTING. The subtask is starting.
- RUNNING. The subtask is running.
- COMPLETED. The subtask completed successfully.
- SUSPENDED. The subtaskflow is suspended.
- STOPPED. The taskflow has stopped running, so the subtask cannot start.
- WARNING. The subtask completed with errors.
- FAILED. The subtask did not complete because it encountered errors.

subtasks String Reserved for future use. When this field is returned for a subtask, the value is always
0.

Taskflows 477
Field Type Description

successRows String Total number of rows that were processed successfully in a subtask.

updateTime Date/time Last time the subtask run status was updated. Uses Coordinated Universal Time
(UTC).

You might receive one of the following responses:

Response Description

Purged logs If logs are purged for the instance, the response is as follows:
{ "status": "No status available." }
The HTTP status code is 200 OK.

Invalid run ID If the run ID is not valid, the response is as follows:


{
"error": "CMN_003-Bad request. Error message - The property
'<runID>', used in a query expression, is not defined in type '[Link]-
[Link]'."
}
The HTTP status code is 400 Bad Request(From JLS).

Invalid filter If the parameter value is not valid, the response is as follows:
clause
{
"error": "JLS_007-Invalid Filter clause in OData request. RawURI =
[Link]
}
The HTTP status code is 400 Bad Request(From JLS).

Unavailable JLS If the JLS service is unavailable, the response is as follows:


service
{ "error": "503-Service Unavailable." }
The HTTP status code is 503 Service Unavailable.

GET example using the run ID as a path parameter


The following example shows a taskflow status request that uses the run ID as a path parameter:
GET [Link]
Content-type: application/json
Accept: application/json
INFA-SESSION-ID: 9KA11tLGqxVcGeul8SQBK3
Based on the taskflow configuration and request inputs, the response can be of the following types:

Taskflow without subtasks

If the request is successful and the taskflow does not contain subtasks, the response includes taskflow
status information as shown in the following example:
{
"assetName": "Taskflow1",
"assetType": "TASKFLOW",
"duration": "2",
"endTime": "2018-12-25T15:56:39Z",

478 Chapter 4: Data Integration REST API


"location": "Default",
"runId": "262247166322413568",
"runtimeEnv": "tf_runtime",
"runtimeEnvName": "",
"startTime": "2018-12-25T15:56:37Z",
"startedBy": "sb",
"status": "SUCCESS",
"subtasks": "0",
"updateTime": "2018-12-25T15:56:39Z",
"errorMessage": {},
"subtaskDetails": {
"details": {}
}
}
The HTTP status code is 200 OK.

Taskflow with subtasks

If the request is successful and the taskflow contains multiple subtasks, the response includes status
information for each subtask that the taskflow contains as shown in the following example:
{
"assetName": "Taskflow2",
"assetType": "TASKFLOW",
"duration": "89",
"endTime": "2018-12-23T17:25:16Z",
"location": "Default",
"runId": 20262247166322413568,
"runtimeEnv": "tf_runtime",
"runtimeEnvName": "",
"startTime": "2018-12-23T17:23:47Z",
"startedBy": "sb",
"status": "SUCCESS",
"subtasks": "2",
"updateTime": "2018-12-23T17:25:17Z",
"errorMessage": {},
"subtaskDetails": {
"details": {
"tasks": [
{
"assetName": "MTR",
"assetType": "MTT",
"duration": "3",
"endTime": "2018-12-23T17:24:45Z",
"errorMessage": "",
"errorRows": "0",
"location": "Default",
"rowsProcessed": "7",
"runId": "4",
"runtimeEnv": "01001Q25000000000002",
"runtimeEnvName": "tf_runtime_devagent",
"startTime": "2018-12-23T17:24:42Z",
"startedBy": "sb",
"status": "COMPLETED",
"subtasks": "0",
"successRows": "7",
"updateTime": "2018-12-23T17:24:46Z"
},
{
"assetName": "MTR",
"assetType": "MTT",
"duration": "10",
"endTime": "2018-12-23T17:23:59Z",
"errorMessage": "",
"errorRows": "0",
"location": "Default",
"rowsProcessed": "7",
"runId": "3",

Taskflows 479
"runtimeEnv": "01001Q25000000000002",
"runtimeEnvName": "tf_runtime_devagent",
"startTime": "2018-12-23T17:23:49Z",
"startedBy": "sb",
"status": "COMPLETED",
"subtasks": "0",
"successRows": "7",
"updateTime": "2018-12-23T17:24:00Z"
}
]
}
}
}
The HTTP status code is 200 OK.

GET example using query parameters


The following example shows a taskflow status request that uses run ID, run status, and row limit as query
parameters:
GET [Link]
runId=20262247166322413568&runStatus=Success&rowLimit=3
Accept: application/json
INFA-SESSION-ID: 9KA11tLGqxVcGeul8SQBK3
If the request is successful, the response format is the same as when we use the path parameter, but within
square brackets [ ].

If the request is successful and the taskflow does not contain subtasks, the response includes taskflow
status information as shown in the following example:
[
{
"assetName": "Taskflow1",
"assetType": "TASKFLOW",
"duration": "2",
"endTime": "2018-12-25T15:56:39Z",
"location": "Default",
"runId": 262247166322413568,
"runtimeEnv": "tf_runtime",
"runtimeEnvName": "",
"startTime": "2018-12-25T15:56:37Z",
"startedBy": "sb",
"status": "SUCCESS",
"subtasks": "0",
"updateTime": "2018-12-25T15:56:39Z",
"errorMessage": {},
"subtaskDetails": {
"details": {
"tasks": []
}
}
}
]
The HTTP status code is 200 OK.

GET example without any parameter


The following example shows a taskflow status request without a path parameter or query parameter:
<Informatica Intelligent Cloud Services URL>/active-bpel/services/tf/status
The response contains status information of the last 10 taskflows that were run in the last 24 hours.

480 Chapter 4: Data Integration REST API


GET example of a running taskflow
If you use the status resource to get the status of a running taskflow, the response includes taskflow status
information with the endTime as null without quotes as shown in the following example:
{
"assetName": "waitStatus",
"assetType": "TASKFLOW",
"duration": 27,
"endTime": null,
"errorMessage": "",
"location": "Default",
"runId": 737194191850250240,
"runtimeEnv": "[Link]",
"runtimeEnvName": "",
"startedBy": "sb",
"startTime": "2022-07-28T06:26:32Z",
"status": "RUNNING",
"subtasks": 0,
"updateTime": "2022-07-28T06:26:32Z",
"subtaskDetails": {
"details": {
"tasks": []
}
}
}
After the taskflow is complete, the correct endTime value is displayed.

Publishing taskflows in bulk


You can use the publish resource to publish a single taskflow or multiple taskflows simultaneously and save
time.

The taskflows are published in the same order as given in the request payload. You can publish a maximum
of 199 taskflows at a time.

1. In a REST client, use a POST request with the following URL:


<Informatica Intelligent Cloud Services URL>/active-bpel/asset/v1/publish
For example: [Link]
2. Add the following headers:

Key Value

Accept application/[Link]+json

Content-Type application/[Link]+json

INFA-SESSION-ID Use the login resource to get the session ID. For more information about the login resource,
see REST API Reference.

3. In the body, use the assetPaths attribute to specify one or more locations and names of the taskflows
that you want to publish.
Use the following format:
{
"data": {
"type": "publish",
"attributes": {

Taskflows 481
"assetPaths": [
"Explore/<location-of-taskflow1>/<name-of-
taskflow1>.[Link]",
"Explore/<location of taskflow2>/<name-of-
taskflow2>.[Link]",
"Explore/<location-of-taskflown>/<name-of-
taskflown>.[Link]"
]
}
}
}
4. Send the POST request.
You see a publish ID and a success or failure response. If the request fails, the response also gives the
error details.
The following snippet shows a sample response:
{
"data": {
"type": "publish",
"id": "690487059198201856",
"attributes": {
"jobState": "NOT_STARTED",
"jobStatusDetail": {},
"startedBy": "autouser_pod1",
"startDate": "2022-03-21T09:09:04.000+0000",
"totalCount": 1,
"processedCount": 0,
"assetPaths": [
"Explore/Pavan/BulkPublishApi/[Link]"
]
}
},
"links": {
"self": [Link]
publish/690487059198201856,
"status": [Link]
publish/690487059198201856/Status
}
}
The publish ID in this example is 690487059198201856.
5. To view information about the publish status and publish job, use a GET request with the following URLs:

URL Description

<Informatica Intelligent Cloud Services URL>/active- Displays the publish status.


bpel/asset/v1/publish/<publishId>/Status

<Informatica Intelligent Cloud Services URL>/active- Displays the publish job information.
bpel/asset/v1/publish/<publishId>

482 Chapter 4: Data Integration REST API


Unpublishing taskflows in bulk
You can use the unpublish resource to unpublish a single taskflow or multiple taskflows simultaneously and
save time.

The taskflows are unpublished in the same order as given in the request payload. You can unpublish a
maximum of 199 taskflows at a time.

1. In a REST client, use a POST request with the following URL:


<Informatica Intelligent Cloud Services URL>/active-bpel/asset/v1/unpublish
For example: [Link]
2. Add the following headers:

Key Value

Accept application/[Link]+json

Content-Type application/[Link]+json

INFA-SESSION-ID Use the login resource to get the session ID. For more information about the login resource,
see REST API Reference.

3. In the body, use the assetPaths attribute to specify one or more locations and names of the taskflows
that you want to unpublish.
Use the following format:
{
"data": {
"type": "unpublish",
"attributes": {
"assetPaths": [
"Explore/<location-of-taskflow1>/<name-of-
taskflow1>.[Link]",
"Explore/<location of taskflow2>/<name-of-
taskflow2>.[Link]",
"Explore/<location-of-taskflown>/<name-of-
taskflown>.[Link]"
]
}
}
}
4. Send the POST request.
You see an unpublish job ID and a success or failure response. If the request fails, the response also
gives the error details.
The following snippet shows a sample response:
{
"data": {
"type": "unpublish",
"id": "7645874567965431",
"attributes": {
"jobState": "NOT_STARTED",
"jobStatusDetail": {},
"startedBy": "autouser_pod1",
"startDate": "2022-03-21T09:09:04.000+0000",
"totalCount": 1,
"processedCount": 0,
"assetPaths": [
"Explore/Pavan/BulkUnpublishApi/[Link]"

Taskflows 483
]
}
},
"links": {
"self": [Link]
unpublish/7645874567965431,
"status": [Link]
unpublish/7645874567965431/Status
}
}
The unpublish job ID in this example is 7645874567965431.
5. To view information about the unpublish status and unpublish job, use a GET request with the following
URLs:

URL Description

<Informatica Intelligent Cloud Services URL>/active- Displays the unpublish status.


bpel/asset/v1/unpublish/<unpublishId>/Status

<Informatica Intelligent Cloud Services URL>/active- Displays the unpublish job information.
bpel/asset/v1/unpublish/<unpublishId>

Validating expressions
Use this resource to validate expressions.

POST Request
To validate an expression, use the following URI:
/saas/api/v2/expression/validate
Use the following attributes in the request body:

Field Type Required Description

expr String Yes The expression to validate.

connectionId String Yes Connection ID.

objectName String Yes Name of the source or target object.

isSourceType Boolean Yes Whether the expression is for a source object. Values are True or False.

If the expression is valid, the response returns a message that says the expression is valid. If the expression
is not valid, the response returns an error.

POST Example
To validate an expression, you might use the following request:
POST <serverURL>/api/v2/expression/validate
Content-Type: application/json
Accept: application/json
INFA-SESSION-ID: <SessionId>
{

484 Chapter 4: Data Integration REST API


"@type":"expressionValidation",
"expr":"REPVERSION",
"connectionId":"0000010B000000000004",
"objectName":"OPB_REPOSIT",
"isSourceType":true
}

Data Integration REST API supplemental information


This section includes supplemental information such as connector data types and a mapping of connection
REST API attributes to user interface fields.

Connector data types


When you submit a request for connector metadata, data type is included in the response. Data types for
connector attributes are returned in REST API responses using a numeric value.

The following example shows a response with the type value of 2:


{
"name": "database",
"label": "",
"id": "",
"value": "",
"type": 2,
"isMandatory": true,
"visible": false,
"list": []
},
The type value of 2 means the database attribute can only contain alphabetic characters.

The following table lists the numeric values that might be included in the response and the corresponding
data type:

Value Data Type Description

1 NUMERIC_TYPE Attribute value can only contain numbers.

2 ALPHABET_TYPE Attribute value can only contain alphabetic characters.

3 NUMERIC_TYPE/ Attribute value can only contain numbers or alphabetic characters.


ALPHABET_TYPE

4 SYMBOLS_TYPE Attribute value can only contain symbols.

5 NUMERIC_TYPE/ Attribute value can only contain numbers and symbols.


SYMBOLS_TYPE

6 ALPHABET_TYPE/ Attribute value can only contain alphabetic characters and symbols.
SYMBOLS_TYPE

7 NUMERIC_TYPE/ Attribute value can only contain alphabetic characters, numbers, and symbols.
ALPHABET_TYPE/
SYMBOLS_TYPE

Data Integration REST API supplemental information 485


Value Data Type Description

8 LIST_TYPE Attribute value can only contain values from a predefined list.

9 NUMERIC_TYPE/ Attribute value can only contain values from a predefined list and the value
LIST_TYPE contains only numbers.

10 ALPHABET_TYPE/ Attribute value can only contain values from a predefined list and the value
LIST_TYPE contains only numbers.

11 NUMERIC_TYPE/ Attribute value can only contain values from a predefined list and the value
ALPHABET_TYPE/ contains only alphabetic characters and numbers.
LIST_TYPE

12 SYMBOLS_TYPE/ Attribute value can only contain values from a predefined list and the value
LIST_TYPE contains only symbols.

13 NUMERIC_TYPE/ Attribute value can only contain values from a predefined list and the value
SYMBOLS_TYPE/ contains only numbers and symbols.
LIST_TYPE

14 ALPHABET_TYPE/ Attribute value can only contain values from a predefined list and the value
SYMBOLS_TYPE/ contains only alphabetic characters and symbols.
LIST_TYPE

15 NUMERIC_TYPE/ Attribute value can only contain values from a predefined list and the value
ALPHABET_TYPE/ contains only alphabetic characters, numbers, and symbols.
SYMBOLS_TYPE/
LIST_TYPE

16 BOOLEAN Attribute value is a boolean.

32 PASSWORD Attribute value is a password.

For more information about requesting connector metadata, see “Connectors” on page 340.

Connection user interface fields to REST API attributes mapping


Some connection field names in the user interface do not intuitively map to corresponding REST API attribute
names in the connection resource. Additionally, some attribute names used for REST API GET and POST
methods for the connection resource do not match the attribute names used in the REST API response that
populates the values shown in the user interface.

The following tables map user interface fields with attributes used for REST API GET and POST calls and the
REST API response to the user interface, where the correlation between these fields might be confusing.

Connection UI Field Name REST API GET and POST Response to UI


Attribute Name Attribute Name

All connections Runtime Environment runtimeEnvironmentId agentGroupId

CSV Flat File Directory database dirName

FTP and SFTP Directory database dirName

486 Chapter 4: Data Integration REST API


Connection UI Field Name REST API GET and POST Response to UI
Attribute Name Attribute Name

Microsoft Access Data Source Name database database

Microsoft SQL Server SQL Server Version type subType

Oracle Service Name database database

SAP IDoc Reader Destination Entry database database

SAP IDoc Writer and SAP RFC/ Connection String database database
BAPI

Web Service Consumer Endpoint URL serviceUrl serviceUrl

Data Integration REST API supplemental information 487


Chapter 5

File Ingestion and Replication


REST API
Use the file ingestion and replication resources to run and monitor file ingestion and replication tasks.

When you use file ingestion and replication resources, note the following rules:

• Use JSON format.


• Use the following base URL:
<serverUrl>/mftsaas/api/v1/<API name>
• Use the following request header format:
<METHOD> <serverUrl>/<URI> HTTP/<HTTP version>
Content-Type: application/json
Accept: application/json
IDS-SESSION-ID: <SessionId>
Note: If you use a tool such as Postman that automatically includes the HTTP version, do not enter the HTTP
version in the URL. If the HTTP version appears twice in the URL, the request fails.

Jobs
Use the job resource to start a file ingestion and replication job. You can also use the job resource to retrieve
job status or job logs for a file ingestion and replication task. Use the file ingestion and replication REST API
version 1 task resource to retrieve the ID and name of the task.

Run Request
To start a file ingestion and replication task job, use the following URI:
mftsaas/api/v1/job
Include the following information in the request:

Field Type Required Description

taskId String Yes File ingestion and replication ID.

taskName String - File ingestion and replication name.

488
Use the following source directory and target directory keys for the specified connectors when you start a file
ingestion and replication job:

Connector srcDir tgtDir

local sourceDirectory targetDirectory

ftp,ftps,sftp sourceDirectory targetDirectory

gcs sourceDirectory gcsTargetLocation

hdfs sourceDirectory hdfsTargetLocation

adlsgen2 sourceDirectory adlsGen2TargetLocation

s3 s3SourceLocation s3TargetLocation

blob blobSourceLocation blobContainer

You can overwrite the following parameters using the job resource REST API:

Category Parameter ID

General Source Connection sourceConnection

General Target Connection targetConnection

General Parallel Batch Log Level parallelBatch

General Log Level logLevel

Source Source Directory sourceDirectory

Source File Pattern filePattern

Source Batch Size batchSize

Source Include files from sub-folders includeSubfolder

Source Skip Duplicate files checkDuplicate

Source Check File Stability fileStability

Source Stability Check Interval stabilityCheckInterval

Target Target Directory targetDirectory

Note: You must pass the connection ID to overwrite the source and target connection parameters.

Use the following sample as a reference to start a file ingestion and replication task job:
{
"taskId": "k1YHA1blhcBjbJvCIRQX2s",
"taskName": "localtolocal_param2"
}

Jobs 489
Use the following sample to overwrite the source option values that were passed in the user interface:
"variables": [{
"variable": "<string>",
"value": "<string>"
}]
In the following example, the parameter value that were passed in the user interface is overwritten to
corresponding values provided in JSON POST while using the job resource REST API:
POST <serverUrl>/mftsaas/api/v1/job HTTP/<HTTP version>
Content-Type: application/json
Accept: application/json
IDS-SESSION-ID: <SessionId>

{
"taskId": "0efdVUEZeV2cB0quomeksd",
"taskName": "localtolocal_param2",
"parameters": {
"category": [{

"id": "General",

"parameter": [

"id":"sourceConnection",

"value":"AdvancedSFTPV2"

},

"id":"targetConnection",

"value":"AdvancedSFTPV2"

},

"id":"parallelBatch",

"value":"10"

},

"id":"logLevel",

"value":"DEBUG"

},{

"id": "Source",

"parameter": [{

"id": "sourceDirectory",

"value": "/root/test1"

},

490 Chapter 5: File Ingestion and Replication REST API


{

"id":"filePatternType",

"value":"reg"

},

"id": "filePattern",

"value": "*.txt"

},

"id": "batchSize",

"value": "5"

},

"id":"includeSubfolder",

"value":"true"

},

"id":"checkDuplicate",

"value":"true"

},

"id":"fileStability",

"value":"true"

},

"id":"stabilityCheckInterval",

"value":"30"

},

"id": "Target",

"parameter": [{

"id": "targetDirectory",

"value": "/root/test2"

Jobs 491
}]

}
The following example shows to override a file ingestion and replication task with filename as a variable:
POST <serverUrl>/mftsaas/api/v1/job HTTP/<HTTP version>
Content-Type: application/json
Accept: application/json
IDS-SESSION-ID: <SessionId>

{
"taskId": "4m24k3UFWMkkqd55YDefIB",
"taskName": "R41_Local_Local",
"parameters": {
"category": [
{
"id": "Source",
"parameter": [
{
"id": "sourceDirectory",
"value": "/${Parentfolder}"
},
{
"id": "filePickupFilePath",
"value": "${filename}"
},
{
"id": "batchSize",
"value": "5"
}
]
},
{
"id": "Target",
"parameter": [
{
"id": "targetDirectory",
"value": "/${Parentfolder}/Target"
}
]
}
]
},
"variables": [
{
"variable": "Parentfolder",
"value": "root/Arun"
},
{
"variable": "filename",
"value": "[Link]"
}
]
}
The following exampleshows to override a file ingestion and replication task with filelist as a variable:
POST <serverUrl>/mftsaas/api/v1/job HTTP/<HTTP version>
Content-Type: application/json
Accept: application/json
IDS-SESSION-ID: <SessionId>

{
"taskId": "4m24k3UFWMkkqd55YDefIB",
"taskName": "R41_Local_Local",

492 Chapter 5: File Ingestion and Replication REST API


"parameters": {
"category": [
{
"id": "Source",
"parameter": [
{
"id": "sourceDirectory",
"value": "/${Parentfolder}"
},
{
"id": "filePickupFileList",
"value": "${filelist}"
},
{
"id": "batchSize",
"value": "5"
}
]
},
{
"id": "Target",
"parameter": [
{
"id": "targetDirectory",
"value": "/${Parentfolder}/Target"
}
]
}
]
},
"variables": [
{
"variable": "Parentfolder",
"value": "root/Arun"
},
{
"variable": "filelist",
"value": "[Link],[Link],[Link],[Link]"
}
]
}

Run Response
If successful, file ingestion and replication returns the run ID for the job. Use the run ID to monitor the job
status and request log files for the job.

If unsuccessful, the response includes a reason for the failure.

GET Status Request


To retrieve the status of a specific file ingestion and replication task job, use the following URI:
mftsaas/api/v1/job/<runId>/status

GET Status Response


If successful, file ingestion and replication returns the job status and the job details, which includes a list of
files and the details and status of each file.

If unsuccessful, the response includes a reason for the failure.

GET Job Logs Request


To retrieve the log files for a specific file ingestion and replication task job, use the following URI:
mftsaas/api/v1/job/<runId>/logs

GET Job Logs Response


If successful, file ingestion and replication returns the log files for the job.

Jobs 493
If unsuccessful, the response includes a reason for the failure.

Activity logs
Use the activityLog resource to retrieve details for a completed job using the task ID, run ID, or both.

REST API version 1 resource


Use the file ingestion and replication task REST API version 1 resource to retrieve details for a completed job
using the task ID, run ID, or both.

GET Request
To request the details for a completed job using the task ID, use the following URI:
mftsaas/api/v1/mitasks/activityLog?taskId=<taskId>
To request the details for active or a completed job using the run ID, use the following URI:
mftsaas/api/v1/mitasks/activityLog?runId=<runId>
To specify the number of rows to skip, use the following URI:
mftsaas/api/v1/mitasks/activityLog?taskId={{taskID}}&<offset>
To specify a row limit, use the following URI:
mftsaas/api/v1/mitasks/activityLog?taskId={{taskID}}&<rowLimit>
You can use a combination of these options. For example, you can use the following URI:
mftsaas/api/v1/mitasks/activityLog?
runId=<runId>&taskId=<taskId>&rowLimit=<rowLimit>&offset=<offset>
You can use the following attributes in the activityLog GET URI:

Field Description

taskId File ingestion and replication task ID.

runId File ingestion and replication run ID.

offset The number of rows to skip. For example, you might want to skip the first three rows.

rowLimit The maximum number of rows to return. The maximum number you can specify is 100. Default is 25.

Note: You must specify either the taskId or the runId attribute in the GET URI.

GET Response
The activityLog object returns the following attributes:

Field Description

id File ingestion and replication job ID.

totaljobCount Total number of jobs.

494 Chapter 5: File Ingestion and Replication REST API


Field Description

taskId File ingestion and replication task ID.

runId File ingestion and replication run ID.

startedBy Name of the user who created the file ingestion and replication task.

startTime Start time for the job. Uses Coordinated Universal Time (UTC).

endTime End time for the job. Uses Coordinated Universal Time (UTC).

status Whether the job completed successfully.

messageText Error message associated with the job.

successFiles The number of files that are successfully transferred from source to target.

failedFiles The number of files that were not transferred from source to target.

GET Example
The following example shows a response to get details for a file ingestion and replication job using task ID:
{
"totalJobCount": 7,
"jobActivityLog": [
{
"id": 1000000200272,
"taskId": 89882,
"runId": 137205,
"startedBy": "b2b_pod1",
"startTime": "2021-09-13T09:55:13Z",
"endTime": "2021-09-13T09:55:15Z",
"status": "FAILED"
},
{
"id": 1000000200270,
"taskId": 89882,
"runId": 137204,
"startedBy": "b2b_pod1",
"startTime": "2021-09-13T09:52:44Z",
"endTime": "2021-09-13T09:53:02Z",
"status": "SUCCESS"
},
{
"id": 1000000200268,
"taskId": 89882,
"runId": 137202,
"startedBy": "b2b_pod1",
"startTime": "2021-09-13T09:49:55Z",
"endTime": "2021-09-13T09:50:12Z",
"status": "SUCCESS"
},
{
"id": 1000000200264,
"taskId": 89882,
"runId": 137199,
"startedBy": "b2b_pod1",
"startTime": "2021-09-13T09:43:27Z",
"endTime": "2021-09-13T09:43:42Z",
"status": "SUCCESS"
},
{

Activity logs 495


"id": 1000000200262,
"taskId": 89882,
"runId": 137198,
"startedBy": "b2b_pod1",
"startTime": "2021-09-13T09:13:58Z",
"endTime": "2021-09-13T09:14:04Z",
"status": "FAILED"
},
{
"id": 1000000200261,
"taskId": 89882,
"runId": 137197,
"startedBy": "b2b_pod1",
"startTime": "2021-09-13T09:13:09Z",
"endTime": "2021-09-13T09:13:28Z",
"status": "SUCCESS"
},
{
"id": 1000000200260,
"taskId": 89882,
"runId": 137196,
"startedBy": "b2b_pod1",
"startTime": "2021-09-13T09:12:21Z",
"endTime": "2021-09-13T09:12:35Z",
"status": "SUCCESS"
}
]
}
The following example shows a response to get details for a file ingestion and replication job using run ID:
{
"jobActivityLog": [
{
"jobStatusResponse": {
"jobStatus": "FAILED",
"errorMessage": "[8008 - Create File List] Directory '/root/testnot' not
found ",
"jobDetails": {
"jobNumber": 1000000200262,
"status": "Failed",
"startTime": "2021-09-13T09:13:58Z",
"endTime": "2021-09-13T09:14:04Z",
"messageText": "[8008 - Create File List] Directory '/root/testnot'
not found ",
"successFiles": 0,
"failedFiles": 0,
"fileDetails": []
}
}
}
]
}

{
"jobActivityLog": [
{
"jobStatusResponse": {
"jobStatus": "FAILED",
"errorMessage": "[8008 - Create File List] Directory '/root/testnot' not
found ",
"jobDetails": {
"jobNumber": 1000000200262,
"status": "Failed",
"startTime": "2021-09-13T09:13:58Z",
"endTime": "2021-09-13T09:14:04Z",
"messageText": "[8008 - Create File List] Directory '/root/testnot'
not found ",
"successFiles": 0,
"failedFiles": 0,

496 Chapter 5: File Ingestion and Replication REST API


"fileDetails": []
}
}
}
]
}

REST API version 2 resource


Use the file ingestion and replication task REST API version 2 resource to retrieve details for a given job type
using the task ID, run ID, both, or neither.

GET Request
To request details for all jobs in a file ingestion and replication task, use the following URI:
mftsaas/api/v2/mitasks/activityLog
To request the details for all jobs using the task ID, use the following URI:
mftsaas/api/v2/mitasks/activityLog?taskId=<taskId>
To request the details for all jobs using the run ID, use the following URI:
mftsaas/api/v2/mitasks/activityLog?runId=<runId>
To specify the number of rows to skip, use the following URI:
mftsaas/api/v2/mitasks/activityLog?taskId=<taskId>&offset=<offset>
To specify a row limit, use the following URI:
mftsaas/api/v2/mitasks/activityLog?taskId=<taskId>&rowLimit<rowLimit>
To specify a job type, use the following URI:
mftsaas/api/v2/mitasks/activityLog?jobType=<jobType>
To specify the number of file events to display and include the file event limit, use the following URI:
mftsaas/api/v2/mitasks/activityLog?
runId={{runID}}&fetchFileEvents=true&fileEventsLimit=10
You can use a combination of these options. For example, you can use the following URI:
mftsaas/api/v2/mitasks/activityLog?
runId=<runId>&taskId=<taskId>&rowLimit=<rowLimit>&offset=<offset>
You can use the following attributes in the activityLog GET URI:

Field Description

taskId File ingestion and replication task ID.

runId File ingestion and replication run ID.

offset The number of rows to skip. For example, you might


want to skip the first three rows.

rowLimit The maximum number of rows to return. The maximum


number you can specify is 100. Default is 25.

Activity logs 497


Field Description

jobType Types of jobs to include in the response. You can use


one of the following options:
- all
- completed
- active
Default is all.

fetchFileEvents Determines if you want to display the file events. Set to


one of the following values:
- true. The file ingestion and replication task displays
the job file events.
- false. The file ingestion and replication task does not
display the job file events.
Default is false.

fileEventsLimit The number of file events to return. Applies when


fetchFileEvents is set to true. The maximum number
you can specify is 1000. Default is 100.

GET Response
The activityLog object returns the following attributes:

Field Description

totaljobCount Total number of jobs.

taskId File ingestion and replication task ID.

runId File ingestion and replication run ID.

startedBy Name of the user who created the file ingestion and replication task.

startTime Start time of the job. Uses Coordinated Universal Time (UTC).

endTime End time of the job. Uses Coordinated Universal Time (UTC).

status Whether the job completed successfully.

logLocation The location of the session log.

messageText Remarks associated with the job status.

successFiles The number of files that are successfully transferred from source to target.

failedFiles The number of files that were not transferred from source to target.

GET Example
The following example shows a response to a request to get details for a file ingestion and replication job
using task ID:
{
"totalJobCount": 1,
"jobActivityLog": [

498 Chapter 5: File Ingestion and Replication REST API


{
"taskId": "gS7ivoMYoOli6v7TR7MIIe",
"jobs": [
{
"runId": 490176,
"startedBy": "b2b_pod1",
"startTime": "2023-05-08T00:20:14Z",
"endTime": "2023-05-08T00:20:19Z",
"status": "SUCCESS"
"logLocation": "data/taskLogs/2023-05-08/[Link]"
"messageText": "Job completed",
"successFiles": 8,
"failedFiles": 0

}
}
]
}
The following example shows a response to a request to get details for a file ingestion and replication job
with fetchFileEvents set to true:
{
"totalJobCount": 1,
"jobActivityLog": [
{
"taskId": "34owubT0kvFe18LdELjXop",
"jobs": [
{
"runId": 496420,
"startedBy": "atl",
"startTime": "2023-05-08T07:25:25Z",
"endTime": "2023-05-08T07:25:54Z",
"status": "SUCCESS",
"logLocation": "data/taskLogs/2023-05-08/[Link]",
"messageText": "Job completed normally",
"successFiles": 1003,
"failedFiles": 0,
"fileDetails": [
{
"path": "/root/Arun/May/Target/File_5.txt",
"size": 12,
"lastModified": "2023-05-04T09:00:30Z",
"startTime": "2023-05-08T07:25:12Z",
"status": "SUCCESS",
"duration": 1,
"transferDirection": "UPLOAD"
},
{
"path": "/root/Arun/May/Target/File_12.txt",
"size": 12,
"lastModified": "2023-05-04T09:00:30Z",
"startTime": "2023-05-08T07:25:12Z",
"status": "SUCCESS",
"duration": 0,
"transferDirection": "UPLOAD"
},
{
"path": "/root/Arun/May/Target/File_2.txt",
"size": 12,
"lastModified": "2023-05-04T09:00:30Z",
"startTime": "2023-05-08T07:25:12Z",
"status": "SUCCESS",
"duration": 0,
"transferDirection": "UPLOAD"
},
{
"path": "/root/Arun/May/Target/File_8.txt",
"size": 12,
"lastModified": "2023-05-04T09:00:30Z",
"startTime": "2023-05-08T07:25:12Z",

Activity logs 499


"status": "SUCCESS",
"duration": 0,
"transferDirection": "UPLOAD"
},
{
"path": "/root/Arun/May/Target/File_10.txt",
"size": 12,
"lastModified": "2023-05-04T09:00:30Z",
"startTime": "2023-05-08T07:25:12Z",
"status": "SUCCESS",
"duration": 1,
"transferDirection": "UPLOAD"
},
{
"path": "/root/Arun/May/Target/File_14.txt",
"size": 12,
"lastModified": "2023-05-04T09:00:30Z",
"startTime": "2023-05-08T07:25:12Z",
"status": "SUCCESS",
"duration": 1,
"transferDirection": "UPLOAD"
},
{
"path": "/root/Arun/May/Target/File_16.txt",
"size": 12,
"lastModified": "2023-05-04T09:00:30Z",
"startTime": "2023-05-08T07:25:12Z",
"status": "SUCCESS",
"duration": 0,
"transferDirection": "UPLOAD"
},
{
"path": "/root/Arun/May/Target/File_18.txt",
"size": 12,
"lastModified": "2023-05-04T09:00:30Z",
"startTime": "2023-05-08T07:25:12Z",
"status": "SUCCESS",
"duration": 0,
"transferDirection": "UPLOAD"
},
{
"path": "/root/Arun/May/Target/File_6.txt",
"size": 12,
"lastModified": "2023-05-04T09:00:30Z",
"startTime": "2023-05-08T07:25:12Z",
"status": "SUCCESS",
"duration": 0,
"transferDirection": "UPLOAD"
},
{
"path": "/root/Arun/May/Target/File_13.txt",
"size": 12,
"lastModified": "2023-05-04T09:00:30Z",
"startTime": "2023-05-08T07:25:12Z",
"status": "SUCCESS",
"duration": 0,
"transferDirection": "UPLOAD"
}
]
}
]
}
]
}

500 Chapter 5: File Ingestion and Replication REST API


Tasks
Use the tasks resource to create, update, delete, and view file ingestion and replication tasks.

Running and monitoring file ingestion and replication tasks involves a series of requests and responses. Use
the followings methods to perform file ingestion and replication tasks:

• Send a tasks GET request to view a list of all file ingestion and replication tasks. See “View file ingestion
and replication tasks” on page 501.
• Send a tasks POST request to create a file ingestion and replication task. See “Create a file ingestion and
replication task” on page 505.
• Send a tasks PUT request to update a file ingestion and replication task. See “Update a file ingestion and
replication task” on page 511.
• Send a tasks GET request to view the location of a file ingestion and replication task. See “View the
location of a file ingestion and replication task” on page 513.
• Send a tasks DELETE request to delete a file ingestion and replication task. See “Delete a file ingestion
and replication task” on page 514.

View file ingestion and replication tasks


Use the GET request to view file ingestion and replication tasks.

GET request
To view the details of a particular file ingestion and replication task, include the file ingestion and replication
in the following URI:
mftsaas/api/v1/mitasks/{{TASK-ID}}
To view the details for all file ingestion and replication tasks in the organization, omit the file ingestion and
replication ID.
mftsaas/api/v1/mitasks
For example, use the following request:
GET [Link] HTTP/<HTTP version>
Content-Type: application/json
Accept: application/json
IDS-SESSION-ID: <SessionId>

GET response
Returns the task object if successful or an error object if errors occur.

The task object includes the following information about each of the file ingestion and replication tasks in the
organization:

Field Type Description

taskId String ID number associated with the task.

taskName String Name of the task.

description String Description of the task.

location String Project and folder path where the task exists.

Tasks 501
Field Type Description

createTime Date/time Time when the task was created.

updateTime Date/time Time when the task was last updated.

Note: The create and update time in the response are in UTC time.

GET response example to view all file ingestion and replication tasks
The following sample response shows that there are three file ingestion and replication tasks in the
organization:

{
"mitasks": [
{
"id": "1ONE5Vewzztl0tuKR0EDum",
"name": "A01_UMAR_MITASK2318",
"description": "",
"sourceType": "CONNECTION",
"sourceConnection": {
"id": "",
"name": "",
"type": "local"
},
"targetConnection": {
"id": "0100000B000000000002",
"name": "ftps",
"type": "Advanced FTPS"
},
"agentGroupId": "01000025000000000002",
"updatedTime": "2019-01-30T11:17:49Z"
},
{
"id": "9D1tGkAxopJeFmUWoG4s48",
"name": "A01_UMAR_MITASK3354",
"description": "",
"sourceType": "CONNECTION",
"sourceConnection": {
"id": "0100000B00000000000M",
"name": "AzureBlob",
"type": "Azure Blob"
},
"targetConnection": {
"id": "0100000B00000000000L",
"name": "SFTP_Conn",
"type": "Advanced SFTP"
},
"agentGroupId": "01000025000000000002",
"updatedTime": "2019-01-30T06:42:19Z"
},
{
"id": "4hcTFqKVOQrl1z4d6pGUMP",
"name": "A01_UMAR_MITASK5124",
"description": "",
"sourceType": "CONNECTION",
"sourceConnection": {
"id": "0100000B0000000004IO",
"name": "S3",
"type": "AmazonS3"
},
"targetConnection": {
"id": "",
"name": "",
"type": "local"
},

502 Chapter 5: File Ingestion and Replication REST API


"agentGroupId": "01000025000000000002",
"updatedTime": "2019-01-30T06:35:01Z"
}]
}

Get response example showing a file ingestion and replication task with file pattern as the
file pickup option
The following sample response shows details of a file ingestion and replication task.
IDS-SESSION-ID:{{IDS-SESSION-ID}}
Accept:application/json
{
"id": "j9OLB12nqYObykdFSUMpO2",
"name": "FTPSrcTarget",
"location": {
"projectId": "dNC6zbp2lI8ghrKPo6hpwn",
"projectName": "Hardening"
},
"description": "",
"sourceType": "CONNECTION",
"sourceConnection": {
"id": "0100000B00000000028M",
"name": "CCI_FTPS",
"type": "Advanced FTPS V2"
},
"targetConnection": {
"id": "0100000B0000000001JR",
"name": "CCI_FTP_Lin",
"type": "Advanced FTP V2"
},
"sourceParameters": {
"filePattern": "*.txt",
"sourceTransferMode": "AUTO",
"filePatternType": "WILDCARD",
"includeSubfolder": "false",
"sourceDirectory": "/root/suraj/qa/test/automation/RSFiles",
"checkDuplicate": "false",
"fileStability": "true",
"stabilityCheckInterval": "60",
"postPickupAction": "KEEP"
},
"targetParameters": {
"fileExistsAction": "APPEND_TIMESTAMP",
"targetDirectory": "/",
"targetTransferMode": "AUTO"
},
"agentGroupId": "01000025000000000003",
"createdTime": "2019-02-04T10:34:08Z",
"updatedTime": "2019-02-04T11:04:02Z",
"filePickupOption": "PATTERN"
}

GET response example showing a file ingestion and replication task with file list (file path)
as the file pickup option
The following sample response shows a file ingestion and replication task with filePickupOption type as
FILELIST and a filePickupFilePath in its sourceParameters, indicating that this task reads the designated
pickup file to identify which files need to be processed.

{
"id": "aFHWKrr1RwycuBRBLTtt2t",
"name": "FilePath_CheckStability",
"location": {
"projectId": "0ggRhrI8ZziguyBxHBzuG0",
"projectName": "Default"
},
"description": "",
"sourceType": "CONNECTION",

Tasks 503
"sourceConnection": {
"id": "",
"name": "",
"type": "local"
},
"targetConnection": {
"id": "",
"name": "",
"type": "local"
},
"sourceParameters": {
"filePickupFilePath": "[Link]",
"sourceDirectory": "/root/test",
"checkDuplicate": "false",
"stabilityCheckInterval": "60",
"postPickupAction": "KEEP",
"filepickupByName": "FILEPATH",
"batchSize": "5",
"fileStability": "true",
"stabilityCheckInterval": "60"
},
"targetParameters": {
"fileExistsAction": "OVERWRITE",
"targetDirectory": "/root/testCheckStability"
},
"agentGroupId": "01001D25000000000002",
"createdTime": "2021-08-13T09:38:03Z",
"updatedTime": "2021-08-13T09:39:02Z",
"logLevel": "NORMAL",
"filePickupOption": "FILELIST"
}

GET response example showing a file ingestion and replication tasks with file list as the file
pickup option
The following sample response shows a file ingestion and replication task with filePickupOption type as
FILELIST, filepickupByName as LISTOFFILES, and a filePickupFileList in its sourceParameters, indicating that
this task reads and identifies the designated pickup files to be processed.

{
"id": "2bTlAolXbAGlE7I5qauSAW",
"name": "DedupFilelist_pushdown",
"location": {
"projectId": "0ggRhrI8ZziguyBxHBzuG0",
"projectName": "Default"
},
"description": "",
"sourceType": "CONNECTION",
"sourceConnection": {
"id": "01001D0B0000000005PP",
"name": "ADLSGen2",
"type": "Azure Data Lake Gen2"
},
"targetConnection": {
"id": "01001D0B0000000005PU",
"name": "AzureDW_Gen2",
"type": "Azure DW"
},
"sourceParameters": {
"sourceDirectory": "/B2B/MI",
"checkDuplicate": "true",
"postPickupAction": "KEEP",
"filepickupByName": "LISTOFFILES",
"blockSize": "8388608",
"filePickupFileList": "[Link],[Link]",
"batchSize": "5",
"timeoutInterval": "60",
"fileStability": "true",
"stabilityCheckInterval": "60"

504 Chapter 5: File Ingestion and Replication REST API


},
"targetParameters": {
"commandType": "auto",
"targetTableName": "test1234",
"isPushdown": "true",
"ingestionMethod": "polybase",
"targetSchemaName": "testing",
"isTruncateTarget": "true"
},
"agentGroupId": "01001D25000000000002",
"createdTime": "2021-04-29T08:47:57Z",
"updatedTime": "2021-04-29T08:47:57Z",
"logLevel": "NORMAL",
"filePickupOption": "FILELIST"
}

Create a file ingestion and replication task


Use a POST request to create a file ingestion and replication task.

POST request
To create a file ingestion and replication task through the API, use the following URI:
mftsaas/api/v1/mitasks
Include the following fields in the request:

Field Type Required Description

name String Yes Name of the task.

location String - Location of the project.

projectId String - ID number associated with the project.

projectName String - Name of the project.

description String - Description of the task.

sourceConnection String - Directory from where files are transferred.

sourceType String Yes Determines the type where files are transferred. Enter one of the
following options:
- CONNECTION. Use connection as a source.
- FILELISTENER. Use file listener as a source.

includesubfolder String - Determines whether to include the files in sub-folders in the


transfer. Set the value to true to transfer files from all sub-
folders under the defined source directory. Values are true or
false.

checkDuplicate String - Determines whether to check for duplicate files. Values are true
or false. Set the value to true to check duplicate files and deny
file transfer. If the value is set to false all files are transferred.

Tasks 505
Field Type Required Description

filePickupOption String Yes Determines the file pickup method. Enter one of the following
options:
- FILELIST. The file ingestion and replication task picks up
files based on a file list.
- PATTERN. The file ingestion and replication task picks up files
by pattern.

allowConcurrency String - Determines whether to run multiple jobs concurrently. Set the
value to true to run multiple jobs concurrently, else set the value
to false.
Warning: Running concurrent jobs might cause unexpected
results if the targets include duplicate files.

filePatternType String Yes This applies when filePickupOption is PATTERN. File pattern type
used to select files to transfer. Enter one of the following
options:
- wildcard
- regex

filePattern String Yes Enter file pattern types, depending on the file pattern that you
have selected.
- wildcard. You can use the following wildcard character filters:
- An asterisk (*) matches any number of characters.
- A question mark (?) matches a single character.
- regex. Use regular expression to match the file pattern.
Consider the following examples:
- Use the following syntax to listen to all files except for files
with a name that contains out, foo, and baz:
^(?!.*(?:out|baz|foo)).*$ all except
- Use the following syntax to listen to all files with doc, docx,
and pdf extensions: ([a-zA-Z0-9\s_\\.\-\(\):])+
(.doc|.docx|.pdf)$

filepickupByName String Yes This applies when filePickupOption is FILELIST. Enter one of the
following options:
- filepath. Provide the path that contains the list of files to
pick up and enter the file path.
- listoffiles. Provide the list of files to pick up and enter a
comma-separated list of file names. Ensure there is no space
before or after specifying the file name.

fileStability Boolean - Determines if the task verifies whether the file is stable before
picking it up. Enter one of the following values.
- true. The file ingestion and replication task verifies whether
the file is stable before picking it up.
- false. The file ingestion and replication task does not verify
whether the file is stable before picking it up.
Default is false.

stabilityCheckInter Int - Time in seconds that a file ingestion and replication task waits to
val check the file stability.
You can specify a value in the stabilityCheckInterval field only if
the fileStability option is set to true.
The stability check interval ranges between 10 seconds to 300
seconds.

506 Chapter 5: File Ingestion and Replication REST API


Field Type Required Description

postPickupAction String - Determines what to do with source files after the transfer of files.
The following options are available:
- KEEP. Keep the files in the source directory.
- DELETE. Delete the files from the source directory.
- RENAME. Rename the files in the source directory. You must
specify a file name suffix that File ingestion and replication
adds to the file name when renaming the files.
- ARCHIVE. Archive the files to a different location. You must
specify an archive directory.

targetConnection String Yes Directory details to which files are transferred.

taskActions String - Actions to process files in the file ingestion and replication task.
If you add multiple actions, file ingestion and replication
processes files in a sequence.

actions File processing action.


Enter the following file processing actions:
- To compress files, enter Compression.
- To decompress files, enter Decompression.
- To encrypt files, enter Encryption.
- To dencrypt files, enter Decryption.
- To move files from multiple folders to a single folder and to
rename file in the target directory, enter File Operations.
- To scan files for viruses by using the ICAP protocol, enter
Virus Scan.

action type Enter the action type depending on the action that you add.
To compress files use one of the following methods.
- Zip
- Tar
- Gzip
- Bzip2
To decompress files use one of the following methods.
- Unzip
- Untar
- Gunzip
- Bunzip2
To encrypt files add PGP. Enter the key ID in the properties.
Note: The file ingestion and replication task uses the PGP method
to encrypt files. Generate a key ring using the CLI. Enter the key
ring in the Key ID. For more information about the keyring CLIs,
refer to key ring command reference in Tasks.
To decrypt files, add PGP. Enter the key passphrase in the
properties.
Note: The file ingestion and replication task uses the PGP method
to encrypt files. Generate the key passphrase using the CLI. Enter
the key passphrase in the Key Passphrase. For more information
about the keyring CLIs, refer to key ring command reference in
Tasks.

Tasks 507
POST request example
Use this sample as a reference to create a file ingestion and replication task with file pattern as the file
pickup option
POST <serverURL>/public/core/v1/mitasks
Content-Type: application/json
Accept:application/json
Content-Type:application/json
IDS-SESSION-ID:{{IDS-SESSION-ID}}
{
"name": "Green Green v2",
"location": {
"projectId": "9JDNOBX9M31e2AD1dIUv6M",
"projectName": "Default"
},
"description": "",
"sourceType": "CONNECTION",
"sourceConnection": {
"id": "",
"name": "",
"type": "local"
},
"sourceParameters": {
"filePattern": "*.txt",
"filePatternType": "WILDCARD",
"includeSubfolder": "false",
"sourceDirectory": "C:\\Monitor",
"checkDuplicate": "false",
"fileStability": "true",
"stabilityCheckInterval": "60",
"postPickupAction": "KEEP"

},
"targetConnection": {
"id": "0100000B000000000002",
"name": "ADLS",
"type": "Azure Data Lake"
},
"targetParameters": {
"adlsTargetLocation": "/satyen/green"

},
"agentGroupId": "01000025000000000002",
"filePickupOption": "PATTERN",
"logLevel": "NORMAL",
"allowConcurrency": "true",
taskActions":[
{
"action": "Compression",
"actionType": "Zip",
"properties": {}
}
]
}
Use this sample as a reference to create a file ingestion and replication task with file path as the file pickup
option.
POST <serverURL>/public/core/v1/mitasks
Content-Type: application/json
Accept:application/json
Content-Type:application/json
IDS-SESSION-ID:{{IDS-SESSION-ID}}
{
"name": "FilePath_RestAPI1",
"location": {
"projectId": "0ggRhrI8ZziguyBxHBzuG0",
"projectName": "Default"

508 Chapter 5: File Ingestion and Replication REST API


},
"description": "",
"sourceType": "CONNECTION",
"sourceConnection": {
"id": "",
"name": "",
"type": "local"
},
"targetConnection": {
"id": "",
"name": "",
"type": "local"
},
"sourceParameters": {
"filePickupFilePath": "[Link]",
"sourceDirectory": "/root/test",
"checkDuplicate": "false",
"fileStability": "true",
"stabilityCheckInterval": "60",
"postPickupAction": "KEEP",
"filepickupByName": "FILEPATH",
"batchSize": "5"

},
"targetParameters": {
"fileExistsAction": "OVERWRITE",
"targetDirectory": "/root/testCheckStability"
},
"agentGroupId": "01001D25000000000002",
"logLevel": "NORMAL",
"filePickupOption": "FILELIST",
"allowConcurrency": "true"
}
Use this sample as a reference to create a file ingestion and replication task with file list as the file pickup
option.
POST <serverURL>/public/core/v1/mitasks
Content-Type: application/json
Accept:application/json
Content-Type:application/json
IDS-SESSION-ID:{{IDS-SESSION-ID}}
{

"name": "DedupFilelist_RestAPI",
"location": {
"projectId": "0ggRhrI8ZziguyBxHBzuG0",
"projectName": "Default"
},
"description": "",
"sourceType": "CONNECTION",
"sourceConnection": {
"id": "01001D0B0000000005PP",
"name": "ADLSGen2",
"type": "Azure Data Lake Gen2"
},
"targetConnection": {
"id": "01001D0B0000000005PU",
"name": "AzureDW_Gen2",
"type": "Azure DW"
},
"sourceParameters": {
"sourceDirectory": "/B2B/MI",
"checkDuplicate": "true",
"postPickupAction": "KEEP",
"filepickupByName": "LISTOFFILES",
"blockSize": "8388608",
"filePickupFileList": "[Link],[Link]",
"batchSize": "5",
"timeoutInterval": "60",

Tasks 509
"fileStability": "true",
"stabilityCheckInterval": "60"

},
"targetParameters": {
"commandType": "auto",
"targetTableName": "test1234",
"isPushdown": "true",
"ingestionMethod": "polybase",
"targetSchemaName": "testing",
"isTruncateTarget": "true"
},
"agentGroupId": "01001D25000000000002",
"logLevel": "NORMAL",
"filePickupOption": "FILELIST",
"allowConcurrency": "true"
}

POST response example


If the request is successful, you might receive a response similar to the following example:

{
"id": "cEMWKpibm44bNf5aMjbJ4U",
"name": "Green Green v2",
"location": {
"projectId": "9JDNOBX9M31e2AD1dIUv6M",
"projectName": "Default"
},
"description": "",
"sourceType": "CONNECTION",
"sourceConnection": {
"id": "",
"name": "",
"type": "local"
},
"sourceParameters": {
"filePattern": "*.txt",
"filePatternType": "WILDCARD",
"includeSubfolder": "false",
"sourceDirectory": "C:\\Monitor",
"checkDuplicate": "false",
"fileStability": "true",
"stabilityCheckInterval": "60",
"postPickupAction": "KEEP"

},
"targetConnection": {
"id": "0100000B000000000002",
"name": "ADLS",
"type": "Azure Data Lake"
},
"targetParameters": {
"adlsTargetLocation": "/satyen/green"

},
"agentGroupId": "01000025000000000002",
"createdTime": "2018-08-27T07:03:32Z",
"updatedTime": "2018-08-29T12:14:58Z""
taskActions":[
{
"action": "Compression",
"actionType": "Zip",
"properties": {}
}
]
}
}
Note: The created and updated time in the response is displayed in the UTC time.

510 Chapter 5: File Ingestion and Replication REST API


Update a file ingestion and replication task
Use a PUT request to update a file ingestion and replication task.

PUT request
To update a file ingestion and replication task, use the following URI:
mftsaas/api/v1/mitasks/<taskID>
Include the following fields in the PUT request:

Field Type Required Description

id String - ID number of the task.

name String Yes Name of the task.

description String - Description of the task.

sourceType String Yes Determines the type where files are transferred. Enter one of the
following options:
- CONNECTION. Use connection as a source.
- FILELISTENER. Use file listener as a source.

sourceConnection String - Directory from where files are transferred.

includeSubfolder String - Values are true or false. Set the value to true to transfer files
from all sub-folders under the defined source directory.

checkDuplicate String - Values are true or false. Set the value to true to check
duplicate files and deny file transfer. If the value is set to false
all files are transferred.

filePatternType String Yes File name pattern used to select the files to transfer. Enter one
of the following options:
- Wildcard
- Regex

filePattern String Yes Enter pattern types, depending on the file pattern that you have
selected.
- wildcard. You can use the following wildcard character filters:
- An asterisk (*) matches any number of characters.
- A question mark (?) matches a single character.
- Regex. Use regular expression to match the file pattern.
Consider the following examples:
- Use the following syntax to listen to all files except for files
with a name that contains out, foo, and baz:
^(?!.*(?:out|baz|foo)).*$ à all except
- Use the following syntax to listen to all files with doc and
docx, pdf extensions: ([a-zA-Z0-9\s_\\.\-\(\):])+
(.doc|.docx|.pdf)$ à

Tasks 511
Field Type Required Description

fileStability Boolean - Determines if the task verifies whether the file is stable before
picking it up. Enter one of the following values.
- true. The file ingestion and replication task verifies whether
the file is stable before picking it up.
- false. The file ingestion and replication task does not verify
whether the file is stable before picking it up.
Default is false.

stabilityCheckInter Int - Time in seconds that a file ingestion and replication task waits
val to check the file stability.
You can specify a value in the stabilityCheckInterval field only if
the fileStability option is set to true.
The stability check interval ranges between 10 seconds to 300
seconds.

postPickupAction String - Determines what to do with source files after the files transfer.
The following options are available:
- KEEP. Keep the files in the source directory.
- DELETE. Delete the files from the source directory.
- RENAME. Rename the files in the source directory. You must
specify a file name suffix that file ingestion and replication
adds to the file name when renaming the files.
- ARCHIVE. Archive the files to a different location. You must
specify an archive directory.

targetConnection String Yes Directory details to which files are transferred.

PUT request example


Use this sample as a reference to update a file ingestion and replication task.
PUT <serverUrl>/public/core/v1/mitasks
Content-Type: application/json
Accept:application/json
Content-Type:application/json
IDS-SESSION-ID:{{IDS-SESSION-ID}}
{
"id": "cEMWKpibm44bNf5aMjbJ4U",
"name": "Green Green v2",
"description": "Green Green v2 Description",
"sourceType": "CONNECTION",
"sourceConnection": {
"id": "",
"name": "",
"type": "local"
},
"sourceParameters": {
"filePattern": "*.txt",
"filePatternType": "WILDCARD",
"includeSubfolder": "false",
"sourceDirectory": "C:\\Monitor",
"checkDuplicate": "false",
"fileStability": "true",
"stabilityCheckInterval": "60",
"postPickupAction": "KEEP"

},
"targetConnection": {
"id": "0100000B000000000002",
"name": "ADLS",
"type": "Azure Data Lake"

512 Chapter 5: File Ingestion and Replication REST API


},
"targetParameters": {
"adlsTargetLocation": "/satyen/green"
},
"agentGroupId": "01000025000000000002
}

PUT response example


If the request is successful, you might receive a response similar to the following example:
{
"id": "cEMWKpibm44bNf5aMjbJ4U",
"name": "Green Green v2",
"description": "",
"sourceType": "CONNECTION",
"sourceConnection": {
"id": "",
"name": "",
"type": "local"
},
"sourceParameters": {
"filePattern": "*.txt",
"filePatternType": "WILDCARD",
"includeSubfolder": "false",
"sourceDirectory": "C:\\Monitor",
"checkDuplicate": "false",
"fileStability": "true",
"stabilityCheckInterval": "60",
"postPickupAction": "KEEP"

},
"targetConnection": {
"id": "0100000B000000000002",
"name": "ADLS",
"type": "Azure Data Lake"
},
"targetParameters": {
"adlsTargetLocation": "/satyen/green"

},
"agentGroupId": "01000025000000000002",
"createdTime": "2018-08-27T07:03:32Z",
"updatedTime": "2018-08-29T12:14:58Z"
}

Note: The created and updated time in the response is displayed in the UTC time.

View the location of a file ingestion and replication task


Use the GET request to view the location of a file ingestion and replication task.

GET request
Use the following URI to get the location of a file ingestion and replication task.
/api/v1/mitasks?resolveLocation=true

GET response example


If the request to get the file location of a file ingestion and replication task is successful, you might receive a
response similar to the following example:
{
"miTasks": [
{
"id": "1ONE5Vewzztl0tuKR0EDum",
"name": "A01_UMAR_MITASK2318",
"location": {

Tasks 513
"folderId": "digFZU6HMo4gCKYghtQvgD",
"folderName": "A_01_UMAR",
"projectId": "503RTpKDSSLlwmkwTXL0Qx",
"projectName": "Default"
},
"description": "",
"sourceType": "CONNECTION",
"sourceConnection": {
"id": "",
"name": "",
"type": "local"
},
"targetConnection": {
"id": "0100000B000000000002",
"name": "ftps",
"type": "Advanced FTPS"
},
"agentGroupId": "01000025000000000002",
"createdTime": "2019-01-28T09:54:53Z",
"updatedTime": "2019-01-30T11:17:49Z"
},
{
"id": "9D1tGkAxopJeFmUWoG4s48",
"name": "A01_UMAR_MITASK3354",
"location": {
"folderId": "digFZU6HMo4gCKYghtQvgD",
"folderName": "A_01_UMAR",
"projectId": "503RTpKDSSLlwmkwTXL0Qx",
"projectName": "Default"
},
"description": "",
"sourceType": "CONNECTION",
"sourceConnection": {
"id": "0100000B00000000000M",
"name": "AzureBlob",
"type": "Azure Blob"
},
"targetConnection": {
"id": "0100000B00000000000L",
"name": "SFTP_Conn",
"type": "Advanced SFTP"
},
"agentGroupId": "01000025000000000002",
"createdTime": "2019-01-30T06:36:28Z",
"updatedTime": "2019-01-30T06:42:20Z"
}
]
}

Delete a file ingestion and replication task


Use the DELETE request to delete a file ingestion and replication task.

DELETE request
To delete a file ingestion and replication include the task ID of the task through the API, in the following URI:
mftsaas/api/v1/mitasks/<taskID>

514 Chapter 5: File Ingestion and Replication REST API


Chapter 6

Streaming Ingestion and


Replication REST API
Use Streaming Ingestion and Replication REST API resources to deploy, undeploy, start, stop, copy, and
update streaming ingestion and replication tasks and to monitor streaming ingestion and replication jobs.

When you use the streaming ingestion and replication resource, use the following request header format:

<METHOD><base URL>
Content-Type: application/json
Accept: application/json
IDS-SESSION-ID: <SessionId>

Deploying, undeploying, starting, and stopping


streaming ingestion and replication tasks
Use the dataflows resource to deploy, undeploy, start, and stop streaming ingestion and replication tasks.

Use the following base URL:


<server URI>/sisvc/api/v1/Dataflows('<dataflow ID>')/[Link].<API name>
Note: If you use a tool such as Postman that automatically includes the HTTP version, do not enter the HTTP
version in the URL. If the HTTP version appears twice in the URL, the request fails.

Deploying a streaming ingestion and replication task


Use a POST request to deploy a streaming ingestion and replication task.

POST request
To deploy a streaming ingestion and replication task, use the following URL:
<server URI>/sisvc/api/v1/Dataflows('<dataflow ID>')/[Link]
A request body is not required because the URL passes the dataflow ID.

515
POST request example
To deploy a streaming ingestion and replication task, you might send a request similar to the following
example:
POST <serverUrl>/sisvc/api/v1/Dataflows('50077311-d4a4-437c-9218-c3596d1f182f')/
[Link]
Content-Type: application/json
Accept:application/json
IDS-SESSION-ID:2l0oeVx22Rujiej7yTokmT

POST response example


If the request is successful, you might receive a response similar to the following example:
{
"@[Link]": "$metadata#[Link]",
"successful": true,
"code": null,
"errorMessage": null
}

Undeploying a streaming ingestion and replication task


Use a POST request to undeploy a streaming ingestion and replication task.

POST request
To undeploy a streaming ingestion and replication task, use the following URL:
<server URI>/sisvc/api/v1/Dataflows('<dataflow ID>')/[Link]
A request body is not required because the URL passes the dataflow ID.

POST request example


To undeploy a streaming ingestion and replication task, you might send a request similar to the following
example:
POST <serverUrl>/sisvc/api/v1/Dataflows('50077311-d4a4-437c-9218-c3596d1f182f')/
[Link]
Content-Type: application/json
Accept:application/json
IDS-SESSION-ID:2l0oeVx22Rujiej7yTokmT

POST response example


If the request is successful, you might receive a response similar to the following example:
{
"@[Link]": "$metadata#[Link]",
"successful": true,
"code": null,
"errorMessage": null
}

Starting a streaming ingestion and replication task


Use a POST request to start a streaming ingestion and replication task.

POST request
To start a streaming ingestion and replication task, use the following URL:
<server URI>/sisvc/api/v1/Dataflows('<dataflow ID>')/[Link]
A request body is not required because the URL passes the dataflow ID.

516 Chapter 6: Streaming Ingestion and Replication REST API


POST request example
To start a streaming ingestion and replication task, you might send a request similar to the following
example:
POST <serverUrl>/sisvc/api/v1/Dataflows('50077311-d4a4-437c-9218-c3596d1f182f')/
[Link]
Content-Type: application/json
Accept:application/json
IDS-SESSION-ID:2l0oeVx22Rujiej7yTokmT

POST response example


If the request is successful, you might receive a response similar to the following example:
{
"@[Link]": "$metadata#[Link]",
"successful": true,
"code": null,
"errorMessage": null
}

Stopping a streaming ingestion and replication task


Use a POST request to stop a streaming ingestion and replication task.

POST request
To stop a streaming ingestion and replication task, use the following URL:
<server URI>/sisvc/api/v1/Dataflows('<dataflowID>')/[Link]
A request body is not required because the URL passes the dataflow ID.

POST request example


To stop a streaming ingestion and replication task, you might send a request similar to the following
example:
POST <serverUrl>/sisvc/api/v1/Dataflows('d7572789-dc4c-4c56-bbeb-3772736d61aa')/
[Link]
Content-Type: application/json
Accept:application/json
IDS-SESSION-ID:2l0oeVx22Rujiej7yTokmT

POST response example


If the request is successful, you might receive a response similar to the following example:
{
"@[Link]": "$metadata#[Link]",
"successful": true,
"code": null,
"errorMessage": null
}

Deploying, undeploying, starting, and stopping streaming ingestion and replication tasks 517
Copying a streaming ingestion and replication task
Use the CopyEntities resource to copy streaming ingestion and replication tasks.

POST request
To copy streaming ingestion and replication tasks, use the following URL:
<server URI>/sisvc/restapi/v1/CopyEntities
You can include the following fields in the request:

Field Type Required Description

targetLocationID String Yes ID of the target location to copy the objects to.

sourceEntities Array Yes Configuration of the source and target connections.

sourceId String Yes ID of the source object.

targetName String Yes Name of the target object.

targetDescription String - Description of the target object.

POST request example


To copy two streaming ingestion and replication tasks, you might send a request similar to the following
example:
POST <serverUrl>/sisvc/restapi/v1/CopyEntities
Content-Type: application/json
Accept:application/json
IDS-SESSION-ID:2l0oeVx22Rujiej7yTokmT
{
"targetLocationID": "2RGmVdwN15PbfnQP5PSoSB",
"sourceEntities": [
{
"sourceId": "5Ff6jeaSh2UfAqiV01ldKD",
"targetName": "Test_Copy_A",
"targetDescription": "Description_1"
},
{
"sourceId": "fZnCSqcWTOQkJOr8VCWZQE",
"targetName": "Test_Copy_B",
"targetDescription": "Description_2"
}
]
}
If the request is unsuccessful, the response includes a reason for the failure.

POST response
When you use a POST request to copy streaming ingestion and replication tasks, it returns a success
response if successful or an error object if an error occurs.

POST response example


If the request is successful, you might receive a response similar to the following example:
{
"Status Message": "Operation succeeded on 2 artifacts.",
"Success": {
"Test_Copy_A": "ideNJw6l54gizxofF53HQH",

518 Chapter 6: Streaming Ingestion and Replication REST API


"Test_Copy_B": "cOQ3gcWKSYikzVqqg6IOok"
}
}

Updating a streaming ingestion and replication task


Use the UpdateEntity resource to update a streaming ingestion and replication task. You can update
streaming ingestion and replication tasks that use the following connectors: Amazon Kinesis, Amazon S3 V2,
Microsoft Azure Event Hub, Microsoft Azure Data Lake Storage Gen2, Flat file, JDBC V2, JMS, Kafka, or
MQTT.

POST request
Use a POST request to update a streaming ingestion and replication task.

To update a streaming ingestion and replication task, use the following URL:
<server URI>/sisvc/restapi/v1/UpdateEntity/Documents('<document ID>')
You can include the following fields in the request:

Field Type Required Description

name String Yes Name of the task.

description String - Description of the task.

runtimeId String Yes ID of the runtime environment.

currentVersion String Yes The latest dataflow object version.

nodes Array Yes Details of the task source and target connections.

Fields of the nodes array


The fields in the array provide the name, type, and connection ID of the connection. It includes the
configuration of the source and target connections in key-value pairs which you can edit. You can include the
following fields in the nodes array:

Field Type Required Description

name String Yes Name of the connection.

type String Yes The connection type, source or target.

connectionId String Yes ID of the connection.

transformationType String - Not applicable.

config Array Yes Configuration of the source and target connections.

Updating a streaming ingestion and replication task 519


Connection configuration for tasks with MQTT as a source
When the source connection of the task source is MQTT, you can include the following fields and key-value
pairs in the config array of the source connection:

Key Type Required Description

ClientID String - Unique identifier of the connection between the MQTT source and the MQTT
broker. The client ID is the file-based persistence store that the MQTT source
uses to store messages while they are processed.
You can enter a string of up to 255 characters.

MaxQueueSize Integer - The maximum number of messages that the processor can store in memory.
You can enter a value between 1 and 2147483647.

Topic String Yes Name of the MQTT topic.

POST request example


To update a streaming ingestion and replication task with an MQTT source and a flat file target, you might
send a request similar to the following example:
POST <serverUrl>/sisvc/restapi/v1/UpdateEntity/Documents('<document ID>')
Content-Type: application/json
Accept: application/json
IDS-SESSION-ID: <SessionId>

{
"name": "mqtt to flatfile",
"description": "mqtt to flatfile",
"runtimeId": "01000025000000000003",
"locationId": "5sJ0JDyJyWLlrosS5qJjsQ",
"currentVersion": "2",
"messageFormat": "binary",
"nodes": [
{
"name": "mqtt to flatfile_source",
"type": "source",
"connectionId": "012MGS0B00000000001O",
"transformationType": "",
"config": [
{
"key": "ClientID",
"value": "test"
},
{
"key": "MaxQueueSize",
"value": 1024
},
{
"key": "Topic",
"value": "test"
}
]
},
{
"name": "mqtt to flatfile_target",
"type": "target",
"connectionId": "012MGS0B00000000002N",
"transformationType": "",
"config": [
{
"key": "interimDirectory",
"value": "/home/agent/test"
},

520 Chapter 6: Streaming Ingestion and Replication REST API


{
"key": "rolloverSize",
"value": 1024
},
{
"key": "rolloverEvents",
"value": 100
},
{
"key": "rolloverTime",
"value": 300000
},
{
"key": "File Name",
"value": "test"
}
]
}
],
"edges": [
{
"from": "mqtt to flatfile_source",
"to": "mqtt to flatfile_target"
}
]
}

Connection configuration for tasks with JMS as a source


When the source connection of the task source is JMS, you can include the following fields and key-value
pairs in the config array of the source connection:

Key Type Required Description

destinationType String Yes Type of destination that the source service sends JMS messages to.
Enter one of the following values:
- QUEUE. The JMS provider delivers messages to a single consumer who
is registered for the queue.
- TOPIC. The JMS provider delivers messages to all active consumers
that subscribe to the topic.

clientId String Yes Unique ID of the JMS connection. You can enter a string of up to 255
characters.

sharedSubscription String Yes Enables multiple consumers to access a single subscription. Applies to
the TOPIC destination type. Enter one of the following values:
- True
- False

durableSubscription String Yes When set to True, the JMS source service enables inactive subscribers to
retain messages and then deliver them when the subscriber reconnects.
Applies to the TOPIC destination type. Enter one of the following values:
- True
- False

subscriptionName String Yes Name of the subscription. Applies to the TOPIC destination type, when
the topic subscription type is shared, durable, or both.

JMS Destination String Yes Name of the queue or topic that the JMS provider delivers messages to.

Updating a streaming ingestion and replication task 521


POST request example
To update a streaming ingestion and replication task with an JMS source and a flat file target, you might
send a request similar to the following example:
POST <serverUrl>/sisvc/restapi/v1/UpdateEntity/Documents('<document ID>')
Content-Type: application/json
Accept: application/json
IDS-SESSION-ID: <SessionId>

{
"name": "crud",
"description": "JMS to FileToFile",
"runtimeId": "01000025000000000003",
"locationId": "5sJ0JDyJyWLlrosS5qJjsQ",
"currentVersion": "2",
"messageFormat": "binary",
"nodes": [
{
"name": "crud_source",
"type": "source",
"connectionId": "012MGS0B000000000003",
"transformationType": "",
"config": [
{
"key": "destinationType",
"value": "QUEUE"
},
{
"key": "clientId",
"value": ""
},
{
"key": "JMS Destination",
"value": "test"
}
]
},
{
"name": "crud_target",
"type": "target",
"connectionId": "012MGS0B00000000000H",
"transformationType": "",
"config": [
{
"key": "interimDirectory",
"value": "/home/agent/test"
},
{
"key": "rolloverSize",
"value": 1024
},
{
"key": "rolloverEvents",
"value": 100
},
{
"key": "rolloverTime",
"value": 300000
},
{
"key": "File Name",
"value": "test"
}
]
}
],
"edges": [
{
"from": "crud_source",
"to": "crud_target"

522 Chapter 6: Streaming Ingestion and Replication REST API


}
]
}

Connection configuration for tasks with Microsoft Azure Data Lake Storage
Gen2 (ADLS Gen2) as a target
When the target connection of the task target is ADLS Gen2, you can include the following fields and key-
value pairs in the config array of the target connection:

Key Type Required Description

writeStrategy String Yes The action to take when a file by the same name exists in the ADLS
Gen2 storage.
Enter one of the following values:
- Append. Add data to the existing file.
- Overwrite. Replaces the existing file with the new file.
- Fail. Fail the request.
- Rollover. Close the current file and create a new file based on the
configured rollover value.

rolloverSize * Integer - Target file size, in KB, at which to trigger rollover. Applies to a
Rollover write strategy.
You can enter a value between 1 and 2147483647.

rolloverEvents * Integer - Number of events or messages to accumulate before a rollover.


Applies to a Rollover write strategy.
You can enter a value between 1 and 2147483647.

rolloverTime * Integer - Length of time, in milliseconds, after which to trigger a rollover.


Applies to a Rollover write strategy.
You can enter a value between 1 and 2147483647.

filesystemNameOverride String - Overrides the default file system name provided in the connection.
This file system name is used write to a file at run time.
You can enter a string of up to 1,280 characters.

directoryOverride String - Overrides the default directory path. The ADLS Gen2 directory path
to write data to. If left blank, the default directory path is used.
You can enter a string of up to 1,280 characters.

compressionFormat String - Compression format to use before the streaming ingestion task
writes data to the target file.
Enter one of the following values:
- None
- GZIP
- BZIP2
- DEFAULT1
Enter this value to use the Zlib format.
- DEFAULT2
Enter this value to use the Deflate format.

Updating a streaming ingestion and replication task 523


Key Type Required Description

File Name/Expression String Yes ADLS Gen2 file name or a regular expression.
You can enter a string of up to 249 characters.

* Enter a value for at least one of the fields.

POST request example


To update a streaming ingestion and replication task with a flat file source and an ADLS Gen2 target, you
might send a request similar to the following example:
POST <serverUrl>/sisvc/restapi/v1/UpdateEntity/Documents('<document ID>')
Content-Type: application/json
Accept: application/json
IDS-SESSION-ID: <SessionId>

{
"name": "flatfile to adls",
"description": "flatfile to adls",
"runtimeId": "01000025000000000003",
"locationId": "5sJ0JDyJyWLlrosS5qJjsQ",
"currentVersion": "2",
"messageFormat": "binary",
"nodes": [
{
"name": "flatfile to adls_source",
"type": "source",
"connectionId": "012MGS0B00000000002N",
"transformationType": "",
"config": [
{
"key": "File",
"value": "logfile"
},
{
"key": "initialPosition",
"value": "Current Time"
},
{
"key": "rolloverPattern",
"value": "test"
},
{
"key": "tailingMode",
"value": "Single file"
}
]
},
{
"name": "flatfile to adls_target",
"type": "target",
"connectionId": "012MGS0B00000000003D",
"transformationType": "",
"config": [
{
"key": "writeStrategy",
"value": "Rollover"
},
{
"key": "filesystemNameOverride",
"value": "test"
},
{
"key": "File Name/Expression",
"value": "test"
},

524 Chapter 6: Streaming Ingestion and Replication REST API


{
"key": "compressionFormat",
"value": "NONE"
},
{
"key": "directoryOverride",
"value": "/test"
},
{
"key": "interimDirectory",
"value": "/home/agent/test"
},
{
"key": "rolloverSize",
"value": 1024
},
{
"key": "rolloverEvents",
"value": 100
},
{
"key": "rolloverTime",
"value": 300000
}
]
}
]
}

Connection configuration for tasks with Amazon S3 as a target


When the target connection of the task target is Amazon S3, you can include the following fields and key-
value pairs in the config array of the target connection:

Key Type Required Description

partitionTime String - The time interval according to which the streaming ingestion task
creates partitions in the Amazon S3 bucket.
Enter one of the following values:
- None
- 5min
- 10min
- 15min
- 20min
- 30min
- 1hr
- 1day

minUploadPartSize Integer - Minimum part size when uploading a large file as a set of multiple
independent parts, in megabytes. Use this property to tune the file
load to Amazon S3.
You can enter a value between 50 and 5120.

multipartUploadThreshold Integer - Multipart threshold when uploading objects in multiple parts in


parallel.
You can enter a value between 50 and 5120.

Object Name/Expression String Yes Amazon S3 target file name or a regular expression for the
Amazon S3 file name pattern.

Updating a streaming ingestion and replication task 525


POST request example
To update a streaming ingestion and replication task with a flat file source and an Amazon S3 as target, you
might send a request similar to the following example:
POST <serverUrl>/sisvc/restapi/v1/UpdateEntity/Documents('<document ID>')
Content-Type: application/json
Accept: application/json
IDS-SESSION-ID: <SessionId>

{
"name": "flatfile to amazon S3",
"description": "flatfile to amazon S3",
"runtimeId": "01000025000000000003",
"locationId": "5sJ0JDyJyWLlrosS5qJjsQ",
"currentVersion": "2",
"messageFormat": "binary",
"nodes": [
{
"name": "flatfile to amazon S3_source",
"type": "source",
"connectionId": "012MGS0B00000000002N",
"transformationType": "",
"config": [
{
"key": "File",
"value": "logfile"
},
{
"key": "initialPosition",
"value": "Current Time"
},
{
"key": "rolloverPattern",
"value": "test"
},
{
"key": "tailingMode",
"value": "Single file"
}
]
},
{
"name": "flatfile to amazon S3_target",
"type": "target",
"connectionId": "012MGS0B0000000000I7",
"transformationType": "",
"config": [
{
"key": "partitionTime",
"value": "None"
},
{
"key": "minUploadPartSize",
"value": 5120
},
{
"key": "multipartUploadThreshold",
"value": 5120
},
{
"key": "Object Name/Expression",
"value": "test"
}
]
}
],
"edges": [
{
"from": "flatfile to amazon S3_source",
"to": "flatfile to amazon S3_target"

526 Chapter 6: Streaming Ingestion and Replication REST API


}
]
}

Connection configuration for tasks with Azure Event Hubs as a target


When the target connection of the task target is Azure Event Hubs, you can include the following fields and
key-value pairs in the config array of the target connection:

Key Type Required Description

sasPolicyName String - The name of the Event Hub Namespace Shared Access Policy.
You can enter a string of up to 255 characters.

sasPolicyPrimaryKey String - The primary key of the Event Hub Namespace Shared Access Policy.
You can enter a string of up to 255 characters.

Event Hub String Yes The name of the Azure Event Hubs.
You can enter a string up to 255 characters. The name can contain lower
case characters, upper case characters, numbers, and the special
characters - and _.

POST request example


To update a streaming ingestion and replication task with a flat file source and an Azure Event Hubs target,
you might send a request similar to the following example:
POST <serverUrl>/sisvc/restapi/v1/UpdateEntity/Documents('<document ID>')
Content-Type: application/json
Accept: application/json
IDS-SESSION-ID: <SessionId>

{
"name": "flatfile to azure event hub",
"description": "flatfile to azure event hub",
"runtimeId": "01000025000000000003",
"locationId": "5sJ0JDyJyWLlrosS5qJjsQ",
"currentVersion": "2",
"messageFormat": "binary",
"nodes": [
{
"name": "flatfile to azure event hub_source",
"type": "source",
"connectionId": "012MGS0B00000000002N",
"transformationType": "",
"config": [
{
"key": "File",
"value": "logfile"
},
{
"key": "initialPosition",
"value": "Current Time"
},
{
"key": "rolloverPattern",
"value": "test"
},
{
"key": "tailingMode",
"value": "Single file"
}
]

Updating a streaming ingestion and replication task 527


},
{
"name": "flatfile to azure event hub_target",
"type": "target",
"connectionId": "012MGS0B00000000001S",
"transformationType": "",
"config": [
{
"key": "sasPolicyName",
"value": "test"
},
{
"key": "sasPolicyPrimaryKey",
"value": "test"
},
{
"key": "Event Hub",
"value": "test"
}
]
}
],
"edges": [
{
"from": "flatfile to azure event hub_source",
"to": "flatfile to azure event hub_target"
}
]
}

Connection configuration for tasks with JDBC V2 as a target


When the target connection of the task target is JDBC V2, you can include the following fields and key-value
pairs in the config array of the target connection:

Key Type Required Description

Table Name String Yes Name of the table to insert data to in JSON format.
Enter a string of up to 988 characters.

POST request example


To update a streaming ingestion and replication task with a flat file source and a JDBC V2 target, you might
send a request similar to the following example:
POST <serverUrl>/sisvc/restapi/v1/UpdateEntity/Documents('<document ID>')
Content-Type: application/json
Accept: application/json
IDS-SESSION-ID: <SessionId>

{
"name": "FileFile to jdbc",
"description": "FileToFile to jdbc_target",
"runtimeId": "01000025000000000003",
"locationId": "5sJ0JDyJyWLlrosS5qJjsQ",
"currentVersion": "2",
"messageFormat": "binary",
"nodes": [
{
"name": "flatfile to jdbc_source",
"type": "source",
"connectionId": "012MGS0B00000000002N",
"transformationType": "",
"config": [
{

528 Chapter 6: Streaming Ingestion and Replication REST API


"key": "initialPosition",
"value": "Current Time"
},
{
"key": "tailingMode",
"value": "Single file"
},
{
"key": "rolloverPattern",
"value": "test"
},
{
"key": "File",
"value": "logfile"
}
]
},
{
"name": "flatfile to jdbc_target",
"type": "target",
"connectionId": "012MGS0B0000000000KF",
"transformationType": "",
"config": [
{
"key": "Table Name",
"value": "table"
}
]
}
],
"edges": [
{
"from": "flatfile to jdbc_source",
"to": "flatfile to jdbc_target"
}
]
}

Connection configuration for tasks with Amazon Kinesis Streams as a source


and as a target
When the source and target connection of the task is Amazon Kinesis Streams, you can include the following
fields and key-value pairs in the config array of the source and target connection:

Key Type Required Description

appendGUID Boolean Specifies whether or not to add a GUID as a suffix to the Amazon
DynamoDB table name.
Enter one of the following values:
- true
- false

dynamoDB String Amazon DynamoDB table name where to store the checkpoint details of
the Kinesis source data.
You can enter a string of up to 128 characters.

Updating a streaming ingestion and replication task 529


Key Type Required Description

Stream String Yes Name of the Kinesis Stream to read data from.
Enter a string of up to 128 characters.
Appears in the source node.

Stream Name/ String Yes Kinesis Stream name or a regular expression to write data to.
Expression Enter a string of up to 128 characters.
Appears in the target node.

POST request example


To update a streaming ingestion and replication task with an Amazon Kinesis Streams source and target, you
might send a request similar to the following example:
POST <serverUrl>/sisvc/restapi/v1/UpdateEntity/Documents('<document ID>')
Content-Type: application/json
Accept: application/json
IDS-SESSION-ID: <SessionId>

{
"name": "kinesis to kinesis",
"description": "kinesis to kinesis",
"runtimeId": "01000025000000000003",
"locationId": "5sJ0JDyJyWLlrosS5qJjsQ",
"currentVersion": "2",
"messageFormat": "binary",
"nodes": [
{
"name": "kinesis to kinesis_source",
"type": "source",
"connectionId": "012MGS0B00000000000F",
"transformationType": "",
"config": [
{
"key": "appendGUID",
"value": true
},
{
"key": "dynamoDB",
"value": "table"
},
{
"key": "Stream",
"value": "test"
}
]
},
{
"name": "kinesis to kinesis_target",
"type": "target",
"connectionId": "012MGS0B00000000000F",
"transformationType": "",
"config": [
{
"key": "Stream Name/Expression",
"value": "trgt"
}
]
}
],
"edges": [
{
"from": "kinesis to kinesis_source",
"to": "kinesis to kinesis_target"
}

530 Chapter 6: Streaming Ingestion and Replication REST API


]
}

Connection configuration for tasks with flat file as a source and as a target
When the source and target connection of the task is flat file, you can include the following fields and key-
value pairs in the config array of the source and target connection:

Key Type Required Description

File String Yes Absolute path and name of the source file. Enter the base directory for
multiple files mode.

initialPosition String Yes Starting position to read data from the file to tail. Enter one of the following
values:
- Beginning of File. Read from the beginning of the file. Don't ingest any
data that has already been rolled over.
- Current Time. Read from the most recently updated part of the file. Don't
ingest data that was rolled over or data in the file that was written.

rolloverPattern String - File name pattern for the file that rolls over.
If the file to tail rolls over, the Secure Agent uses the file name pattern to
identify files that have rolled over. If the Secure Agent stops during a file
rollover, when it restarts, it picks up the file where it was left off.
You can use asterisk (*) and question mark (?) as wildcard characters to
indicate that the files are rolled over in the same directory. For example,$
{filename}.log.*. Here, asterisk (*) represents the successive version
numbers that would be appended to the file name.

tailingMode String Yes Tail a file or multiple files based on the logging pattern. Enter one of the
following values:
- Single file. Tail one file.
- Multiple files. Tail all the files indicated in the base directory. You can
enter a regular expression to indicate the files to tail.

File Name String Yes The name of the target file.

interimDirectory String Yes Path to the staging directory on the Secure Agent.

rolloverSize Integer Yes The file size, in KB, at which the task moves the file from the staging
directory to the target.
You can enter a value between 1 and 2147483647.

rolloverEvents Integer Yes Number of events or messages to accumulate before a file rollover.
You can enter a value between 1 and 2147483647.

rolloverTime Integer - Length of time, in milliseconds, after which the target file rolls over.
You can enter a value between 1 and 2147483647.

edges Array - Sequence of dataflow execution.

Updating a streaming ingestion and replication task 531


POST request example
To update a streaming ingestion and replication task with a flat file source and target, you might send a
request similar to the following example:
POST <serverUrl>/sisvc/restapi/v1/UpdateEntity/Documents('<document ID>')
Content-Type: application/json
Accept: application/json
IDS-SESSION-ID: <SessionId>

{
"name": "FileToFile",
"description": "FileToFile_V2",
"runtimeId": "01000025000000000003",
"locationId": "5sJ0JDyJyWLlrosS5qJjsQ",
"currentVersion": "2",
"messageFormat": "binary",
"nodes": [
{
"name": "FileToFile_source",
"type": "source",
"connectionId": "0100000B000000000002",
"transformationType": "",
"config": [
{
"key": "File",
"value": "[Link]"
},
{
"key": "initialPosition",
"value": "Current Time"
},
{
"key": "rolloverPattern",
"value": ""
},
{
"key": "tailingMode",
"value": "Single file"
}
]
},
{
"name": "FileToFile_target",
"type": "target",
"connectionId": "0100000B000000000002",
"transformationType": "",
"config": [
{
"key": "File Name",
"value": "[Link]"
},
{
"key": "interimDirectory",
"value": "/home/agent/infa/test_file_target"
},
{
"key": "rolloverSize",
"value": 100
},
{
"key": "rolloverEvents",
"value": 100
},
{
"key": "rolloverTime",
"value": 100
}
]
}
],

532 Chapter 6: Streaming Ingestion and Replication REST API


"edges": [
{
"from": "FileToFile_source",
"to": "FileToFile_target"
}
],
"runtimeOptions": {
"maxLogSize": {
"value": 10,
"unit": "MB"
},
"logLevel": "INFO"
}
}

Connection configuration for tasks with Kafka as a source and as a target


When the source and target connection of the task is Kafka, you can include the following fields and key-
value pairs in the config array of the source and target connection:

Key Type Required Description

Topic String Yes Kafka source topic name or a Java supported regular expression for
the Kafka source topic name pattern to read the events from.
Enter a string of up to 249 characters.

consumerProperties String - Provide a comma-separated list of optional consumer configuration


properties. Specify the values as key-value pairs. For example,
key1=value1, key2=value2 .
You can enter a string of up to 4000 characters.

producerProperties String - The configuration properties for the producer.


Provide a comma-separated list and specify the values as key-value
pairs.
You can enter a string of up to 4000 characters.

mdFetchTimeout Integer - The time after which the metadata is not fetched.
Enter a value between 1 and 2147483647.

batchSize Integer - The batch size of the events after which a streaming ingestion task
writes data to the target.
Enter a value between 1 and 2147483647.

Topic Name/ String Yes Kafka topic name or a Java supported regular expression for the
Expression Kafka topic name pattern.
You can enter a string of up to 249 characters.

POST request example


To update a streaming ingestion and replication task with a Kafka source and target, you might send a
request similar to the following example:
POST <serverUrl>/sisvc/restapi/v1/UpdateEntity/Documents('<document ID>')
Content-Type: application/json
Accept: application/json
IDS-SESSION-ID: <SessionId>

{
"name": "kafka to kafka",
"description": "kafka to kafka",

Updating a streaming ingestion and replication task 533


"runtimeId": "01000025000000000003",
"locationId": "5sJ0JDyJyWLlrosS5qJjsQ",
"currentVersion": "2",
"messageFormat": "binary",
"nodes": [
{
"name": "kafka to kafka_source",
"type": "source",
"connectionId": "012MGS0B000000000002",
"transformationType": "",
"config": [
{
"key": "consumerProperties",
"value": "key=value"
},
{
"key": "Topic",
"value": "test"
}
]
},
{
"name": "kafka to kafka_target",
"type": "target",
"connectionId": "012MGS0B000000000002",
"transformationType": "",
"config": [
{
"key": "producerProperties",
"value": "key=value"
},
{
"key": "mdFetchTimeout",
"value": 5000
},
{
"key": "batchSize",
"value": 1048576
},
{
"key": "Topic Name/Expression",
"value": "test"
}
]
}
],
"edges": [
{
"from": "kafka to kafka_source",
"to": "kafka to kafka_target"
}
]
}

534 Chapter 6: Streaming Ingestion and Replication REST API


POST response
When the REST API successfully performs an action, it returns a 200 or 201 success response. When the
REST API encounters an error, it returns an appropriate error code.

If the request is successful, the response returns the following fields:

Field Type Description

name String Name of the task.

description String Description of the task, if available.

runtimeId String ID of the runtime environment.

currentVersion String The latest dataflow object version.

nodes Array Details of the task source and target connections.

Fields of the nodes array


The response includes the following fields in the nodes array:

Field Type Description

name String Name of the connection.

type String The connection type.

connectionId String ID of the connection.

transformationType String The type of transformation.

config String Configuration of the source and target connections in key-value pairs. The keys in the
array depend on the type of source and target connections.

If the request is unsuccessful, the response includes a reason for the failure.

Configuration information in the config array MQTT as a source


If the request is successful, the response returns the following fields:

Key Type Description

ClientID String Unique identifier that identifies the connection between the MQTT source and the MQTT
broker. The client ID is the file-based persistence store that the MQTT source uses to
store messages when they are being processed.

MaxQueueSize Integer The maximum number of messages that the processor can store in memory.

Topic String Name of the MQTT topic.

If the request is unsuccessful, the response includes a reason for the failure.

Updating a streaming ingestion and replication task 535


POST response example
If the request is successful, you might receive a response similar to the following example in a Success node:
{
"Success": {
"name": "mqtt to flatfile",
"description": "mqtt to flatfile",
"runtimeId": "01000025000000000003",
"locationId": "5sJ0JDyJyWLlrosS5qJjsQ",
"currentVersion": "2",
"messageFormat": "binary",
"nodes": [
{
"name": "mqtt to flatfile_source",
"type": "source",
"connectionId": "012MGS0B00000000001O",
"transformationType": "",
"config": [
{
"key": "ClientID",
"value": "test"
},
{
"key": "MaxQueueSize",
"value": 1024
},
{
"key": "Topic",
"value": "test"
}
]
},
{
"name": "mqtt to flatfile_target",
"type": "target",
"connectionId": "012MGS0B00000000002N",
"transformationType": "",
"config": [
{
"key": "interimDirectory",
"value": "/home/agent/test"
},
{
"key": "rolloverSize",
"value": 1024
},
{
"key": "rolloverEvents",
"value": 100
},
{
"key": "rolloverTime",
"value": 300000
},
{
"key": "File Name",
"value": "test"
}
]
}
],
"edges": [
{
"from": "mqtt to flatfile_source",
"to": "mqtt to flatfile_target"
}
]
}
}

536 Chapter 6: Streaming Ingestion and Replication REST API


Configuration information in the config array for JMS as a source
The response returns only the fields that you entered in the request.

If the request is successful, the response returns the following fields:

Key Type Description

destinationType String Type of destination that the source service sends JMS messages to.

clientId String Unique ID of the JMS connection.

sharedSubscription String Enables multiple consumers to access a single subscription. Applies to the TOPIC
destination type.

durableSubscription String The JMS source service enables inactive subscribers to retain messages and then
deliver them when the subscriber reconnects. Applies to the TOPIC destination type.

subscriptionName String Name of the subscription. Applies to the TOPIC destination type, when the topic
subscription type is shared, durable, or both.

JMS Destination String Name of the queue or topic that the JMS provider delivers messages to.

If the request is unsuccessful, the response includes a reason for the failure.

POST response example


If the request is successful, you might receive a response similar to the following example in a Success node:
{
"Success": {
"name": "crud",
"description": "JMS to FileToFile",
"runtimeId": "01000025000000000003",
"locationId": "5sJ0JDyJyWLlrosS5qJjsQ",
"currentVersion": "2",
"messageFormat": "binary",
"nodes": [
{
"name": "crud_source",
"type": "source",
"connectionId": "012MGS0B000000000003",
"transformationType": "",
"config": [
{
"key": "destinationType",
"value": "QUEUE"
},
{
"key": "clientId",
"value": ""
},
{
"key": "JMS Destination",
"value": "test"
}
]
},
{
"name": "crud_target",
"type": "target",
"connectionId": "012MGS0B00000000000H",
"transformationType": "",
"config": [
{
"key": "interimDirectory",

Updating a streaming ingestion and replication task 537


"value": "/home/agent/test"
},
{
"key": "rolloverSize",
"value": 1024
},
{
"key": "rolloverEvents",
"value": 100
},
{
"key": "rolloverTime",
"value": 300000
},
{
"key": "File Name",
"value": "test"
}
]
}
],
"edges": [
{
"from": "crud_source",
"to": "crud_target"
}
]
}
}

Configuration information in the config array for ADLS Gen2 as a target


The response returns only the fields that you entered in the request.

If the request is successful, the response returns the following fields:

Key Type Description

writeStrategy String The action to take when a file exists in the ADLS Gen2 storage.

rolloverSize * Integer Target file size, in KB, at which to trigger rollover. Applies to a Rollover write
strategy.

rolloverEvents * Integer Number of events or messages to accumulate before a rollover. Applies to a


Rollover write strategy.

rolloverTime * Integer Length of time, in milliseconds, after which to trigger a rollover. Applies to a
Rollover write strategy.

filesystemNameOverride String Overrides the default file system name provided in the connection. This file
system name is used write to a file at run time.

directoryOverride String Overrides the default directory path. The ADLS Gen2 directory path to write data
to. If left blank, the default directory path is used.

compressionFormat String Compression format to use before the streaming ingestion task writes data to
the target file.

538 Chapter 6: Streaming Ingestion and Replication REST API


Key Type Description

File Name/Expression String ADLS Gen2 file name or a regular expression.

* Enter a value for at least one of the fields.

If the request is unsuccessful, the response includes a reason for the failure.

POST response example


If the request is successful, you might receive a response similar to the following example in a Success node:
{
"Success": {
"name": "flatfile to adls",
"description": "flatfile to adls",
"runtimeId": "01000025000000000003",
"locationId": "5sJ0JDyJyWLlrosS5qJjsQ",
"currentVersion": "2",
"messageFormat": "binary",
"nodes": [
{
"name": "flatfile to adls_source",
"type": "source",
"connectionId": "012MGS0B00000000002N",
"transformationType": "",
"config": [
{
"key": "File",
"value": "logfile"
},
{
"key": "initialPosition",
"value": "Current Time"
},
{
"key": "rolloverPattern",
"value": "test"
},
{
"key": "tailingMode",
"value": "Single file"
}
]
},
{
"name": "flatfile to adls_target",
"type": "target",
"connectionId": "012MGS0B00000000003D",
"transformationType": "",
"config": [
{
"key": "writeStrategy",
"value": "Rollover"
},
{
"key": "filesystemNameOverride",
"value": "test"
},
{
"key": "File Name/Expression",
"value": "test"
},
{
"key": "compressionFormat",
"value": "NONE"
},

Updating a streaming ingestion and replication task 539


{
"key": "directoryOverride",
"value": "/test"
},
{
"key": "interimDirectory",
"value": "/home/agent/test"
},
{
"key": "rolloverSize",
"value": 1024
},
{
"key": "rolloverEvents",
"value": 100
},
{
"key": "rolloverTime",
"value": 300000
}
]
}
]
}
}

Configuration information in the config array for Amazon S3 as a target


The response returns only the fields that you entered in the request.

If the request is successful, the response returns the following fields:

Key Type Description

partitionTime String The time interval according to which the streaming ingestion task creates
partitions in the Amazon S3 bucket.

minUploadPartSize Integer Minimum part size when uploading a large file as a set of multiple independent
parts, in megabytes. Use this property to tune the file load to Amazon S3.

multipartUploadThreshold Integer Multipart threshold when uploading objects in multiple parts in parallel.

Object Name/Expression String Amazon S3 target file name or a regular expression for the Amazon S3 file
name pattern.

If the request is unsuccessful, the response includes a reason for the failure.

POST response example


If the request is successful, you might receive a response similar to the following example in the Success
node:
{
"Success": {
"name": "flatfile to amazon S3",
"description": "flatfile to amazon S3",
"runtimeId": "01000025000000000003",
"locationId": "5sJ0JDyJyWLlrosS5qJjsQ",
"currentVersion": "2",
"messageFormat": "binary",
"nodes": [
{
"name": "flatfile to amazon S3_source",
"type": "source",
"connectionId": "012MGS0B00000000002N",

540 Chapter 6: Streaming Ingestion and Replication REST API


"transformationType": "",
"config": [
{
"key": "File",
"value": "logfile"
},
{
"key": "initialPosition",
"value": "Current Time"
},
{
"key": "rolloverPattern",
"value": "test"
},
{
"key": "tailingMode",
"value": "Single file"
}
]
},
{
"name": "flatfile to amazon S3_target",
"type": "target",
"connectionId": "012MGS0B0000000000I7",
"transformationType": "",
"config": [
{
"key": "partitionTime",
"value": "None"
},
{
"key": "minUploadPartSize",
"value": 5120
},
{
"key": "multipartUploadThreshold",
"value": 5120
},
{
"key": "Object Name/Expression",
"value": "test"
}
]
}
],
"edges": [
{
"from": "flatfile to amazon S3_source",
"to": "flatfile to amazon S3_target"
}
]
}
}

Configuration information in the config array for Azure Event Hubs as a target
The response returns only the fields that you entered in the request.

Updating a streaming ingestion and replication task 541


If the request is successful, the response returns the following fields:

Key Type Description

sasPolicyName String The name of the Event Hub Namespace Shared Access Policy.

sasPolicyPrimaryKey String The primary key of the Event Hub Namespace Shared Access Policy.

Event Hub String The name of the Azure Event Hubs.

If the request is unsuccessful, the response includes a reason for the failure.

POST response example


If the request is successful, you might receive a response similar to the following example in a Success node:
{
"Success": {
"name": "flatfile to azure event hub",
"description": "flatfile to azure event hub",
"runtimeId": "01000025000000000003",
"locationId": "5sJ0JDyJyWLlrosS5qJjsQ",
"currentVersion": "2",
"messageFormat": "binary",
"nodes": [
{
"name": "flatfile to azure event hub_source",
"type": "source",
"connectionId": "012MGS0B00000000002N",
"transformationType": "",
"config": [
{
"key": "File",
"value": "logfile"
},
{
"key": "initialPosition",
"value": "Current Time"
},
{
"key": "rolloverPattern",
"value": "test"
},
{
"key": "tailingMode",
"value": "Single file"
}
]
},
{
"name": "flatfile to azure event hub_target",
"type": "target",
"connectionId": "012MGS0B00000000001S",
"transformationType": "",
"config": [
{
"key": "sasPolicyName",
"value": "test"
},
{
"key": "sasPolicyPrimaryKey",
"value": "test"
},
{
"key": "Event Hub",
"value": "test"
}
]

542 Chapter 6: Streaming Ingestion and Replication REST API


}
],
"edges": [
{
"from": "flatfile to azure event hub_source",
"to": "flatfile to azure event hub_target"
}
]
}
}

Configuration information in the config array for JDBC as a target


The response returns only the fields that you entered in the request.

If the request is successful, the response returns the following field:

Key Type Description

Table Name String Name of the table to insert data to in JSON format.

If the request is unsuccessful, the response includes a reason for the failure.

POST response example


If the request is successful, you might receive a response similar to the following example in a Success node:
{
"Success": {
"name": "FileFile to jdbc",
"description": "FileToFile to jdbc_target",
"runtimeId": "01000025000000000003",
"locationId": "5sJ0JDyJyWLlrosS5qJjsQ",
"currentVersion": "2",
"messageFormat": "binary",
"nodes": [
{
"name": "flatfile to jdbc_source",
"type": "source",
"connectionId": "012MGS0B00000000002N",
"transformationType": "",
"config": [
{
"key": "initialPosition",
"value": "Current Time"
},
{
"key": "tailingMode",
"value": "Single file"
},
{
"key": "rolloverPattern",
"value": "test"
},
{
"key": "File",
"value": "logfile"
}
]
},
{
"name": "flatfile to jdbc_target",
"type": "target",
"connectionId": "012MGS0B0000000000KF",
"transformationType": "",
"config": [
{

Updating a streaming ingestion and replication task 543


"key": "Table Name",
"value": "table"
}
]
}
],
"edges": [
{
"from": "flatfile to jdbc_source",
"to": "flatfile to jdbc_target"
}
]
}
}

Configuration information in the config array for Amazon Kinesis Streams as a


source and as a target
The response returns only the fields that you entered in the request.

If the request is successful, the response returns the following fields:

Key Type Description

appendGUID Boolean Specifies whether or not to add a GUID as a suffix to the Amazon DynamoDB table
name.

dynamoDB String Amazon DynamoDB table name where to store the checkpoint details of the Kinesis
source data.

Stream String Name of the Kinesis Stream from where to read data.
Applies when you use Amazon Kinesis Streams as a source.

Stream Name/ String Kinesis stream name or a regular expression for the Kinesis stream name pattern.
Expression Applies when you use Amazon Kinesis Streams as a target.

If the request is unsuccessful, the response includes a reason for the failure.

POST response example


If the request is successful, you might receive a response similar to the following example in a Success node:
{
"Success": {
"name": "kinesis to kinesis",
"description": "kinesis to kinesis",
"runtimeId": "01000025000000000003",
"locationId": "5sJ0JDyJyWLlrosS5qJjsQ",
"currentVersion": "2",
"messageFormat": "binary",
"nodes": [
{
"name": "kinesis to kinesis_source",
"type": "source",
"connectionId": "012MGS0B00000000000F",
"transformationType": "",
"config": [
{
"key": "appendGUID",
"value": true
},
{
"key": "dynamoDB",
"value": "table"

544 Chapter 6: Streaming Ingestion and Replication REST API


},
{
"key": "Stream",
"value": "test"
}
]
},
{
"name": "kinesis to kinesis_target",
"type": "target",
"connectionId": "012MGS0B00000000000F",
"transformationType": "",
"config": [
{
"key": "Stream Name/Expression",
"value": "trgt"
}
]
}
],
"edges": [
{
"from": "kinesis to kinesis_source",
"to": "kinesis to kinesis_target"
}
]
}
}

Configuration information in the config array for flat file as a source and as a
target
The response returns only the fields that you entered in the request.

If the request is successful, the response returns the following fields:

Key Type Required Description

File String Yes Absolute path and name of the source file you want to read.

initialPosition String Yes Starting position to read data from the file to tail.

rolloverPattern String - File name pattern for the file that rolls over.

tailingMode String Yes Tail a file or multiple files based on the logging pattern.

File Name String Yes The name of the target file.

interimDirectory String Yes Path to the staging directory on the Secure Agent.

rolloverSize Integer Yes The file size, in KB, at which the task moves the file from the staging
directory to the target.

rolloverEvents Integer Yes Number of events or messages to accumulate before a file rollover.

rolloverTime Integer - Length of time, in milliseconds, after which the target file rolls over.

If the request is unsuccessful, the response includes a reason for the failure.

Updating a streaming ingestion and replication task 545


POST response example
If the request is successful, you might receive a response similar to the following example:
{
"Success": {
"name": "FileToFile",
"description": "FileToFile_V2",
"runtimeId": "01000025000000000003",
"locationId": "5sJ0JDyJyWLlrosS5qJjsQ",
"currentVersion": "2",
"messageFormat": "binary",
"nodes": [
{
"name": "FileToFile_source",
"type": "source",
"connectionId": "0100000B000000000002",
"transformationType": "",
"config": [
{
"key": "File",
"value": "[Link]"
},
{
"key": "initialPosition",
"value": "Current Time"
},
{
"key": "rolloverPattern",
"value": ""
},
{
"key": "tailingMode",
"value": "Single file"
}
]
},
{
"name": "FileToFile_target",
"type": "target",
"connectionId": "0100000B000000000002",
"transformationType": "",
"config": [
{
"key": "File Name",
"value": "[Link]"
},
{
"key": "interimDirectory",
"value": "/home/agent/infa/test_file_target"
},
{
"key": "rolloverSize",
"value": 100
},
{
"key": "rolloverEvents",
"value": 100
},
{
"key": "rolloverTime",
"value": 100
}
]
}
],
"edges": [
{
"from": "FileToFile_source",
"to": "FileToFile_target"
}

546 Chapter 6: Streaming Ingestion and Replication REST API


],
"runtimeOptions": {
"maxLogSize": {
"value": 10,
"unit": "MB"
},
"logLevel": "INFO"
}
}
}

Configuration information in the config array for Kafka as a source and as a


target
The response returns only the fields that you entered in the request.

If the request is successful, the response returns the following fields:

Key Type Description

Topic String Kafka source topic name or a Java supported regular expression for the Kafka
source topic name pattern to read the events from.

consumerProperties String A comma-separated list of optional consumer configuration properties.

producerProperties String The configuration properties for the producer.

mdFetchTimeout Integer The time after which the metadata is not fetched.

batchSize Integer The batch size of the events after which a streaming ingestion task writes data
to the target.

Topic Name/Expression String Kafka topic name or a Java supported regular expression for the Kafka topic
name pattern.

If the request is unsuccessful, the response includes a reason for the failure.

POST response example


If the request is successful, you might receive a response similar to the following example in a Success node:
{
"Success": {
"name": "kafka to kafka",
"description": "kafka to kafka",
"runtimeId": "01000025000000000003",
"locationId": "5sJ0JDyJyWLlrosS5qJjsQ",
"currentVersion": "2",
"messageFormat": "binary",
"nodes": [
{
"name": "kafka to kafka_source",
"type": "source",
"connectionId": "012MGS0B000000000002",
"transformationType": "",
"config": [
{
"key": "consumerProperties",
"value": "key=value"
},
{
"key": "Topic",
"value": "test"
}

Updating a streaming ingestion and replication task 547


]
},
{
"name": "kafka to kafka_target",
"type": "target",
"connectionId": "012MGS0B000000000002",
"transformationType": "",
"config": [
{
"key": "producerProperties",
"value": "key=value"
},
{
"key": "mdFetchTimeout",
"value": 5000
},
{
"key": "batchSize",
"value": 1048576
},
{
"key": "Topic Name/Expression",
"value": "test"
}
]
}
],
"edges": [
{
"from": "kafka to kafka_source",
"to": "kafka to kafka_target"
}
]
}
}

Getting details about a streaming ingestion and


replication job
Use the jobs resource to get the details of a streaming ingestion and replication job.

GET request
To request the details of a streaming ingestion and replication job, use the following URL:
<server URI>/sisvc/monitor/v1/jobs/<dataflow ID>/<run ID of the job>

GET request example


To request the details of a streaming ingestion and replication job, you might send a request similar to the
following example:
GET [Link]
1948938e-3923-4602-aba8-f122e3d66faf/42559
Content-Type: application/json
Accept:application/json
IDS-SESSION-ID:2l0oeVx22Rujiej7yTokmT

GET response
Returns the jobs object if successful or an error object if an error occurs.

548 Chapter 6: Streaming Ingestion and Replication REST API


If successful, the response includes the following information about a streaming ingestion and replication
job:

Parameter Type Description

assetId String ID of the streaming ingestion and replication job.

assetName String Name of the streaming ingestion and replication job.

duration Integer The time it took to deploy the job.

endTime Integer End time of deploying the job, in UTC time.

startTime Integer Start time of deploying the job, in UTC time.

extraData String Additional information including the task ID, deployed version, and the Secure Agent group ID.

runId Integer Run ID of the streaming ingestion and replication job. The ID changes for every deployment.

orgId String ID of the organization the logged in user belongs to.

runtimeEnv String ID of the Secure Agent that deployed the streaming ingestion and replication job.

startedBy String Name of the user who created the streaming ingestion and replication task.

status String The status of the streaming ingestion and replication job. A job can be in one of the following
status:
- Deploying. The job is being deployed.
- Up and Running. The job is running.
- Running with Warning. The job is running with warnings.
- Running with Error. The job is running with error.
- Undeployed. The job is undeployed.
- Stopped. The job was intentionally stopped.

GET response example


If the request to get the details of a streaming ingestion and replication job is successful, you might receive a
response similar to the following example:
{
"assetId": "1948938e-3923-4602-aba8-f122e3d66faf",
"assetName": "testmonitor",
"assetType": "SI_DATAFLOW",
"correlationId": null,
"duration": 1543,
"endTime": "2022-02-14T04:04:13.000+0000",
"extraData": "{\"id\":\"0RwiUUb9bVwjL67dWOKjoI\",\"version\":1,\"agentGroupId
\":null}",
"location": "Default",
"runId": 42559,
"orgId": "2lFy0UUNnlnbjhaoT3TSqw",
"runtimeEnv": "011ZFB2500000000000N",
"startedBy": "siqa_new",
"status": "Undeployed",
"startTime": "2022-02-14T03:38:30.000+0000",
"deployedVersion": 1
}

Getting details about a streaming ingestion and replication job 549


Getting a list of streaming ingestion and replication
jobs
Use the MIJobs resource to get a list of the available streaming ingestion and replication jobs.

GET request
To request a list of the available streaming ingestion and replication jobs, use the following URL:
<server URI>/mijobmonitor/api/v1/MIJobs
You can include the following query parameters in the URI:

Parameter Type Required Description

$count Boolean No Displays the number of ingestion and replication jobs in the database.

$filter String No Filters the job based on the input. You can filter using one of the following
fields:
- assetName
- assetType
- startedBy
- status
You can filter jobs using single or multiple fields.

$orderby String No Sorts the order of the jobs. You can sort the jobs using the following fields:
- assetName
- assetType
- status
- runtimeEnv
- startTime
You can sort jobs using single or multiple fields.

$skip Integer No Skips the number of streaming ingestion and replication jobs that you specify.
For example, you might want to skip the first five streaming ingestion and
replication jobs.
Consider the $filter and $orderby parameter values, if specified.

$top Integer No Displays the number of top streaming ingestion and replication jobs that you
specify. For example, you might want to view the top ten streaming ingestion
and replication jobs.
Consider the $filter and $orderby parameter values, if specified.

GET request example


To get a list of the available streaming ingestion and replication jobs, you might send a request similar to the
following example:
POST [Link]
$filter=(startedBy eq 'siqa_new')&$orderby=deployTime desc&$skip=0&$top=25
Content-Type: application/json
Accept:application/json
IDS-SESSION-ID:2l0oeVx22Rujiej7yTokmT

GET response
Returns the MIjobs object if successful or an error object if an error occurs.

550 Chapter 6: Streaming Ingestion and Replication REST API


If successful, the response includes the following information about the streaming ingestion and replication
job:

Parameter Type Description

assetName String Name of the streaming ingestion and replication job.

runId Integer Run ID of the streaming ingestion and replication job. The ID changes for every
deployment.

orgId String ID of the organization the logged in user belongs to.

runtimeEnv String ID of the Secure Agent that deployed the streaming ingestion and replication job.

startTime Integer Date and start time of deploying the job, in UTC time.

endTime Integer Date and end time of deploying the job, in UTC time.

deployTime Integer Date and time of deploying the job, in UTC time.

undeployTime Integer Date and time of undeploying the job, in UTC time.

startedBy Integer Name of the user who created the streaming ingestion and replication task.

status String The status of the streaming ingestion and replication job. A job can be in one of the
following status:
- Deploying. The job is being deployed.
- Up and Running. The job is running.
- Running with Warning. The job is running with warnings.
- Running with Error. The job is running with error.
- Undeployed. The job is undeployed.
- Stopped. The job was intentionally stopped.

extraData String Additional information including the task ID, the location of the streaming ingestion job,
and the Secure Agent ID.

GET response example


If the request to get a list of available streaming ingestion and replication jobs is successful, you might
receive a response similar to the following example:
{
"@[Link]": "$metadata#Collection([Link])",
"@[Link]": 421,
"value": [
{
"assetId": "7ce6bbc7-f0e2-4278-bd6d-d1187f4a1420",
"assetName": "SIdeployJms",
"assetType": "SI_DATAFLOW",
"runId": 33015,
"duration": 300000,
"orgId": "1Pm6cSfPcAqfgeV57Fn3u4",
"runtimeEnv": "011U5M08000000000003",
"startTime": "2021-04-29T13:09:48.000+0000",
"endTime": "2021-04-29T13:14:48.000+0000",
"deployTime": "2021-04-29T13:09:48.000+0000",
"undeployTime": "2021-04-29T13:14:48.000+0000",
"startedBy": "siqa_new",
"status": "Undeployed",
"outOfSync": true,
"extraData": "{\"taskId\":\"7Z4ZZjXc9QViT4t2okiHuz\",\"runtimeEnv
\":\"011U5M25000000000002\",\"location\":\"RestAutomation\"}",

Getting a list of streaming ingestion and replication jobs 551


"deployedVersion": 1,
"replace": null,
"lastUpdateTime": 0
},
{
"assetId": "a03b9aa1-4a4a-47ee-808d-ddc0ee7b3a4a",
"assetName": "kafka to kafka test",
"assetType": "SI_DATAFLOW",
"runId": 33527,
"duration": 204988000,
"orgId": "1Pm6cSfPcAqfgeV57Fn3u4",
"runtimeEnv": "011U5M08000000000002",
"startTime": "2021-05-04T05:41:39.000+0000",
"endTime": "2021-05-06T14:38:07.000+0000",
"deployTime": "2021-05-04T05:41:39.000+0000",
"undeployTime": "2021-05-06T14:38:07.000+0000",
"startedBy": "siqa_new",
"status": "Undeployed",
"outOfSync": true,
"extraData": "{\"taskId\":\"8V21nib7Sqgiw3QoDRi5uK\",\"runtimeEnv
\":\"011U5M25000000000002\",\"location\":\"Default\"}",
"deployedVersion": 1,
"replace": null,
"lastUpdateTime": 0
}
]
}

Job status
Use the status resource to get the status of a streaming ingestion and replication job.

GET request
To request the status of a streaming ingestion and replication job, use the following URL:
<server URI>/sisvc/monitor/v1/status/dataflows/<dataflow ID>

GET request example


To get the status of a streaming ingestion and replication job, you might send a request similar to the
following example:
GET [Link]
1948938e-3923-4602-aba8-f122e3d66faf
Content-Type: application/json
Accept:application/json
IDS-SESSION-ID:2l0oeVx22Rujiej7yTokmT

GET response
Returns the job status object if successful or an error object if an error occurs.

552 Chapter 6: Streaming Ingestion and Replication REST API


If successful, the response includes the following information about the status of a streaming ingestion and
replication job:

Parameter Type Description

dataflowName String Name of the streaming ingestion and replication job.

dataflowId Integer ID of the streaming ingestion and replication job.

status String The status of the streaming ingestion and replication job. A job can be in one of the
following status:
- Deploying. The job is being deployed.
- Up and Running. The job is running.
- Running with Warning. The job is running with warnings.
- Running with Error. The job is running with error.
- Undeployed. The job is undeployed.
- Stopped. The job was intentionally stopped.

timestamp Integer Time, in milliseconds, when the Secure Agent records the status of the streaming
ingestion and replication job.

reports Array Status details of each node.

graph String The throughput information for the source and target of the job.

runId Integer Run ID of the streaming ingestion and replication job. The ID changes for every
deployment.

GET response example


If the request to get the status of a streaming ingestion and replication job is successful, you might receive a
response similar to the following example:
{
"dataflowName": "testmonitor",
"dataflowId": "1948938e-3923-4602-aba8-f122e3d66faf",
"status": "Running",
"timestamp": 1644839755000,
"reports": [
{
"name": "testmonitor_testmonitor_source",
"id": "a5684428-f41f-4d24-b73f-33c232314a91",
"status": "Running",
"timestamp": 1644839756000,
"message": null
},
{
"name": "testmonitor_testmonitor_target",
"id": "4f59b5fb-b5b2-4b83-994b-0d3e56f67e22",
"status": "Running",
"timestamp": 1644839756000,
"message": null
}
],
"graph": "{\"agentId\":\"011ZFB0800000000000N\",\"nodes\":[{\"id\":\"a5684428-
f41f-4d24-b73f-33c232314a91\",\"name\":\"testmonitor_source\",\"serviceType\":\"source
\",\"config\":[{\"key\":\"_nativeName\",\"value\":\"src\"},{\"key\":\"consumerProperties
\",\"value\":null}],\"connectionId\":\"011ZFB0B0000000000KJ\",\"type
\":\"\",\"metaMetadata\":\"\"},{\"id\":\"4f59b5fb-b5b2-4b83-994b-0d3e56f67e22\",\"name
\":\"testmonitor_target\",\"serviceType\":\"target\",\"config\":[{\"key\":\"_nativeName
\",\"value\":\"trgt\"},{\"key\":\"batchSize\",\"value\":\"1048576\"},{\"key
\":\"mdFetchTimeout\",\"value\":\"5000\"},{\"key\":\"producerProperties\",\"value
\":null}],\"connectionId\":\"011ZFB0B0000000000KJ\",\"type\":\"\",\"metaMetadata
\":\"\"}],\"edges\":[{\"id\":\"6ae185ea-7e6e-4bf6-bd9e-0be5ef3a8e78\",\"name

Job status 553


\":\"testmonitor_source_testmonitor_target\",\"from\":\"testmonitor_source\",\"to
\":\"testmonitor_target\",\"type\":\"success\",\"config\":[],\"metaMetadata
\":\"\"}],\"runtimeOptions\":null}",
"version": 1,
"runId": 42563
}

Job statistics
Use the statistics resource to get the statistics of a streaming ingestion and replication job.

The streaming ingestion job should be in one of the following status before you can view its statistics:

• Deploying
• Up and Running
• Running with Warning
• Running with Error
• Stopped

GET request
To request the statistics of a streaming ingestion and replication job, use the following URL:
<server URI>/sisvc/monitor/v1/statistics/dataflows/<dataflow ID>
You can include the following query parameters in the URI:

Parameter Type Required Description

intervals Integer Yes Time, in seconds, to display statistics for a streaming ingestion job. For
example, if you specify 30 seconds, the response displays job statistics for the
last 30 seconds.

overall Boolean No Displays the statistics from the time the job is deployed.

GET request example


To request the statistics of a streaming ingestion and replication job, you might send a request similar to the
following example:
GET [Link]
7f1daca9-3983-4677-930f-a9529802c56b?intervals=30&overall=true
Content-Type: application/json
Accept:application/json
IDS-SESSION-ID:2l0oeVx22Rujiej7yTokmT

GET response
Returns the statistics object if successful or an error object if an error occurs.

554 Chapter 6: Streaming Ingestion and Replication REST API


If successful, the response includes the following information about the statistics of a streaming ingestion
and replication job:

Parameter Type Description

dataflowId String ID of the streaming ingestion and replication job.

dataflowRunId Integer Run ID of the streaming ingestion and replication job.

startTime Integer Start time of the streaming ingestion job, in milliseconds.

stopTime Integer Stop time of the streaming ingestion job, in milliseconds.

inMessages Integer The number of messages that arrive at a node. A node is a source, transformation, or
target, that is used in the streaming ingestion task.
The value is zero for a source node.

outMessages Integer The number of messages that transfer from a node.


The value is zero for a target node.

inBytes Integer The total size of incoming messages in bytes.


The value is zero for a source node.

outBytes Integer The total size of outgoing messages in bytes.


The value is zero for a target node.

nodes Array Information about streaming data in the source and the target used in the task.

intervals Integer The statistics of the job for the time interval you specify in the request. Applies when you
set an interval.

GET response example


If the request to get the statistics of a streaming ingestion and replication job is successful, you might
receive a response similar to the following example:
{
"dataflowId": "7f1daca9-3983-4677-930f-a9529802c56b",
"dataflowName": "newnew",
"dataflowVersion": 1,
"dataflowRunId": 54231,
"snapshotCount": 171,
"overall": {
"dataflowId": "7f1daca9-3983-4677-930f-a9529802c56b",
"dataflowName": "newnew",
"dataflowVersion": 1,
"dataflowRunId": 54231,
"traits": {},
"interval": 6007,
"startTime": 1646649995000,
"stopTime": 1646656000000,
"nodes": [
{
"name": "newnew_newnew_source",
"id": "17a51cdf-1f27-481e-81b8-d2e8ff60ec28",
"inMessages": 0,
"outMessages": 0,
"inBytes": 0,
"outBytes": 0,
"nodeType": "Unknown"
},
{

Job statistics 555


"name": "newnew_newnew_target",
"id": "c30d6db4-6a3b-40d3-adfb-88779a972098",
"inMessages": 0,
"outMessages": 0,
"inBytes": 0,
"outBytes": 0,
"nodeType": "Unknown"
}
]
},
"intervals": {
"30": {
"dataflowId": "7f1daca9-3983-4677-930f-a9529802c56b",
"dataflowName": "newnew",
"dataflowVersion": null,
"dataflowRunId": 54231,
"traits": {},
"interval": 30,
"startTime": 1646655972683,
"stopTime": 1646656002683,
"nodes": []
}
}
}

Job history
Use the history resource to get the history of a streaming ingestion and replication job.

GET request
To request the history of a streaming ingestion and replication job, use the following URL:
<server URI>/sisvc/monitor/v1/history/dataflows/<dataflow ID>

GET request example


To get the history of a streaming ingestion and replication job, you might send a request similar to the
following example:
GET [Link]
1948938e-3923-4602-aba8-f122e3d66faf
Content-Type: application/json
Accept:application/json
IDS-SESSION-ID:2l0oeVx22Rujiej7yTokmT

GET response
Returns the job history object if successful or an error object if an error occurs.

If successful, the response includes the following information about the history of a streaming ingestion and
replication job:

Parameter Type Description

dataflowName String Streaming ingestion and replication job name.

dataflowId Integer Streaming ingestion and replication job ID.

deployedAt Integer The start time of deploying the job, in UTC time.

556 Chapter 6: Streaming Ingestion and Replication REST API


Parameter Type Description

undeployedAt Integer The time when the job finished undeploying, in UTC.

runID Integer Run ID of the streaming ingestion and replication job. The ID changes for every
deployment.

GET response example


If the request to get the history of a streaming ingestion and replication job is successful, you might receive a
response similar to the following example:
[
{
"dataflowId": "1948938e-3923-4602-aba8-f122e3d66faf",
"dataflowName": "testmonitor",
"deployedAt": 1644809910000,
"undeployedAt": 1644811453000,
"dataflowVersion": 1,
"runId": 42559,
"overall": null,
"intervals": {},
"graph": null
},
{
"dataflowId": "1948938e-3923-4602-aba8-f122e3d66faf",
"dataflowName": "testmonitor",
"deployedAt": 1644811513000,
"undeployedAt": 1644838813000,
"dataflowVersion": 1,
"runId": 42561,
"overall": null,
"intervals": {},
"graph": null
}
]

Job history 557


Chapter 7

RunAJob utility
You can use the RunAJob utility to run jobs or check job status instead of making calls directly through the
Informatica Intelligent Cloud Services REST API.

The RunAJob utility runs a JAR file that calls an Informatica Intelligent Cloud Services REST API to run a job.
After the job completes, the utility provides the following job details:

• The user who initiated the job.


• The time the job was initiated.
• The run ID for the job.

You can use the RunAJob utility for certain Data Integration and Data Ingestion and Replication asset types.

For Data Integration, you can run jobs for the following tasks and taskflows:

• Mapping tasks
• Synchronization tasks
• Replication tasks
• Masking tasks
• PowerCenter tasks
• Linear taskflows
• Published taskflows

For Data Ingestion and Replication, you can run file ingestion task jobs.

You must have the RunAJobCli package enabled in your Informatica Intelligent Cloud Services organization
to use the RunAJob utility.

To see if your organization is licensed to use the utility, log in to your organization and click Administrator >
Licenses, and then look for the RunAJobCli package toward the bottom of the page. If you do not see the
package, contact Informatica Global Customer Support to enable it.

When the package is enabled, the utility can be found in the following location:
<Secure Agent installation directory>\apps\runAJobCli
To use the RunAJob utility, the Secure Agent host must have Java version 1.8 or higher installed.

558
RunAJob utility setup
To set up the RunAJob utility, create copies of the template files that are included with the utility and
configure the new files.

The following table describes the RunAJob utility template files:

File name Description

Restenv_default.properties Specifies login credentials and job polling behavior.

Set_cli_vars_default.bat On Windows machines, specifies the keystore password that stores the
encryption key and the initial and maximum heap sizes that the RunAJob utility
uses to run Java commands.

Set_cli_vars_default.sh On Linux machines, specifies the keystore password that stores the encryption
key and the initial and maximum heap sizes that the RunAJob utility uses to run
Java commands.

Log4j2_default.properties Specifies the level of detail to return in log files.

You can find the template files in the following location:


<Secure Agent installation directory>\apps\runAJobCli
To customize the RunAJob properties, copy the template files, remove _default from the file names, and
then configure the properties. Alternatively, you can update existing copied files if you already have them.
Use the template files that are included with the utility as a reference.

Login properties
Specify Informatica Intelligent Cloud Services login credentials in the [Link] file or include the
login parameters as arguments in a task command.

Use login credentials for a native Informatica Intelligent Cloud Services user account. You can't use a SAML
user account for the RunAJob utility.

Include the following parameters in the [Link] file or in task commands:

Parameter Description

baseUrl Base URL.


Default is [Link]

username Informatica Intelligent Cloud Services user name.

password Informatica Intelligent Cloud Services password or encrypted password string.


For more information about password encryption, see “Encrypting a password on
Linux” on page 560 or “Encrypting a password on Windows” on page 560 .

RunAJob utility setup 559


Parameter Description

[Link] Enables use of an encrypted password. Set the value to true when you use an
encrypted password.

CONNECT_TIMEOUT_SECONDS Connection timeout period to accommodate network issues or latency specific to


your environment. Default is 30 seconds.

The following example shows the [Link] file with an encrypted password:
username=saki
password=:1xCGDTC0oD9B2Rmd8Sr4IZWaWWkcEmiK5fy+GkycA==
ACTIVITYMONITORWAIT=2000
TOTALWAIT=60000
PROXYHOST=
PROXYPORT=
RETRYCOUNT=30
[Link]=true
CONNECT_TIMEOUT_SECONDS=30
For more information, see “RunAJob utility arguments” on page 564.

Encrypting a password on Linux


You can encrypt your login password before you specify it in the [Link] file or a task
command. On a Linux machine, use the shell script to encrypt your password.

1. Copy the template file set_cli_vars_default.sh and rename it to set_cli_vars.sh.


2. Edit the file and set a password for the keystore that stores the encryption key. Use the following format:
export RUNAJOB_KEYSTORE_PASSWORD=<password>
3. To encrypt your login password, run one of the following commands:
• ./[Link] encryptText -t <password>
• ./[Link] encryptText -text <password>
If your login password includes non-alphanumeric characters, enclose the password within double
quotation marks.

Encrypting a password on Windows


You can encrypt your login password before you specify it in the [Link] file or a task
command. On a Windows machine, use the batch file to encrypt your password.

1. Copy the template file set_cli_vars_default.bat and rename it to set_cli_vars.bat.


2. Edit the file and set a password for the keystore that stores the encryption key. Use the following format:
set RUNAJOB_KEYSTORE_PASSWORD=<password>
3. To encrypt your login password, run one of the following commands:
• [Link] encryptText -t <password>
• [Link] encryptText -text <password>
If your login password includes non-alphanumeric characters, enclose the password within double
quotation marks.

560 Chapter 7: RunAJob utility


Job status
Specify the frequency at which the RunAJob utility polls for status in the [Link] file.

You can use the following parameters:

Parameter Description

ACTIVITYMONITORWAIT Amount of time the utility waits before retrying if an internal exception occurs, such as a
login failure or network problem.
Default is 5000 milliseconds.

TOTALWAIT Maximum amount of time the utility waits for a job to complete before polling the activity
monitor and activity log again for status.
Default is 5000 milliseconds.

RETRYCOUNT Number of times the utility polls for status. Default is six. This parameter is used for
polling the activity monitor and activity log for job status and for internal exceptions such
as network failures.
Login failures are retried up to five times.
Note: Informatica Intelligent Cloud Services adds 10 seconds between each API call to
prevent server issues.

When you configure the [Link] file to poll job status, consider the values you set for
TOTALWAIT and RETRYCOUNT, and keep in mind the amount of time you expect a job to run.

For example, if you expect a job to run for approximately 25 minutes, you might set the the following
parameters:
TOTALWAIT=60000
RETRYCOUNT=30
With these settings, the utility polls the job status every 60 seconds up to 30 times with 10 seconds between
each retry, which totals 35 minutes. If the job runs for more than 35 minutes, the command exits with return
code 6, which means the job is running. The job continues to run in Informatica Intelligent Cloud Services.

When you configure the [Link] file for internal exceptions, consider the values you set for
ACTIVITYMONITOR and RETRYCOUNT.

For example, you might set the following parameters:


ACTIVITYMONITORWAIT=5000
RETRYCOUNT=30
With these settings, if the network fails, the utility retries the login every five seconds up to five times with an
additional 10 seconds between each retry.

Log file detail


You can set the level of job detail to include in log files in the [Link] file.

By default, the level of detail is set to INFO. At this level, log files include basic information such as user ID,
job ID, and the time that the task was initiated. If you want log files to include job details for debugging
purposes, you can change the level of detail to DEBUG. Or, for fine-grained details, you can change the level
to TRACE.

To set the level of detail, change the value of the following parameter in the [Link] file:
[Link]=INFO

RunAJob utility setup 561


Java heap sizes
For optimal use of virtual memory, specify the initial heap size and maximum heap size for Java commands
that the RunAJob utility uses. Set the heap size values using the CLI_JAVA_OPTS parameter.

Specify the following properties for the CLI_JAVA_OPTS parameter:

Property Description

Xms Specifies the initial heap size that the JVM will allocate.

Xmx Specifies the maximum heap size that the JVM is allowed to allocate.

You might configure the CLI_JAVA_OPTS parameter as shown in the following example of a
set_cli_vars.sh file:
@echo off
REM This variable is used to override the default KeyStore password.
set RUNAJOB_KEYSTORE_PASSWORD=
REM This variable is used to set the Java initial heap size and maximum heap size.
set CLI_JAVA_OPTS =Xms256m -Xmx512m

Configuring Java heap sizes on Linux


Configure the initial and maximum Java heap sizes on a Linux machine in the set_cli_vars_default.sh file.

1. Open the set_cli_vars.sh file.


If you don't already have a set_cli_vars.sh file, copy the template file set_cli_vars_default.sh and
rename it to set_cli_vars.sh.
2. Edit the file to specify the initial and maximum heap sizes. Use the following format:
export CLI_JAVA_OPTS="-Xms<initial heap size>m -Xmx<maximum heap size>m"
For example: export CLI_JAVA_OPTS="-Xms256m -Xmx512m"
3. Save the file.

Configuring Java heap sizes on Windows


Configure the initial and maximum Java heap sizes on a Windows machine in the
set_cli_vars_default.bat file.

1. Open the set_cli_vars.bat file.


If you don't already have a set_cli_vars.bat file, copy the template file set_cli_vars_default.bat
and rename it to set_cli_vars.bat.
2. Edit the file to specify the initial and maximum heap sizes. Use the following format:
set CLI_JAVA_OPTS=-Xms<initial heap size>m -Xmx<maximum heap size>m
For example: set CLI_JAVA_OPTS=-Xms256m -Xmx512m
3. Save the file.

562 Chapter 7: RunAJob utility


Using the RunAJob utility
To use the RunAJob utility, type the RunAJob utility command followed by arguments.

The following string is the RunAJob utility command:


[Link] runAJobCli
For each job, you must specify the task or taskflow to run. The syntax that you use to run a Data Integration
taskflow is slightly different from the syntax you use to run a task.

Running tasks
The following command is an example of the syntax you can use to run a task using the task name and
location to specify the task:
[Link] runAJobCli -t <tasktype> -n <task name> -fp <folder path to the task>
For example, to run a Data Ingestion and Replication file ingestion and replication task, you might use the
following command:
[Link] runAJobCli -t MI_TASK -n mitask_Arch_2308 -fp myproject/folder1
The following command is an example of the syntax you can use to run a job using the federated task ID to
specify the task:
[Link] runAJobCli -t <tasktype> -fi <federated task ID>
For example, to run a Data Integration synchronization task using the federated task ID, you might use the
following command:
[Link] runAJobCli -t DSS -fi kvOF40yLXyUihm7wYYskmh

Running Data Integration taskflows


To run a taskflow using the RunAJob utility, the taskflow must be published and you must include values for
Allowed Users and Allowed Groups in the taskflow designer. For more information, see Taskflows in the Data
Integration help.

For each job, you must specify the taskflow to run using the taskflow's name.

To run a taskflow, use the following syntax:


[Link] runAJobCli -t TASKFLOW -un <taskflow name>
For example, you might use the following command:
[Link] runAJobCli -t TASKFLOW -un myPublishedTaskflow

Running Data Integration taskflows using parameter sets


You can use a parameter set to provide values for taskflow input parameters and run the taskflow using the
RunAJob utility.

For more information about running taskflows with parameter sets using the RunAJob utility, see
[Link] This article also includes a link to download the
utility.

When you run a taskflow that uses a parameter set, type the RunAJob utility command followed by the -pun
or --parameterSetUniqueName argument.

To run a taskflow using the RunAJob utility, the taskflow must be published and you must include values for
Allowed Users and Allowed Groups in the taskflow designer. For more information, see Taskflows in the Data
Integration help.

Using the RunAJob utility 563


To run a taskflow that uses a parameter set, use one of the following syntaxes:
[Link] runAJobCli -t TASKFLOW -un <taskflow_name> -fp <folder_path> -pun
<unique_param_set_name>
[Link] runAJobCli -t TASKFLOW -un <taskflow_name> -fp <folder_path> --
parameterSetUniqueName <unique_param_set_name>
For example:
[Link] runAJobCli -t TASKFLOW -un myTaskflow -fp myproject/folder1 -pun sampleParamSet
[Link] runAJobCli -t TASKFLOW -un myTaskflow -fp myproject/folder1 --
parameterSetUniqueName sampleParamSet
All taskflows run by using the /tf endpoint from the RunAJob utility.

Note: If you use the utility on Linux and you use another script or wrapper script to call [Link], be sure to
comment the following line in the [Link] file:
cd "$SCRIPT_DIR"
If you do not comment this line, you might receive the following error:
Could not find or load main class [Link].

Task location
If you do not include a folder path or federated task ID in the command, the utility runs the task in the Default
folder.

If the task is not located in the Default folder or you have multiple tasks with the same name located in
different folders, be sure to include the folder path or federated task ID in the command.

To find the federated task ID, send a POST request using the REST API version 3 lookup resource.

RunAJob utility arguments


The RunAJob utility supports short and long options for arguments. Precede a short argument with a single
hyphen. Precede a long argument with two hyphens.

You can use the following arguments in a RunAJob command:

Parameter Short Long argument Description


argument

username -u --user Informatica Intelligent Cloud Services user


name.

password -p --password Informatica Intelligent Cloud Services


password.

baseUrl -bu --baseUrl Base URL. Default is [Link]


[Link]/ma.
Required.

taskId -i --taskId Task ID.


Required when the command does not
include the task name or federated task ID.
Not applicable for taskflows.

564 Chapter 7: RunAJob utility


Parameter Short Long argument Description
argument

folderPath -fp --folderPath Folder path to the location of the task such
as myproject/folder1.
Required when the task isn't in the Default
folder and the command doesn't include
the federated task ID.
Not applicable for taskflows.

frsId -fi --frsId Federated task ID, which is a global unique


identifier.
Required when the task is not in the Default
folder and the command does not include
the folder path.
Not applicable for taskflows.

taskflowUniqueName -un --taskflowUniqueName Taskflow unique name.


Required for Data Integration taskflows.
Use instead of taskName.

taskName -n --taskName Task name.


Not applicable for taskflows.

taskType -t --taskType Task type. Required.


Use one of the following values:
- DMASK. Masking task.
- DRS. Replication task.
- DSS. Synchronization task.
- MTT. Mapping task.
- PCS. PowerCenter task.
- Workflow. Linear taskflow.
- MI_TASK. File ingestion and replication
task.
- TASKFLOW. Taskflow.

parameterSetUniqueName -pun --parameterSetUniqueName Unique name of the parameter set. Can be


used for taskflow.

parameterDir -pd --parameterDir Parameter file directory. Include with


parameterFile. Default is:
<SecureAgentInstallDir>/apps/
Data_Integration_Server/data/
userparameters

parameterFile -pf --parameterFile Parameter file. Can be used for mapping


tasks.

waitFlag -w --waitFlag Wait flag. Determines whether to wait for


the job to complete or run the job in the
background.

insecure -k --insecure Insecure mode.

instanceName -in --instanceName Custom name to be added to a taskflow


name.

Using the RunAJob utility 565


Job status codes
If a job is successful, the RunAJob utility returns a SUCCESS value of 0. If the job fails, the utility returns
errors.

The utility can return the following status codes:

Code Description

-1 Exception

0 Success

1 Warning

2 No wait

3 Failure

4 Timeout

5 Error

6 Running

7 Failure to start

If any required parameters are missing or are not valid in a command, an error message displays and the
REST API call does not run.

566 Chapter 7: RunAJob utility


Chapter 8

ParamSetCli utility
ParamSetCli is Informatica's command line interface utility that is used only for taskflows that use parameter
sets.

ParamSetCli enables you to perform the following actions on a parameter set:

1. Upload a parameter set to the cloud-hosted repository.


2. Download a parameter set from the cloud-hosted repository.
3. Delete a parameter set from the cloud-hosted repository.
4. List all the parameter sets available in the cloud-hosted repository.
The following video shows you how to upload, download, delete, and list the parameter set within the cloud-
hosted repository:

[Link]

ParamSetCli utility requirements


Before you run the ParamSetCli utility, you must have a Java Runtime Environment.

To use the ParamSetCli utility with proxy settings, you must have the Secure Agent installed on the same
machine as the ParamSetCli utility.

You can download the ParamSetCli utility from the following community article:

[Link]

ParamSetCli utility setup


To set up the ParamSetCli utility, unzip the downloaded [Link] to a directory other than the Secure
Agent installation directory.

The ParamSetCli utility contains the following files:

• [Link]. Specifies login credentials.


• [Link]. Specifies the level of detail to return in log files.
To customize the ParamSetCli properties, you can update the existing [Link] and
[Link] files.

567
Login properties
Specify the Informatica Intelligent Cloud Services login credentials in the [Link] file. Or, you
can pass the login parameters through cli using the -u and -p arguments.

You can use a password string or an encrypted password for the password parameter and the PROXYPWD
parameter.

To create an encrypted password, use one of the following commands:

./[Link] encryptText -t <password>

./[Link] encryptText -text <password>

You can use [Link] for Windows and [Link] for Unix-like operating systems.

Copy the encrypted password string and replace the password or proxy password in the [Link]
file with the encrypted string, and then set the [Link] flag to true.

The following example shows the [Link] file with an encrypted password, an encrypted proxy
password, and the [Link] flag set to true:

baseUrl=[Link]
username=testuser
password=:1xCGDTC0oD9B2Rmd8Sr4IZWaWWkcEmiK5fy+GkycA==
ACTIVITYMONITORWAIT=2000
PROXYHOST=
PROXYPORT=
PROXYUSERNAME=
PROXYPWD=x2UNmQ1nxXbKvKs1+ZOkvQ==
RETRYCOUNT=
[Link]=true
paramSetBaseUrl=[Link]
Include the following parameters in the [Link] file or in action commands:

Parameter Description

baseUrl Informatica Intelligent Cloud Services MA service URL. Default is [Link]


[Link]/ma.

username Informatica Intelligent Cloud Services user name.

password Informatica Intelligent Cloud Services password or encrypted password string.

ACTIVITYMONITORWAIT The amount of time the utility waits before retrying if an internal exception occurs, such as
a login failure or network problem.
Default is 5000 milliseconds.

PROXYHOST Host name or an IP address of the HTTP(s) proxy server.

PROXYPORT Port number of the HTTP(s) proxy server.

PROXYUSERNAME Authenticated user name for the HTTP(s) proxy server. Required if the proxy server
requires authentication.

PROXYPWD Password for the authenticated user or an encrypted password string for the authenticated
user. Required if the proxy server requires authentication.

568 Chapter 8: ParamSetCli utility


Parameter Description

RETRYCOUNT The number of times the utility polls for status. This parameter is used for polling the
activity monitor and activity log for job status and for internal exceptions such as login
failure or network problems.
Default is 6.
Note: Informatica Intelligent Cloud Services adds 10 seconds between each API call to
prevent server issues.

[Link] Enables the use of an encrypted password. To use an encrypted password or an encrypted
proxy password, set the value to true.

paramSetBaseUrl Base URL of Informatica Cloud Data Integration suffixed with active-bpel.
Default is [Link]

Using the ParamSetCli utility


To use the ParamSetCli utility, type the runParamSetCli command followed by the arguments.

Use [Link] runParamSetCli for Windows. Use [Link] runParamSetCli for Unix-like
operating systems.

For each action that you want to perform, you must specify the action type.

ParamSetCli utility arguments


You can use the following arguments in a ParamSetCli command:

Parameter Argument Description

username -u Required. The user name to log in to Informatica Intelligent Cloud Services.

password -p Required. The password or encrypted password string to log in to Informatica


Intelligent Cloud Services.

baseUrl -bu Required. Informatica Intelligent Cloud Services MA service URL. Default is
[Link]

paramsetbaseUrl -psbu Base URL of Informatica Cloud Data Integration suffixed with active-bpel.
For example, [Link]
You can provide the paramset base URL in the [Link] file or
you can pass it through the CLI using the -psbu argument. If it is available in
both locations, the -psbu value in the action command takes precedence.

debug -d Optional. Displays debugging information.

insecure -k Optional. Enables the insecure mode.

Using the ParamSetCli utility 569


Parameter Argument Description

action -a Required. Defines the action to be performed on the parameter set. You can
specify one of the following actions:
upload- Upload a parameter set to the cloud-hosted repository by using the
unique name. Optionally, you can specify the -f force argument to override the
existing parameter set.
download- Download a parameter set from the cloud-hosted repository by using
the unique name of an uploaded parameter set. If the specified file already
exists on your local machine, the CLI does not download the parameter set. To
forcefully download and overwrite the existing file, you can use the -f force
argument.
list- List the parameter sets with basic information such as created by, creation
date, parameter set name, parameter file name, and parameter directory
available in the cloud-hosted repository.
delete- Permanently delete the specified parameter set from the cloud-hosted
repository.

Force -f Optional. Enables you to force upload or download the parameter set.

Parameter Set -un Required. A name used to identify a parameter set when performing different
Unique Name operations such as upload, download, or delete a parameter set, or use it in a
taskflow. The name must be unique within the IICS organization.

Parameter directory -pd Specifies the directory where the parameter files are located.

Parameter file name -pf Parameter file name.

Parameter Set List -page Optional. Page number. Specifies the page number that you want to list.
Page

Page size -ps Optional. Specifies the number of entries per page. The default and the
maximum number of entries that you can list is 50 per page.

Running the ParamSetCli commands


You can use the following command to run an action using the action name.

[Link] runParamSetCli -a <actionName>

You can perform different actions such as upload, download, and delete a parameter set and list all of the
uploaded parameter sets. For each action, you must provide the -a argument and appropriate arguments
specific to the action as shown below:

Upload a parameter set

You can use the upload action to upload a parameter set to the cloud-hosted repository. You can upload
a file with a size up to 5 MB.

To upload a parameter set, use the following syntax:

[Link] runParamSetCli -un <unique_param_set_name> -pf <parameter_file_name> -pd


<parameter_directory> -a <action>

For example:

[Link] runParamSetCli -un [Link] -pf [Link] -pd C:\files -


a upload

570 Chapter 8: ParamSetCli utility


Here, -un, -pf, and -pd are mandatory arguments. If a parameter set already exists in the cloud-hosted
repository, you cannot upload a parameter set with the same name. However, if you want to force an
update of the content in the existing parameter set, you can use the -f force argument.

If you update the parameter set after uploading it to the cloud-hosted repository, you must reupload the
parameter set for the changes to take effect.

After you run this command, the parameter set is uploaded to the cloud-hosted repository. The unique
name of the parameter set is used in a taskflow to read the inputs.

Download a parameter set

You can use the unique name of an uploaded parameter set to download it from the cloud-hosted
repository.

To download a parameter set, use the following syntax:

[Link] runParamSetCli -un <unique_param_set_name> -pf <parameter_file_name> -pd


<parameter_directory> -a <action>

For example:

[Link] runParamSetCli -un [Link] -pf [Link] -pd


C:\files -a download

Here, -un, -pf, and -pd are mandatory arguments. -pf specifies the file name with which you want to
download the parameter set, and -pd specifies the directory where the parameter set is to be
downloaded. If the specified file already exists on the local machine, the ParamSetCli utility does not
download the parameter set. To forcefully download and overwrite the existing file, you can use the -f
force argument.

After you run this command, the parameter set is downloaded to the specified directory.

Delete a parameter set

You can use the unique name of the parameter set to delete it from the cloud-hosted repository.

To delete a parameter set, use the following syntax:

[Link] runParamSetCli -un <unique_param_set_name> -a <action>

For example:

[Link] runParamSetCli -un [Link] -a delete

Here, -un is a mandatory argument.

After you run this command, the parameter set is permanently deleted from the cloud-hosted repository.

List the parameter sets

You can list the parameter sets that you have uploaded to the cloud-hosted repository.

To list the parameter sets, use the following syntax:

[Link] runParamSetCli -a list

When you run the above command, the first page with 50 entries is listed. It displays basic information
such as created by, creation date, parameter set name, parameter file name, and parameter directory for
the parameter sets available in the cloud-hosted repository.

The default and the maximum number of entries that you can list is 50 per page. If you want a
customized list, you can specify the page number and page size as per the requirement.

To customize the parameter set list, use the following syntax:

Using the ParamSetCli utility 571


[Link] runParamSetCli -a list -page <page_number> -ps <page_size>

For example: [Link] runParamSetCli -a list -page <5> -ps <10>

Here, -page is the page number that you want to list and -ps is the number of entries you want to display
on that page.

After you run this command, the fifth page with 10 entries are listed.

572 Chapter 8: ParamSetCli utility


Chapter 9

REST API codes


The Informatica Intelligent Cloud Services REST API uses codes to represent data such as country names.
Use the codes to pass information to the REST API and to interpret the data returned by the REST API.

The Informatica Intelligent Cloud Services REST API uses codes for the following information:

• State codes. Represent the names of the United States.


• Country codes. Represent country names.
• Time zone codes. Represent time zones.

State codes
The Informatica Intelligent Cloud Services REST API uses the following codes to represent the names of the
United States.

• AL. Alabama.
• AK. Alaska.
• AZ. Arizona.
• AR. Arkansas.
• CA. California.
• CO. Colorado.
• CT. Connecticut.
• DE. Delaware.
• FL. Florida.
• GA. Georgia.
• HI. Hawaii.
• ID. Idaho.
• IL. Illinois.
• IN. Indiana.
• IA. Iowa.
• KS. Kansas.
• KY. Kentucky.
• LA. Louisiana.

573
• ME. Maine.
• MD. Maryland.
• MA. Massachusetts.
• MI. Michigan.
• MN. Minnesota.
• MS. Mississippi.
• MO. Missouri.
• MT. Montana.
• NE. Nebraska.
• NV. Nevada.
• NH. New Hampshire.
• NJ. New Jersey.
• NM. New Mexico.
• NY. New York.
• NC. North Carolina.
• ND. North Dakota.
• OH. Ohio.
• OK. Oklahoma.
• OR. Oregon.
• PA. Pennsylvania.
• RI. Rhode Island.
• SC. South Carolina.
• SD. South Dakota.
• TN. Tennessee.
• TX. Texas.
• UT. Utah.
• VT. Vermont.
• VA. Virginia.
• WA. Washington.
• WV. West Virginia.
• WI. Wisconsin.
• WY. Wyoming.

Country codes
The Informatica Cloud REST API uses the following codes to represent country names.

• AF. Afghanistan.
• AX. Aland Islands.

574 Chapter 9: REST API codes


• AL. Albania.
• DZ. Algeria.
• AS. American Samoa.
• AD. Andorra.
• AO. Angola.
• AI. Anguilla.
• AQ. Antarctica.
• AG. Antigua and Barbuda.
• AR. Argentina.
• AM. Armenia.
• AW. Aruba.
• AU. Australia.
• AT. Austria.
• AZ. Azerbaijan.
• BS. Bahamas.
• BH. Bahrain.
• BD. Bangladesh.
• BB. Barbados.
• BY. Belarus.
• BZ. Belize.
• BE. Belgium.
• BJ. Benin.
• BM. Bermuda.
• BT. Bhutan.
• BO. Bolivia.
• BA. Bosnia and Herzegovina.
• BW. Botswana.
• BV. Bouvet Island.
• BR. Brazil.
• IO. British Indian Ocean Territory.
• BN. Brunei Darussalam.
• BG. Bulgaria.
• BF. Burkina Faso.
• BI. Burundi.
• KH. Cambodia.
• CM. Cameroon.
• CA. Canada.
• CV. Cape Verde.
• KY. Cayman Islands.

Country codes 575


• CF. Central African Republic.
• TD. Chad.
• CL. Chile.
• CN. China.
• CX. Christmas Island.
• CC. Cocos (Keeling) Islands.
• CO. Colombia.
• KM. Comoros.
• CG. Congo.
• CD. Congo, the Democratic Republic of the.
• CK. Cook Islands.
• CR. Costa Rica.
• CI. Cote d'Ivoire.
• HR. Croatia.
• CU. Cuba.
• CY. Cyprus.
• CZ. Czech Republic.
• DK. Denmark.
• DM. Dominica.
• DO. Dominican Republic.
• DJ. Djibouti.
• EC. Ecuador.
• EG. Egypt.
• SV. El Salvador.
• GQ. Equatorial Guinea.
• ER. Eritrea.
• EE. Estonia.
• ET. Ethiopia.
• FK. Falkland Islands (Malvinas).
• FO. Faroe Islands.
• FJ. Fiji.
• FI. Finland.
• FR. France.
• GF. French Guiana.
• PF. French Polynesia.
• TF. French Southern Territories.
• GA. Gabon.
• GM. Gambia.
• GE. Georgia.

576 Chapter 9: REST API codes


• DE. Germany.
• GH. Ghana.
• GI. Gibraltar.
• GR. Greece.
• GL. Greenland.
• GD. Grenada.
• GP. Guadeloupe.
• GU. Guam.
• GT. Guatemala.
• GG. Guernsey.
• GN. Guinea.
• GW. Guinea-Bissau.
• GY. Guyana.
• HT. Haiti.
• HM. Heard Island and McDonald Islands.
• HN. Honduras.
• HK. Hong Kong.
• HU. Hungary.
• IS. Iceland.
• IN. India.
• ID. Indonesia.
• IR. Iran, Islamic Republic of.
• IQ. Iraq.
• IE. Ireland.
• IL. Israel.
• IM. Isle of Man.
• IT. Italy.
• JM. Jamaica.
• JP. Japan.
• JE. Jersey.
• JO. Jordan.
• KZ. Kazakhstan.
• KE. Kenya.
• KI. Kiribati.
• KP. Korea, Democratic People's Republic of.
• KR. Korea, Republic of.
• KW. Kuwait.
• KG. Kyrgyzstan.
• LA. Lao People's Democratic Republic.

Country codes 577


• LV. Latvia.
• LB. Lebanon.
• LS. Lesotho.
• LR. Liberia.
• LY. Libyan Arab Jamahiriya.
• LI. Liechtenstein.
• LT. Lithuania.
• LU. Luxembourg.
• MO. Macao.
• MK. Macedonia, the former Yugoslav Republic of.
• MG. Madagascar.
• MW. Malawi.
• MY. Malaysia.
• MV. Maldives.
• ML. Mali.
• MT. Malta.
• MH. Marshall Islands.
• MR. Mauritania.
• MU. Mauritius.
• MQ. Martinique.
• YT. Mayotte.
• MX. Mexico.
• FM. Micronesia, Federated States of.
• MD. Moldova, Republic of.
• MC. Monaco.
• MN. Mongolia.
• ME. Montenegro.
• MS. Montserrat.
• MA. Morocco.
• MZ. Mozambique.
• MM. Myanmar.
• NA. Namibia.
• NR. Nauru.
• NP. Nepal.
• NL. Netherlands.
• AN. Netherlands Antilles
• NC. New Caledonia.
• NZ. New Zealand.
• NI. Nicaragua.

578 Chapter 9: REST API codes


• NE. Niger.
• NG. Nigeria.
• NU. Niue.
• NF. Norfolk Island.
• MP. Northern Mariana Islands.
• OM. Oman.
• PK. Pakistan.
• PW. Palau.
• PS. Palestinian Territory, Occupied.
• PA. Panama.
• PG. Papua New Guinea.
• PY. Paraguay.
• PE. Peru.
• PH. Philippines.
• PN. Pitcairn.
• PL. Poland.
• PT. Portugal.
• PR. Puerto Rico.
• QA. Qatar.
• RE. Reunion.
• RO. Romania.
• RU. Russian Federation.
• RW. Rwanda.
• BL. Saint Barthelemy.
• SH. Saint Helena.
• KN. Saint Kitts and Nevis.
• LC. Saint Lucia.
• MF. Saint Martin (French part).
• PM. Saint Pierre and Miquelon.
• VC. Saint Vincent and the Grenadines.
• WS. Samoa.
• SM. San Marino.
• ST. Sao Tome and Principe.
• SA. Saudi Arabia.
• SN. Senegal.
• RS. Serbia.
• SC. Seychelles.
• SL. Sierra Leone.
• SG. Singapore.

Country codes 579


• SK. Slovakia.
• SI. Slovenia.
• SB. Solomon Islands.
• SO. Somalia.
• ZA. South Africa.
• GS. South Georgia and the South Sandwich Islands.
• ES. Spain.
• LK. Sri Lanka.
• SD. Sudan.
• SR. Suriname.
• SJ. Svalbard and Jan Mayen.
• SZ. Swaziland.
• SY. Syrian Arab Republic.
• SE. Sweden.
• CH. Switzerland.
• TW. Taiwan.
• TJ. Tajikistan.
• TZ. Tanzania, United Republic of.
• TH. Thailand.
• TL. Timor-Leste.
• TG. Togo.
• TK. Tokelau.
• TO. Tonga.
• TT. Trinidad and Tobago.
• TN. Tunisia.
• TR. Turkey.
• TC. Turks and Caicos Islands.
• TM. Turkmenistan.
• TV. Tuvalu.
• UG. Uganda.
• UA. Ukraine.
• AE. United Arab Emirates.
• GB. United Kingdom.
• US. United States.
• UM. United States Minor Outlying Islands.
• UY. Uruguay.
• UZ. Uzbekistan.
• VU. Vanuatu.
• VA. Holy See (Vatican City State).

580 Chapter 9: REST API codes


• VE. Venezuela.
• VN. Viet Nam.
• VG. Virgin Islands, British.
• VI. Virgin Islands, U.S.
• WF. Wallis and Futuna.
• EH. Western Sahara.
• YE. Yemen.
• ZM. Zambia.
• ZW. Zimbabwe.

Time zone codes


The Informatica Intelligent Cloud Services REST API uses the following time zone codes:

• ACT
• AET
• Africa/Cairo
• Africa/Casablanca
• Africa/Johannesburg
• Africa/Nairobi
• America/Barbados
• America/Bogota
• America/Buenos_Aires
• America/Caracas
• America/Chicago
• America/Costa_Rica
• America/Dawson_Creek
• America/Denver
• America/Dominica
• America/El_Salvador
• America/Guadeloupe
• America/Halifax
• America/Havana
• America/Jamaica
• America/La_Paz
• America/Los_Angeles
• America/Mexico_City
• America/Montreal
• America/New_York

Time zone codes 581


• America/Panama
• America/Phoenix
• America/Puerto_Rico
• America/Santiago
• America/Tijuana
• America/Vancouver
• Asia/Baghdad
• Asia/Bahrain
• Asia/Dubai
• Asia/Hong_Kong
• Asia/Jerusalem
• Asia/Karachi
• Asia/Katmandu
• Asia/Kuala_Lumpur
• Asia/Kuwait
• Asia/Magadan
• Asia/Muscat
• Asia/Qatar
• Asia/Rangoon
• Asia/Riyadh
• Asia/Seoul
• Asia/Singapore
• AST
• Atlantic/Cape_Verde
• Atlantic/South_Georgia
• Australia/Lord_Howe
• Australia/Perth
• Brazil/Acre
• Brazil/DeNoronha
• Brazil/East
• Brazil/West
• BST
• CNT
• CTT
• Europe/Amsterdam
• Europe/Athens
• Europe/Belgrade
• Europe/Berlin
• Europe/Brussels

582 Chapter 9: REST API codes


• Europe/Bucharest
• Europe/Budapest
• Europe/Copenhagen
• Europe/Istanbul
• Europe/London
• Europe/Luxembourg
• Europe/Madrid
• Europe/Moscow
• Europe/Paris
• Europe/Prague
• Europe/Rome
• Europe/Stockholm
• Europe/Vienna
• Europe/Warsaw
• Europe/Zurich
• GMT
• HST
• Indian/Mauritius
• IST
• JST
• Pacific/Apia
• Pacific/Auckland
• Pacific/Chatham
• Pacific/Enderbury
• Pacific/Fiji
• Pacific/Gambier
• Pacific/Kiritimati
• Pacific/Norfolk
• Pacific/Tahiti
• UTC
• VST

Time zone codes 583


Chapter 10

REST API resource quick


references
Use the resource quick reference lists to find quick descriptions of REST API resources used by the
Informatica Intelligent Cloud Services platform and services.

Platform resource quick reference


The following list contains the syntax and a brief description of the Informatica Intelligent Cloud Services
REST API platform resources:

activityLog GET

Version 2 resource.

Returns information from the Monitor service.

Use the serverUrl from the login response as the base URL for one of the following URIs:
/api/v2/activity/activityLog/<id>
/api/v2/activity/activityLog?runId=<runId>
/api/v2/activity/activityLog?taskId=<taskId>
/api/v2/activity/activityLog?offset=<offset>
/api/v2/activity/activityLog?rowLimit=<row limit>
You can also use the activityLog to download error logs and session logs from the server.

Use the serverUrl from the login response for one of the following URIs:
/api/v2/activity/errorLog/<id>
/api/v2/activity/activityLog/<Top_Level_Log_Entry_Id>/sessionLog?itemId=<child-log-
entry-item-id>&childItemId=<child-log-entry-item-id>
activityMonitor GET

Version 2 resource.

Returns information from the Monitor service.

Use the serverUrl from the login response as the base URL for the following URI:
/api/v2/activity/activityMonitor?details=<true|false>
agent GET

Version 2 resource.

Returns the details of a Secure Agent or of all Secure Agents in the organization. Also returns a Secure
Agent install token and checksum download URL.

584
Use the serverUrl from the login response as the base URL for one of the following URIs:

• To get Secure Agent details, use one of the following URIs:


/api/v2/agent
/api/v2/agent/<id>
/api/v2/agent/name/<name>
• To get a Secure Agent install token and checksum download URL, use the following URI:
/api/v2/agent/installerInfo/<install platform>
agent DELETE

Version 2 resource.

Deletes a Secure Agent.

Use the serverUrl from the login response as the base URL for the following URI:
/api/v2/agent/<id>
agentservice POST

Version 3 resource

Starts or stops a Secure Agent service.

Use the baseApiUrl from the login response as the base URL for the following URI:
public/core/v3/agent/service
auditlog GET

Version 2 resource.

Returns audit log entries.

Use the serverUrl from the login response as the base URL for one of the following URIs:
/api/v2/auditlog
/api/v2/auditlog?batchId=<batchId>&batchSize=<batchSize>
bundleObject GET

Version 2 resource.

Returns the details of a bundle or the details of all published or installed bundles in the organization.

Use the serverUrl from the login response as the base URL for one of the following URIs:
/api/v2/bundleObject
/api/v2/bundleObject/<id>
/api/v2/bundleObject/name/<name>
/api/v2/bundleObject/?published=true
/api/v2/bundleObject/?published=true&installed=false
/api/v2/bundleObject/?installed=true
/api/v2/bundleObject/?published=false&installed=true
bundleObject POST

Version 2 resource.

Pushes a published private bundle to sub-organizations.

Use the serverUrl from the login response as the base URL in the following URI:
/api/v2/bundleObject/push/<bundleId>
bundleObjectLicense GET

Version 2 resource.

Returns the details of all bundles available to or installed on the organization.

Platform resource quick reference 585


Use the serverUrl from the login response as the base URL in the following URI:
/api/v2/bundleObjectLicense/<bundleObjectId>
bundleObjectLicense POST
Version 2 resource.
Installs a bundle.

Use the serverUrl from the login response as the base URL in the following URI:
/api/v2/bundleObjectLicense/
Use a bundleObjectLicense object to define attributes. Include the following required attribute: bundleId.

bundleObjectLicense DELETE

Version 2 resource.

Uninstalls a bundle.

Use the serverUrl from the login response as the base URL in the following URI:
/api/v2/bundleObjectLicense?bundleObjectId=<bundleId>&updateOption=<updateOption>
ChangePassword POST

Version 3 resource.

Changes the password for the user who initiated the session or for a specified user.

Use the baseApiUrl from the login response as the base URL for the following URI:
/public/core/v3/Users/ChangePassword
checkin POST

Version 3 resource.

Updates the repository with latest version of an object.

Use the baseApiUrl from the login response as the base URL for the following URI:
/public/core/v3/checkin
checkout POST

Version 3 resource.

Checks out an object from the repository.

Use the baseApiUrl from the login response as the base URL for the following URI:
/public/core/v3/checkout
commit GET

Version 3 resource.

Returns details for a commit.

Use the baseApiUrl from the login response as the base URL for the following URI:
/public/core/v3/commit/<commit hash>
commitHistory GET

Version 3 resource.

Returns commit history for source-controlled objects with the latest commit listed first.

Use the baseApiUrl from the login response as the base URL for the following URI:
/public/core/v3/commitHistory<parameters>

586 Chapter 10: REST API resource quick references


export POST

Version 3 resource.

Starts an export job and returns an export job ID.

Use the baseApiUrl from the login response as the base URL for the following URI:
/public/core/v3/export
export GET

Version 3 resource.

Returns export status or the export package.


Use the baseApiUrl from the login response as the base URL for one of the following URIs:

• To receive status of an export job, use one of the following URIs:


/public/core/v3/export/<id>
/public/core/v3/export/<id>?expand=objects
• To download the export job log, use the following URI:
/public/core/v3/export/<id>/log
• To receive a ZIP stream of the export package, use the following URI:
/public/core/v3/export/<id>/package
fetchState POST

Version 3 resource.

Creates an object states package and returns a fetchState job ID.

Use the baseApiUrl from the login response as the base URL for the following URI:
/public/core/v3/fetchState
fetchState GET

Version 3 resource.

Returns the status of the fetchState job or the object states package.

Use the baseApiUrl from the login response as the base URL for one of the following URIs:

• To receive status of a fetchState job, use one of the following URIs:


/public/core/v3/fetchState/<id>
/public/core/v3/fetchState/<id>?expand=objects
• To receive a ZIP stream of the object states package, use the following URI:
/public/core/v3/fetchState/<id>/package
folders POST

Version 3 resource.

Creates a folder in the Default project.

Use the baseApiUrl from the login response as the base URL in the following URI:
/public/core/v3/folders
folders PATCH

Version 3 resource.

Updates a folder that's in the Default project.

Use the baseApiUrl from the login response as the base URL in the following URI:
/public/core/v3/folders/<folder ID>

Platform resource quick reference 587


Note: To create or update a folder that is not in the Default project and to delete a folder, use the
projects resource.

import POST

Version 3 resource.

Uploads an import package or starts an import job.

Use the baseApiUrl from the login response as the base URL for one of the following URIs:

• To upload an import package, use the following URI:


/public/core/v3/import/package
For Content-Type, use multipart/form-data.
• To specify details for an import job and start the job, use the following URI:
/public/core/v3/import/<id>
import GET

Version 3 resource.

Returns status of an import job.

Use the baseApiUrl from the login response as the base URL for one of the following URIs:

• To receive status of an import job, use one of the following URIs:


/public/core/v3/import/<id>
/public/core/v3/import/<id>?expand=objects
• To download the import job log, use the following URI:
/public/core/v3/import/<id>/log
job POST

Version 2 resource.

Starts or stops a task and optionally provides job status.

Use the serverUrl from the login response as the base URL for one of the following URIs:

• To start a task, use the following URI:


/api/v2/job
• To stop a task, use the following URI:
/api/v2/job/stop
Do not use this resource for a file ingestion task. Instead, use the file ingestion and replication job
resource. For more information, see “Jobs” on page 488.

key GET

Version 3 resource.
Returns key rotation interval details for an organization.

Use the baseApiUrl from the login response as the base URL in the following URI:
/public/core/v3/key/rotationSettings
key PATCH

Version 3 resource.

Changes the key rotation interval for an organization.

Use the baseApiUrl from the login response as the base URL in the following URI:
/public/core/v3/key/rotationSettings

588 Chapter 10: REST API resource quick references


license GET

Version 3 resource.

Returns the license details for the organization that you are logged in to or a specified sub-organization.

Use the baseApiUrl from the login response as the base URL in the following URI:
/public/core/v3/license/org/<id>
license PUT

Version 3 resource.

Updates license information for a sub-organization.

Use the baseApiUrl from the login response as the base URL in the following URI:
/public/core/v3/license/org/<id>
Use the orgLicenseAssignment object to update license information.

loadState POST

Version 3 resource.

Uploads an object states package ZIP file or loads the object states.

Use the baseApiUrl from the login response as the base URL for one of the following URIs:

• To upload an object states package, use the following URI:


/public/core/v3/loadState/package
For Content-Type, use multipart/form-data.
• To specify details for a loadState job and start the job, use the following URI:
/public/core/v3/loadState/<id>
loadState GET

Version 3 resource.

Returns status of a loadState job.

Use the baseApiUrl from the login response as the base URL and include the job ID in one of the
following URIs:
/public/core/v3/loadState/<id>
/public/core/v3/import/<id>?expand=objects
login POST

Version 3 resource.

Logs into an organization and returns a session ID that you use for API calls that you make during the
session.

Use the following URL:


[Link] provider>-<region>.[Link]/saas/public/core/v3/login
For more information about the cloud provider and region, see “Login” on page 167.

Don't include INFA-SESSION-ID in the request header.

Use a login object and include the following fields: username, password.

logout POST

Version 3 resource.

Logs out of an organization and ends the REST API session included in the request header.

Platform resource quick reference 589


Use the same URL used for the login POST except for the API name. Use the following URI:
[Link] provider>-<region>.[Link]/saas/public/core/v3/logout
login POST
Version 2 resource.
Logs into an organization and returns a session ID that you use for API calls that you make during the
session.

To log in with your Informatica Intelligent Cloud Services account, use the following URL:
[Link] provider>-<region>.[Link]/ma/api/v2/user/login
For more information about the cloud provider and region, see “Logging in” on page 53.

Don't include icSessionId in the request header.

Use a login object and include the following fields: username, password.

loginSAML POST

Version 2 resource.

For SAML single sign-on users, logs into an organization and returns a session ID that you can use for
other API calls.

To log in to an organization, use the following URL:


[Link] provider>-<region>.[Link]/ma/api/v2/user/loginSaml
For more information about the cloud provider and region, see “Logging in” on page 53.

Don't include icSessionId in the request header.

Include the following required attributes in the login object: orgId, samlToken.

loginSf POST

Version 2 resource.

Logs into an organization using Salesforce credentials and returns a session ID that you can use for
other API calls.

To log in to an organization, use the following URL:


[Link] provider>-<region>.[Link]/ma/api/v2/user/loginSf
For more information about the cloud provider and region, see “Logging in” on page 53.

Don't include icSessionId in the request header.

Include the following required attributes in the login object: sfSessionId, sfServerUrl.

logout POST

Version 2 resource.

Logs out of an organization and ends the REST API session included in the request header.

Use the serverUrl from the login response as the base URL for the following URI:
/api/v2/user/logout
logoutall POST

Version 2 resource.

Logs out of an organization and ends all version 2 REST API sessions for the organization.

Use the following URL:


[Link] provider>-<region>.[Link]/ma/api/v2/user/logoutall

590 Chapter 10: REST API resource quick references


Use a logout object to define attributes. Include the following required attributes: username, password.

Don't include icSessionId in the request header.

lookup POST

Version 3 resource.

Looks up an object's ID, name, path, or type attributes.

Use the baseApiUrl from the login response as the base URL for the following URI:
/public/core/v3/lookup
objects GET
Version 3 resource.

Returns a list of an organization's assets based on query parameters and returns a list of object
dependencies for a specified asset. Also returns permission details for an organization's assets,
projects, and folders, and the access rights you have for an object.

Use the baseApiUrl from the login response as the base URL for one of the following URIs:

• To get a list of an organization's assets, use the following URI:


/public/core/v3/objects?<parameters>
• To get a list of object dependencies for an asset, use the following URI:
/public/core/v3/objects/<id>/references?<parameters>
• To get the details for a particular ACL, use the following URI:
/public/core/v3/objects/<id>/permissions/<ACL ID>
• To get the details for all permissions on an object, use the following URI:
/public/core/v3/objects/<id>/permissions
• To get the access rights that the logged-in user has for an object, use the following URI:
/public/core/v3/objects/<id>/permissions/checkAccess
• To find out if you can create a particular type of asset in a project or folder, use the following URI:
/public/core/v3/objects/<id>/permissions/checkAccess?type=<type>
objects POST

Version 3 resource.

Creates or updates an access control list (ACL). ACLs define user or user group permissions to assets,
folders, and projects.

Use the baseApiUrl from the login response as the base URL for one of the following URIs:

• To create an ACL for an object, use the following URI:


/public/core/v3/objects/<id>/permissions
• To update an ACL for an object, use the following URI:
/public/core/v3/objects/<id>/permissions/<ACL ID>
objects DELETE

Version 3 resource.

Deletes a custom role.

Use the baseApiUrl from the login response as the base URL one of the following URIs:

• To delete the permissions that a user or user group has for an object, use the following URI:
/public/core/v3/objects/<id>/permissions/<ACL ID>

Platform resource quick reference 591


• To delete all of the permissions configured for an object, use the following URI:
/public/core/v3/objects/<id>/permissions
org GET

Version 2 resource.

Returns the details of your Informatica Intelligent Cloud Services organization or a related sub-
organization.

Use the serverUrl from the login response as the base URL for one of the following URIs:
/api/v2/org/<id>
/api/v2/org/name/<name>
org POST

Version 2 resource.

Updates the details of an Informatica Intelligent Cloud Services organization or a related sub-
organization.

Use the serverUrl from the login response as the base URL for the following URI:
/api/v2/org/<id>
Use an org object to define attributes.

org DELETE

Version 2 resource.

Deletes a related sub-organization.

Use the serverUrl from the login response as the base URL for the following URI:
/api/v2/org/<id>
Orgs GET

Version 3 resource.

Returns a list of trusted IP address ranges for an Informatica Intelligent Cloud Services organization or
sub-organization.

Use the baseApiUrl from the login response as the base URL for one of the following URI:
/public/core/v3/Orgs/<orgId>/TrustedIP
Orgs PUT

Version 3 resource.

Enables or disables trusted IP ranges and adds values of trusted IP ranges for an Informatica Intelligent
Cloud Services organization or sub-organization. Also creates or removes mappings between SAML
groups and roles and Informatica Intelligent Cloud Services roles.

Use the baseApiUrl from the login response as the base URL for one of the following URIs:

• To enable, disable, or add trusted IP ranges, use the following URI:


/public/core/v3/Orgs/<orgId>/TrustedIP
• To add a mapping between SAML groups and a Informatica Intelligent Cloud Services role, use the
following URI:
/public/core/v3/Orgs/<organization ID>/addSamlGroupMappings
• To remove a mapping between SAML groups and a Informatica Intelligent Cloud Services role, use
the following URI:
/public/core/v3/Orgs/<organization ID>/removeSamlGroupMappings

592 Chapter 10: REST API resource quick references


• To add a mapping between SAML roles and aInformatica Intelligent Cloud Services role, use the
following URI:
/public/core/v3/Orgs/<organization ID>/addSamlRoleMappings
• To remove a mapping between SAML roles and a Informatica Intelligent Cloud Services role, use the
following URI:
/public/core/v3/Orgs/<organization ID>/removeSamlRoleMappings
privileges GET

Version 3 resource.
Returns a list of privileges that can be used in custom roles.

Use the baseApiUrl from the login response as the base URL for one of the following URIs:

• To get a list of enabled and default privileges, use the following URI:
/public/core/v3/privileges
• To get a complete list of enabled, disabled, default, and unassigned privileges, use the following URI:
/public/core/v3/privileges?<parameters>
projects POST

Version 3 resource.

Creates a project. Also creates a folder in a project other than the Default project.

Use the baseApiUrl from the login response as the base URL in one of the following URIs:

• To create a project, use the following URI:


/public/core/v3/projects
• To create a folder in a project other than the Default project, use one of the followng URIs:
/public/core/v3/projects/<id>/folders
/public/core/v3/projects/name/<name>/folders
projects PATCH

Version 3 resource.

Updates a project. Also updates a folder that's in a project other than the Default project.

Use the baseApiUrl from the login response as the base URL in one of the following URIs:

• To update a project, use one of the following URIs:


/public/core/v3/projects/<id>
/public/core/v3/projects/name/<name>
• To update a folder that's in a project other than the Default project, use one of the following URIs:
/public/core/v3/projects/<id>/folders/<id>
/public/core/v3/projects/name/<name>/folders/name/<name>
Note: To create or update a folder that's in the Default project, use the folders resource.

projects DELETE

Version 3 resource.

Deletes a project or folder.

Use the baseApiUrl from the login response as the base URL in one of the following URIs:

• To delete a project, use one of the following URIs:


/public/core/v3/projects/<id>
/public/core/v3/projects/name/<name>

Platform resource quick reference 593


• To delete a folder that's in the Default project, use the following URI:
/public/core/v3/projects/<folder ID>
• To delete a folder that's in a project other than the Default project, use one of the following URIs:
/public/core/v3/projects/<id>/folders/<id>
/public/core/v3/projects/name/<name>/folders/name/<name>
pull GET

Version 3 resource.

Note: The pull GET request that was used to get the status of a pull operation is deprecated. Use a
sourceControlAction GET request to receive the status for a source control operation.

pull POST

Version 3 resource.

Retrieves objects from your repository and loads them into your organization.

Use the baseApiUrl from the login response as the base URL for the following URI:
/public/core/v3/pull
pullByCommitHash POST

Version 3 resource.

Retrieves objects from your repository that were modified by a particular commit and loads them into
your organization.

Use the baseApiUrl from the login response as the base URL for the following URI:
/public/core/v3/pullByCommitHash
register POST

Version 2.

Creates an Informatica Intelligent Cloud Services sub-organization based on an Informatica Intelligent


Cloud Services user account. For Informatica Intelligent Cloud Services partners only.

Use the serverUrl from the login response as the base URL for the following URI:
/api/v2/user/register
Use a registration object to define attributes.

ResetPassword POST

Version 3 resource.

Resets the password for the user who initiated the session.

Use the baseApiUrl from the login response as the base URL for the following URI:
/public/core/v3/Users/ResetPassword
roles GET

Version 3 resource.

Returns details for an organization's roles.

Use the baseApiUrl from the login response as the base URL for the following URI:
/public/core/v3/roles
roles POST

Version 3 resource.

Creates a custom role.

594 Chapter 10: REST API resource quick references


Use the baseApiUrl from the login response as the base URL in the following URI:
/public/core/v3/roles
roles PUT
Version 3 resource.
Updates a custom role.

Use the baseApiUrl from the login response as the base URL in one of the following URIs:

• To add privileges to a custom role, use one of the following URIs:


/public/core/v3/roles/<id>/addPrivileges
/public/core/v3/roles/name/<name>/addPrivileges
• To remove privileges from a custom role, use one of the following URIs:
/public/core/v3/roles/<id>/removePrivileges
/public/core/v3/roles/name/<name>/removePrivileges
roles DELETE

Version 3 resource.

Deletes a custom role.

Use the baseApiUrl from the login response as the base URL for the following URI:
/public/core/v3/roles/<id>
runtimeEnvironment GET

Version 2 resource.

Returns the details of the runtime environments used by the organization. You can also get details about
Secure Agent service properties for Secure Agent groups.

Use the serverUrl from the login response as the base URL for one of the following URIs:

• To get the details of the runtime environments used by the organization, use one of the following
URIs:
/api/v2/runtimeEnvironment
/api/v2/runtimeEnvironment/<id>
/api/v2/runtimeEnvironment/<name>
• To find out which services and connectors are enabled for a Secure Agent group, use the following
URI:
/api/v2/runtimeEnvironment/<id>/selections
• To get the enabled and disabled services and connectors for a Secure Agent group, use the following
URI:
/api/v2/runtimeEnvironment/<id>/selections/details
• To get a list of editable Secure Agent service properties that you can configure for a Secure Agent
group, use the following URI:
/api/v2/runtimeEnvironment/<id>/configs/details/<platform>
• To get a list of group-level properties that have overridden Secure Agent service default property
settings, use the following URI:
/api/v2/runtimeEnvironment/<id>/configs/<platform>
runtimeEnvironment POST

Version 2 resource.

Creates or updates a Secure Agent group.

Platform resource quick reference 595


Use the serverUrl from the login response as the base URL for one of the following URIs:
/api/v2/runtimeEnvironment
/api/v2/runtimeEnvironment/<id>
runtimeEnvironment PUT
Version 2 resource.

Enables services and connectors and sets Secure Agent service properties for a Secure Agent group.

Use the serverUrl from the login response as the base URL for one of the following URIs:

• To enable services and connectors for a Secure Agent group, use the following URI:
/api/v2/runtimeEnvironment/<id>/selections
• To configure Secure Agent service properties for a Secure Agent group, use the following URI:
/api/v2/runtimeEnvironment/<id>/configs/<platform>
runtimeEnvironment DELETE

Version 2 resource.

Deletes a Secure Agent group or deletes Secure Agent service property settings for a Secure Agent
group.

Use the serverUrl from the login response as the base URL for one of the following URIs:

• To delete a Secure Agent group, use the following URI:


/api/v2/runtimeEnvironment/<id>
• To delete property settings for a Secure Agent group, use the following URI:
/api/v2/runtimeEnvironment/<id>/configs
schedule GET

Version 3 resource.

Returns the details of a schedule or of all schedules in the organization.

Use the baseApiUrl from the login response as the base URL for one of the following URIs:

• To get the details for all schedules in the organization, use the following URI:
/public/core/v3/schedule
• To get the details for a specific schedule, use one of the following URIs:
/public/core/v3/schedule/<id>
/public/core/v3/schedule/<parameter>
schedule POST

Version 3 resource.

Creates a schedule.

Use the baseApiUrl from the login response as the base URL in the following URI:
/public/core/v3/schedule
schedule PATCH

Version 3 resource.

Updates a schedule.

Use the baseApiUrl from the login response as the base URL in the following URI:
/public/core/v3/schedule/<id>
schedule DELETE

Version 3 resource.

596 Chapter 10: REST API resource quick references


Deletes a schedule.

Use the baseApiUrl from the login response as the base URL in the following URI:
/public/core/v3/schedule/<id>
schedule GET

Version 2 resource.

Returns the details of a schedule or of all schedules in the organization.

Use the serverUrl from the login response as the base URL for one of the following URIs:
/api/v2/schedule/<id>
/api/v2/schedule/name/<name>
schedule POST

Version 2 resource.

Creates or updates a schedule.

Use the serverUrl from the login response as the base URL for the following URI:
/api/v2/schedule/<id>
Note: To leverage full scheduling capabilities, use the version 3 schedule resource instead of the version
2 schedule resource.

schedule DELETE

Version 2 resource.

Deletes a schedule.

Use the serverUrl from the login response as the base URL for the following URI:
/api/v2/schedule/<id>
securityLog GET

Version 3 resource.

Returns security log entries that include events such as login actions and permission changes.

Use the baseApiUrl from the login response as the base URL for the following URI:
/public/core/v3/securityLog
serverTime GET

Version 2 resource.

Returns the local time for the Informatica Intelligent Cloud Services server.

Use the serverUrl from the login response as the base URL for the following URI:
/api/v2/server/serverTime
sourceControlAction GET

Version 3 resource.

Returns the status of a source control operation for the specified object.

Use the baseApiUrl from the login response as the base URL for one of the following URIs:

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

Platform resource quick reference 597


TagObjects POST

Version 3 resource.

Assigns tags to an asset.

Use the baseApiUrl from the login response as the base URL for the following URI:
/public/core/v3/TagObjects
task GET

Version 2 resource.

Returns a list of tasks of the specified type.


Use the serverUrl from the login response as the base URL for the following URI:
/api/v2/task?type=<type>
undoCheckout POST

Version 3 resource.

Reverses a checkout and reverts the object to its original state.

Use the baseApiUrl from the login response as the base URL for the following URI:
/public/core/v3/undoCheckout
UntagObjects POST

Version 3 resource.

Removes tags that were assigned to an asset.

Use the baseApiUrl from the login response as the base URL for the following URI:
/public/core/v3/UntagObjects
user GET

Version 2 resource.

Returns the details of an Informatica Intelligent Cloud Services user account or of all user accounts in
the organization.

Use the serverUrl from the login response as the base URL for one of the following URIs:
/api/v2/user/<id>
/api/v2/user/name/<name>
Note: To leverage full user management capabilities, use the version 3 users resource instead of the
version 2 user resource. The version 3 users resource supports users, user groups, and roles. The
version 2 user resource does not support user groups and roles, and a GET request might not return all
users in the organization.

user POST

Version 2 resource.

Creates or updates an Informatica Intelligent Cloud Services user account.

Use the serverUrl from the login response as the base URL for the following URI:
/api/v2/user/<id>
Note: We recommend that you use the version 3 users resource, instead of using the version 2 user
resource. The version 2 user resource doesn't support user groups or user roles.

user DELETE

Version 2 resource.

598 Chapter 10: REST API resource quick references


Deletes an Informatica Intelligent Cloud Services user account.

Use the serverUrl from the login response as the base URL for the following URI:
/api/v2/user/<id>
userGroups GET

Version 3 resource.

Returns details for all user groups in the organization or the details for a particular user group.

Use the baseApiUrl from the login response as the base URL for the following URI:
/public/core/v3/userGroups
userGroups POST

Version 3 resource.

Creates an Informatica Intelligent Cloud Services user group.

Use the baseApiUrl from the login response as the base URL for one of the following URIs:
/public/core/v3/userGroups
/public/core/v3/userGroups/<id>
userGroups PUT

Version 3 resource.

Updates an Informatica Intelligent Cloud Services user group.

Use the baseApiUrl from the login response as the base URL for one of the following URIs:

• To add a role to a user group, use one of the following URIs:


/public/core/v3/userGroups/<id>/addRoles
/public/core/v3/userGroups/name/<name>/addRoles
• To remove a role from a user group, use one of the following URIs:
/public/core/v3/userGroups/<id>/removeRoles
/public/core/v3/userGroups/name/<name>/removeRoles
• To add a user to a user group, use one of the following URIs:
/public/core/v3/userGroups/<id>/addUsers
/public/core/v3/users/name/<name>/addGroups
• To remove a user from a user group, use one of the following URIs:
/public/core/v3/userGroups/<id>/removeUsers
/public/core/v3/users/name/<name>/removeGroups
userGroups DELETE

Version 3 resource.

Deletes an Informatica Intelligent Cloud Services user group.

Use the baseApiUrl from the login response as the base URL for the following URI:
/public/core/v3/userGroups/<id>
users GET

Version 3 resource.

Returns details for all users in the organization or the details for a particular user.

Use the baseApiUrl from the login response as the base URL for one of the following URIs:
/public/core/v3/users
/public/core/v3/users?<parameter>

Platform resource quick reference 599


users POST

Version 3 resource.

Creates an Informatica Intelligent Cloud Services user account.

Use the baseApiUrl from the login response as the base URL for the following URI:
/public/core/v3/users
users PUT

Version 3 resource.

Updates role and user group assignments for a user.


Use the baseApiUrl from the login response as the base URL for one of the following URIs:

• To assign a role to a user, use one of the following URIs:


/public/core/v3/users/<id>/addRoles
/public/core/v3/users/name/<name>/addRoles
• To remove a role from a user, use one of the following URIs:
/public/core/v3/users/<id>/removeRoles
/public/core/v3/users/name/<name>/removeRoles
• To assign a user group to a user, use one of the following URIs:
/public/core/v3/users/<id>/addGroups
/public/core/v3/users/name/<name>/addRGroups
• To remove a user group assignment, use one of the following URIs:
/public/core/v3/users/<id>/removeGroups
/public/core/v3/users/name/<name>/removeGroups
users DELETE

Version 3 resource.

Deletes an Informatica Intelligent Cloud Services user account.

Use the baseApiUrl from the login response as the base URL for the following URI:
/public/core/v3/users/<id>

Data Integration resource quick reference


The following list contains the syntax and a brief description of the Data Integration resources:

CodeTask POST

disnext version 1 resource.

Creates or starts a code task.

Use the server URL from the login response as the base URL for one of the following URIs:

• To create a code task, use the following URI:


/disnext/api/v1/CodeTask
• To start a code task, use the following URI:
/disnext/api/v1/CodeTask/Start
CodeTask GET

disnext version 1 resource.

600 Chapter 10: REST API resource quick references


Gets the details or the status of a code task.

Use the server URL from the login response as the base URL for one of the following URIs:

• To get the details of a code task, use the following URI:


/disnext/api/v1/CodeTask/<codeTaskId>
• To get the status of a code task, use the following URI:
/disnext/api/v1/CodeTask/JobStatus/<jobId>
CodeTask PUT

disnext version 1 resource.


Cancels a code task job.

Use the server URL from the login response as the base URL for the following URI:
/disnext/api/v1/CodeTask/Cancel
connection GET

Version 2 resource.

Returns information related to connections in the organization.

Use the serverUrl from the login response as the base URL.

You can request the following information:

• Connection details. To request the details of a connection or of all connections in the organization,
use one of the following URIs:
/api/v2/connection
/api/v2/connection/<id>
/api/v2/connection/name/<name>
• Connection objects. To request a list of objects that you can use as a source or target for the
specified connection, use one of the following URIs:
/api/v2/connection/source/<id>
/api/v2/connection/target/<id>
• Connection details by runtime environment. To request a list of all connections in the organization
that use a particular runtime environment, use the following URI:
/api/v2/connection/<runtimeEnvironmentId>
• Connections by Secure Agent and connection type. To request a list of connections by Secure Agent
ID and connection type, use the following URI:
/api/v2/connection/search?agentId=<id>&uiType=<uiType>
• Metadata details. To request metadata details for a connection, use the following URI:
/api/v2/connection/<source or target>/<id>/metadata
• Test connection. To test a connection, use the following URI:
/api/v2/connection/test/<id>
connection POST

Version 2 resource.

Creates or updates a connection.

Use the serverUrl from the login response as the base URL for the following URI:
/api/v2/connection/<id>
Use a connection object to define attributes.

connection DELETE

Version 2 resource.

Data Integration resource quick reference 601


Deletes a connection.

Use the serverUrl from the login response as the base URL for the following URI:
/api/v2/connection/<id>
connector GET

Version 2 resource.

Returns a list of connectors available to the organization or attribute values for a specified connector
type.

Use the serverUrl from the login response as the base URL for the following URI:
/api/v2/connector
/api/v2/connector/metadata?connectorType=<type>
customFunc GET

Version 2 resource.

Returns the details of a PowerCenter mapplet or of all PowerCenter mapplets in the organization.

Use the serverUrl from the login response as the base URL for one of the following URIs:
/api/v2/customFunc
/api/v2/customFunc/<id>
/api/v2/customFunc/name/<name>
customFunc POST

Version 2 resource.

Uploads a PowerCenter mapplet.

Use the serverUrl from the login response as the base URL for the following URI:
/api/v2/customFunc/<id>
Define attributes in the request body and encode the request body as multipart/form-data. Include the
following required attributes: file, name.

customFunc DELETE

Version 2 resource.

Deletes a PowerCenter mapplet.

Use the serverUrl from the login response as the base URL for the following URI:
/api/v2/customFunc/<id>
dataPreview GET

Version 2 resource.

Use to preview data during mapping design. Specify the number of rows to return of source or target
data for a specified object.

Use the serverUrl from the login response as the base URL for one of the following URIs:
/api/v2/connection/<source or target>/<connection ID>/datapreview/<object name>
/api/v2/connection/<source or target>/name/<name>/datapreview/<object name>
dynamictask GET

Batch-mapping version 1 resource.

Returns the details of a dynamic mapping task.

Use the serverUrl from the login response as the base URL for the following URI:
/batch-mapping/api/v1/dynamictask/<id>

602 Chapter 10: REST API resource quick references


dynamictask POST

Batch-mapping version 1 resource.

Creates a dynamic mapping task.

Use the serverUrl from the login response as the base URL for the following URI:
/batch-mapping/api/v1/dynamictask
dynamictask PUT

Batch-mapping version 1 resource.

Updates a dynamic mapping task.


Use the serverUrl from the login response as the base URL for the following URI:
/batch-mapping/api/v1/dynamictask/<id>
dynamictask DELETE

Batch-mapping version 1 resource.

Deletes a dynamic mapping task.

Use the serverUrl from the login response as the base URL for the following URI:
/batch-mapping/api/v1/dynamictask/<id>
expressionValidation POST

Version 2 resource.

Validates expressions and returns a success or error response.

Use the serverUrl from the login response as the base URL for the following URI:
/api/v2/expression/validate
field GET

Version 2 resource.

Returns the field details for a source or target object.

Use the serverUrl from the login response as the base URL for one of the following URIs:
/api/v2/connection/<source or target>/<id>/field/<name>
/api/v2/connection/<source or target>/name/<name>/field/<name>
/api/v2/connection/<source or target>/<id>/fields?objectName=<name>
field POST

Version 2 resource.

Updates the flat file attributes for a source or target object.

Use the serverUrl from the login response as the base URL for one of the following URIs:
/api/v2/connection/<source or target>/<id>/field/<name>
The flat file attributes provided in the request override the default attributes specified in the connection
object.

filelisteners GET

mftsaas version 1 resource.

Gets file listener details and job status.

To get file listener details, use the serverUrl from the login response as the base URL for the following
URI:
api/v1/filelisteners/<id>

Data Integration resource quick reference 603


To get the status of a file listener job, use the serverUrl from the login response as the base URL for the
following URI:
mftsaas/api/v1/filelisteners/job/<id>/status
filelisteners POST

mftsaas version 1 resource.

Creates a file listener.

To create a file listener, use the serverUrl from the login response as the base URL for the following URI:
api/v1/filelisteners
To start a file listener, use the serverUrl from the login response as the base URL for the following URI:
mftsaas/api/v1/filelisteners/<id>/start
To stop a file listener , use the serverUrl from the login response as the base URL for the following URI:
mftsaas/api/v1/filelisteners/<id>/stop
filelisteners PUT

mftsaas version 1 resource.

Updates an existing file listener.

Use the serverUrl from the login response as the base URL for the following URI:
mftsaas/api/v1/filelisteners/<id>
filelisteners DELETE

mftsaas version 1 resource.

Deletes an existing file listener.

Use the serverUrl from the login response as the base URL for the following URI:
mftsaas/api/v1/filelisteners/<id>
fwConfig GET

Version 2 resource.

Returns the details of a fixed-width format.

Use the serverUrl from the login response as the base URL for one of the following URIs:
/api/v2/fwConfig/<id>
/api/v2/fwConfig/name/<name>
fwConfig POST

Version 2 resource.

Uploads a fixed-width format.

Use the serverUrl from the login response as the base URL for the following URI:
/api/v2/fwConfig/<id>
fwConfig DELETE

Version 2 resource.

Delete a fixed-width format.

Use the serverUrl from the login response as the base URL for the following URI:
/api/v2/fwConfig/<id>

604 Chapter 10: REST API resource quick references


mapping GET

Version 2 resource.

Returns the details of a mapping or of all mappings in the organization. Can also return an image of a
mapping.

Use the serverUrl from the login response as the base URL for one of the following URIs:
/api/v2/mapping/<id>
/api/v2/mapping/name/<name>
/api/v2/mapping/search?name=<name>
/api/v2/mapping/<id>/image?deployed=<true|false>
mttask GET

Version 2 resource.

Returns the details of a mapping task.

Use the serverUrl from the login response as the base URL for one of the following URIs:
/api/v2/mttask/<id>
/api/v2/mttask/frs/<federated task ID>
/api/v2/mttask/name/<name>
mttask POST

Version 2 resource.
Creates or updates a mapping task.

Use the serverUrl from the login response as the base URL for one of the following URIs:
/api/v2/mttask/<id>
/api/v2/mttask/frs/<federated task ID>
Use an mttask object to define attributes.

mttask DELETE

Version 2 resource.

Deletes a mapping task.

Use the serverUrl from the login response as the base URL for the following URI:
/api/v2/mttask/<id>
sendfiles POST

AS2 file transfer version 1 API.

Uses an AS2 connection to transfer files to a remote AS2 server.

Use the serverUrl from the login response as the base URL for the following URI:
mftsaas/api/v1/sendfiles/<connection name>
workflow GET

Version 2 resource.

Returns the details of a linear taskflow or of all linear taskflows in the organization.

Use the serverUrl from the login response as the base URL for one of the following URIs:
/api/v2/workflow/<id>
/api/v2/workflow/name/<name>
/api/v2/workflow/?simpleMode=true
workflow POST

Version 2 resource.

Data Integration resource quick reference 605


Creates or updates a linear taskflow.

Use the serverUrl from the login response as the base URL for the following URI:
/api/v2/workflow/<id>
Use a workflow object to define attributes.

workflow DELETE

Version 2 resource.

Deletes a linear taskflow.

Use the serverUrl from the login response as the base URL for the following URI:
/api/v2/workflow/<id>

606 Chapter 10: REST API resource quick references


Index

A compress
REST API resource 399
activityLog compress file transfer task 404
REST API resource 27 configuration
activityMonitor associating with runtime environment 122
REST API resource 37 creating 114
Advanced FTP V2 404 getting link details 121
agent connection
REST API resource 100 REST API resource 318
arguments connection attributes and user interface fields 486
RunAJob utility 564 connections
AS2 server available connectors for an organization 340
sendfiles resource 394 connector 340
asset migration connector type data types 485
exporting 137 connectors
importing 151 available for an organization 318
assets custom roles
dependencies 211 adding and removing privileges 230
finding 205 creating 229
in an organization 205 deleting 231
auditlog customFunc
REST API resource 40 REST API resource 466

B D
base URL 15 Data Integration community
base URLs URL 11
difference for REST API versions 14 dataPreview
body configuration REST API resource 342
REST API 16 date/time format
bundleObject REST API 20
REST API resource 44 decompress
bundleObjectLicense REST API resource 400
REST API resource 46, 47 decrypt
REST API resource 403

C E
ChangePassword resource 219
changing passwords 219 elastic runtime environment
checkin resource 276 getting configuration details 112
checkout resource 268 elastic runtime environments 111
Cloud Application Integration community encrypt
URL 11 REST API resource 401, 408
Cloud Developer community error logs 27
URL 11 error object
ClusterConfig resource REST API 24
updating configuration 116 export
CodeTask REST API v3 resource 137
REST API 308 expressionValidation
commit resource REST API resource 484
getting commit details 279
commitHistory resource 282
common resources 13
compare resource 285

607
F key rotation (continued)
REST API v3 resource 163
fetchState
REST API v3 resource 192
field
REST API resource 368
L
file ingestion and replication tasks license
REST API 501, 505, 514 REST API v3 resource 165
file ingestionand replication tasks linear taskflows
REST API 511 workflow resource 432
file listener 374 loadState
file transfer REST API v3 resource 199
monitoring using REST API 398 log file detail
folders resource RunAJob utility 561
creating folders 224 logging in
deleting folders 226 using Salesforce credentials 65
updating folders 225 using V2 login resource 53
format using V3 login resource 167
difference for REST API versions 14 login
fwConfig REST API resource 53, 167
REST API resource 416 loginSaml
REST API resource 57, 62
loginSf

G REST API resource 65


logout
guidelines REST API resource 68
REST API 24 REST API v3 resource 170
logoutall
REST API resource 69

H lookup
REST API v3 resource 171
h2h lstatus resource
REST API resource 421 taskflows 474
header configuration
REST API 15
M
I maintenance outages 12
managing 252
identity providers mapping
JWT access tokens 145 REST API resource 437
images metering
getting new token 131 meter IDs 190
listing 119 REST API v3 resource 175
revoking a token 132 migrate
import REST API resource 338
REST API v3 resource 151 migrating assets 135
Informatica Global Customer Support migrating objects
contact information 12 exporting 137
Informatica Intelligent Cloud Services importing 151
web site 11 mttask
IP addresses 161 REST API resource 441

J O
job OAuth
REST API resource 48 identity providers for JWT 145
job status object configuration
job resource 48 REST API, in XML and JSON 16
RunAJob utility 561 object dependencies 211
object IDs
retrieving for the REST API 21

K object migration
exporting 137
key rotation importing 151
changing key rotation intervals 164 object permissions
getting key rotation interval settings 163 deleting 216

608 Index
object state synchronization responses
fetchState resource 192 REST API 23
loading states 199 REST API
objects activityLog resource 27
checking permissions 218 activityMonitor resource 37
creating ACL permissions 214 agent resource 100
getting permission details 217 agent service 254
REST API v3 resource 205 auditlog resource to view audit entries 40
updating permissions 215 body configuration 16
objects resource bundleObject resource to view bundle details 44
permissions 213 bundleObjectLicense resource 46, 47
org codes 573
REST API resource 69 CodeTask 308
Orgs resource connection resource 318
adding SAML group mappings 231 copy streaming ingestion task 518
adding SAML role mappings 233 create file ingestion and replication tasks 505
getting SAML group mapping details 235 customFunc resource for PowerCenter mapplets 466
getting SAML role mapping details 237 dataPreview resource 342
IP addresses 161 date/time values 20
mapping roles with SAML groups and roles 231 delete file ingestion and replication tasks 514
removing SAML group mappings 234 deploy streaming ingestion task 515
removing SAML role mappings 235 details of a streaming ingestion jobs 548
documentation conventions 25
error object 24

P expressionValidation 484
field resource 368
partial updates 19 file ingestion and replication tasks 501
passwords fwConfig resource 416
changing 219 guidelines 24
resetting 220 h2h 421
permissions header configuration 15
checking for current user 218 history 556
creating for objects 213 history of a streaming ingestion job 556
deleting 216 job resource 48
platform REST API resources 13 JSON example 18
PODs 14 list of available streaming ingestion jobs 550
privileges resource 220 login resource 53, 167
projects resource loginSaml 57, 62
creating projects 222 loginSf resource 65
deleting projects 224 logout resource 68
updating projects 223 logoutall resource 69
pull resource mapping resource for working with mappings 437
pulling objects 258 migrate resource 338
pullByCommitHash resource MIJobs 548, 550
pulling objects 264 mttask resource to work with mapping tasks 441
org resource 69
quick reference for Data Integration 600

Q quick reference for platform 584


receivefiles resource 396
quick reference register resource 74
Data Integration resources 600 responses 23
platform resources 584 retrieving and using object IDs 21
return lists 17
runtimeEnvironment resource 80

R schedule resource 92
sendfiles resource 394
receivefiles serverTime resource 105
REST API resource 396 start a streaming ingestion task 516
register state codes 573, 574
REST API resource 74 statistics 554
remote statistics of a streaming ingestion job 554
REST API resource 404 status 552
remote file transfer task status of a streaming ingestion job 552
REST API resource 404 stop a streaming ingestion task 517, 535
removing tags 293 task resource to view task details 105
ResetPassword resource 220 time zone codes 581
resetting passwords 219, 220 undeploy a streaming ingestion task 516
update a streaming ingestion task 519

Index 609
REST API (continued) Secure Agent groups
update file ingestion and replication tasks 511 creating 83
update streaming ingestion task 519–521, 523, 525, 527–529, 531, default property settings 89
533, 535, 537, 538, 540, 541, 543–545, 547 deleting 83
user resource 106 selecting services and connectors 86
versions 14 updating 83
workflow resource for linear taskflows 432 Secure Agent service
XML example 18 starting 254
REST API resources stopping 254
types of 13 securityLog
REST API v3 REST API v3 resource 255
convert resource 471 sendfiles
export resource 137 REST API resource 394
fetchState resource 192 serverTime
import resource 151 REST API resource 105
key resource 163 serverURL 14
license resource 165 service REST API resources 13
loadState resource 199 session IDs
logout resource 170 difference for REST API versions 14
lookup resource 171 session logs 27
objects resource 205 session status 21
schedule resource 239 source control
securityLog 255 checking in objects 276
return list configuration checking out objects 268
REST API in XML and JSON 17 comparing object versions 285
roles getting commit details 279
adding to user groups 306 getting commit history 282
removing from user groups 306 pulling objects 258
updating role assignments 300 pulling objects for a commit hash 264
roles resource status 290
getting role details 227 undoing checkout 271
updating privileges 230 sourceControlAction resource 290
RunAJob utility state codes
arguments 564 REST API 573, 574
Java heap sizes 562 state synchronization 192
job status 561 status
job status codes 566 Informatica Intelligent Cloud Services 12
log file detail 561 streaming ingestion and replication tasks
login properties 559 REST API 515–517
overview 558 streaming ingestion jobs
running jobs 563 REST API 550, 552, 554, 556
setup 559 streaming ingestion tasks
task folder 564 REST API 518–521, 523, 525, 527–529, 531, 533, 535, 537, 538, 540,
runtime environments 79 541, 543–545, 547
runtimeEnvironment synchronization tasks
creating Secure Agent groups 83 converting to data transfer tasks 471
deleting Secure Agent groups 83 testing compatibility with data transfer tasks 471
requesting details 80 synchronizing object states
REST API resource 80 exporting states 192
selecting services and connectors for Secure Agent groups 86 loading states 199
setting default property settings for Secure Agent groups 89 system status 12
updating Secure Agent groups 83

T
S TagObjects resource 293
SAML groups and roles tags
adding SAML group mappings 231 assigning to assets 293
adding SAML role mappings 233 removing from assets 293
getting SAML group mapping details 235 task
getting SAML role mapping details 237 REST API resource 105
removing SAML group mappings 234 time zone codes
removing SAML role mappings 235 REST API 581
schedule tokens
REST API resource 92 listing 134
REST API v3 resource 239 trust site
SCIM tokens 252 description 12

610 Index
@type users (continued)
use with JSON REST API 16 assigning object permissions 214
creating 298
deleting 298, 302

U getting user details 295


removing from user groups 306
undoCheckout resource 271 updating object permissions 215
UntagObjects resource 293 users resource
update modes 19 updating role assignments 300
upgrade notifications 12 updating user group assignments 301
user
REST API resource 106
user groups
assigning object permissions 214
V
creating 305 version control 258
deleting 307
getting user group details 303
updating object permissions 215
updating user group assignments 301
W
userGroup resource web site 11
updating user groups 306 workflow
userGroups resource 302 REST API resource 432
users
adding to user groups 306

Index 611

You might also like