Integrate Third-Party Solutions with Rampiva Automate

The material in this document is for informational purposes only. The products it describes are subject to change without prior notice, due to the manufacturer’s continuous development program. Rampiva makes no representations or warranties with respect to this document or with respect to the products described herein. Rampiva shall not be liable for any damages, losses, costs or expenses, direct, indirect or incidental, consequential or special, arising out of, or related to the use of this material or the products described herein.

Introduction

This article describes the high-level steps to take when integrating a third-party solution with Rampiva Automate and provides concrete examples of HTTP requests and responses for typical operations.

Rampiva Automate has a REST API, and the majority of endpoints require authentication. The preferred authentication method for consuming the REST API is an API Key. See https://rampiva.atlassian.net/wiki/spaces/KB/pages/1130921985 for instructions on how to create an API Key.

In general, consuming the Automate API involves three types of actions:

  1. Querying objects, for example to find a Library by name, or to monitor the status of a Job

  2. Creating objects, for example queueing up a new Job, or submitting a new Execution Profile

  3. Updating objects, for example stopping a Job, or changing the Engines which are members of a Resource Pool

The Rampiva Automate web interface is built on top of the API. Because of this, it can be useful to manually perform actions in the web interface and to monitor the endpoints called and the responses received in the browser network tab. Additionally, the API documentation is available at http://localhost/openapi, where localhost is the server where Automate is installed.

Prerequisites 


Instructions

A. Query Objects

1

Query all Jobs including their details.

Example request:

GET http://localhost/api/v1/users/jobs Authorization: Bearer 265fa20a-ba69-47a0-aab5-034fba50e062:fzMQKFhuOb63ydsOFmJJtExe6mttWFSr

Example response:

[ { "bootstrap": false, "clientId": "124ac055-0185-4d08-b1d2-ac402624d0b9", "clientName": "Citrus Foods", "clientReference": null, "confidential": false, "dataSetsMetadata": {}, "engineHasWarnings": false, "engineId": "60a4deb0-59bb-4278-a10c-cb466116dd85", "engineName": "E1", "error": null, "excludeUtilization": false, "executionProfileId": "c0261c37-5dc6-4ba6-81e0-78b009f41bf5", "executionProfileName": "Default Profile", "executionState": "RUNNING", "finishedDate": null, "hasWarnings": false, "id": "31efb10d-92b0-4d8b-ab97-95e6853c8473", "infos": [], "lastStateChangedDate": 1624271398730, "libraryId": "e7d9f2a1-a39a-40c4-91e1-8f3016fd2d29", "libraryWorkflowId": "aa41b670-215e-442b-9388-38afee6ee89a", "locked": false, "matterId": "cdab5497-574f-4e92-85a1-8f2c3bec47e8", "matterLock": false, "matterName": "Project Grapefruit", "matterReference": null, "modifiedBy": null, "name": "Project Grapefruit - Process Microsoft 365", "notes": "", "parameterLock": false, "percentageComplete": 12.5, "priority": "MEDIUM", "remoteWorkersSpec": { "workerBrokerIp": "192.168.15.254", "workerBrokerPort": 20871 }, "resourcePoolId": "ae812386-2466-4848-b0ae-ac00375ff4fd", "resourcePoolName": "Pool A", "resubmittedDate": 1624271398521, "runningOperationId": 0, "savedState": null, "scheduleId": null, "serverId": "665bda34-e34a-4fc8-8fb8-2a8bf6e4277c", "serverName": "S1", "sessionParameters": [ { "description": "", "friendlyName": "Ms Graph Tenant ID", "max": null, "min": null, "name": "{ms_graph_tenant_id}", "regex": "", "sensitive": false, "type": "TEXT", "value": "ff8e7829-9b41-418d-9018-dd7e864507b2" }, { "description": "", "friendlyName": "Ms Graph Client ID", "max": null, "min": null, "name": "{ms_graph_client_id}", "regex": "", "sensitive": false, "type": "TEXT", "value": "35eded2a-17f1-4550-ac9d-e15be7de9229" }, { "description": "", "friendlyName": "Ms Graph Start Date", "max": null, "min": null, "name": "{ms_graph_start_datetime}", "regex": "", "sensitive": false, "type": "DATE_TIME", "value": "20210101T000000" }, { "description": "", "friendlyName": "Ms Graph End Date", "max": null, "min": null, "name": "{ms_graph_end_datetime}", "regex": "", "sensitive": false, "type": "DATE_TIME", "value": "20211231T235959" }, { "description": "", "friendlyName": "Ms Graph Retrievals", "max": null, "min": null, "name": "{ms_graph_retrievals}", "regex": "TEAMS_CHANNELS, USERS_CHATS|USERS_EMAILS|SHAREPOINT|TEAMS_CHANNELS, TEAMS_CALENDARS, USERS_CHATS, USERS_CONTACTS, USERS_CALENDARS, USERS_EMAILS, ORG_CONTACTS, SHAREPOINT ", "sensitive": false, "type": "TEXT", "value": "USERS_EMAILS" }, { "description": "", "friendlyName": "Ms Graph Mailbox Retrievals", "max": null, "min": null, "name": "{ms_graph_mailbox_retrievals}", "regex": "MAILBOX|MAILBOX,ARCHIVE|MAILBOX,ARCHIVE,RECOVERABLE_ITEMS,ARCHIVE_RECOVERABLE_ITEMS|MAILBOX,ARCHIVE,PURGES,DELETIONS,RECOVERABLE_ITEMS,ARCHIVE_PURGES,ARCHIVE_DELETIONS,ARCHIVE_RECOVERABLE_ITEMS,PUBLIC_FOLDERS", "sensitive": false, "type": "TEXT", "value": "MAILBOX" }, { "description": "", "friendlyName": "Ms Graph User Principal Names (optional)", "max": null, "min": null, "name": "{ms_graph_user_principal_names}", "regex": "", "sensitive": false, "type": "TEXT", "value": "" } ], "sessionParametersKeyId": null, "startedDate": 1624271398735, "submittedBy": "jsmith", "submittedDate": 1624271398521, "userPermissions": [ "MODIFY", "SUBMIT_JOB", "DOWNLOAD_LOGS", "VIEW_NON_RECURSIVE", "EXCLUDE_METRICS", "CREATE", "VIEW_CONFIDENTIAL", "MODIFY_CHILDREN", "VIEW" ], "warnings": [], "workerAgentIds": [], "workflowName": null, "workflowXml": "<?xml version=\"1.0\" encoding=\"UTF-8\"?><workflow>....</workflow>\r\n" } ]
2

Query Jobs settings using filter by first setting the filter and then retrieving the results.

 

 

Example request to set the filter:

POST http://localhost/api/v1/scheduler/jobs/filter Authorization: Bearer 265fa20a-ba69-47a0-aab5-034fba50e062:fzMQKFhuOb63ydsOFmJJtExe6mttWFSr Content-Type: application/json {"submitters":["jsmith"],"clientIds":[],"matterIds":[],"engineIds":[],"resourcePoolIds":[]}

 

Example request to get the result with the set filter


Example response

3

Query all Clients.

Example request:

 

Example response:

 

B. Create Objects

1

Create a new Client.

Example request:

 

Example response:

2

Submit a Job.

 

 

Example request:

 

Example response:

 

C. Update Objects

1

Cancel a Job that did not start running.

Example request:

 

Example response:

2

Stop a Job that is running.

Example request:

 

Example response:

3

Update a Client.

Example request:

 

Example response: