Iron Mountain InSight Core Data Vault (CDV) APIs

Iron Mountain InSight Core Data Vault (CDV) APIs

Contents

Introduction

The Core Data Vault (CDV) APIs are used to define and query metadata fields as well as to upload, edit and export documents.   

The high level architecture diagram below shows the REST CDV APIs.  This API documentation provides instructions for an IRM partner or customer to access these APIs.

Access to an environment for testing the APIs requires approval to get the necessary security tokens.   Access by partners is only given to specific data when requested and agreed upon by an InSight customer.



The services below marked with * are  for Q1 2020 (not yet released).

Document & Attribute Values APIs

Service Name

API Contracts

Note

Permissions Required

Service Name

API Contracts

Note

Permissions Required

Create Asset Document & Attribute Values

POST /companies/{companyId}/documents

Request Body: AssetDocument

{ "documentTypeId":"00000000-0000-0000-0000-000000000001", "fileName":"test.pdf", "mlPipeline": "ml1", "barcode": "20011234567890", "attributeValues":[ { "name": "departmentId", "value": "2222" }, { "name": "divisionId", "value": "1111" }, { "name": "majorDescription", "value": "test 3" }, { "name": "count", "value": "20" } ] } Or remote storage for the document: { "documentTypeId":"00000000-0000-0000-0000-000000000001", "fileName":"test.pdf", "mlPipeline": "ml1", "barcode": "20011234567890", "remoteStorage":true, "connectorConfigId":"ca1885e4-4207-474e-8cdf-3eabd70cafe2", "externalDocumentId":"https://s3.amazonaws.com/bill-test-dit2/Insight/600163.pdf", "attributeValues":[ { "name": "departmentId", "value": "2222" }, { "name": "divisionId", "value": "1111" }, { "name": "majorDescription", "value": "test 3" }, { "name": "count", "value": "20" } ] }

Response: AssetDocument

{ "createdDate": "2018-07-30T17:49:10.042+00:00", "createdUserId": "gateway", "companyId": 2001, "documentGUID": "c29d43fe-06a4-400e-9166-eb15f865d3b5", "documentTypeId": "00000000-0000-0000-0000-000000000001", "size": 0, "state": "METADATA_UPLOADED", "fileName": "test.pdf", "fileStorageId": "00000000-0000-0000-0000-000000000001", "deleted": false, "lastAccessDate": "2018-07-30T17:49:10.042+00:00", "lastAccessUserId": "gateway", "mlPipeline": "ml1", "pageCount": 0, "barcode": "20011122334455", "attributeValues": [ { "attributeValueId": "39056acf-0810-4b7a-bb29-039aee57efbd", "type": "long", "value": "1111", "name": "departmentId" }, { "attributeValueId": "83d0d652-670a-4d92-afcf-cdc3d098b57b", "type": "long", "value": "1111", "name": "divisionId" }, { "attributeValueId": "7c6b05de-2258-4ce9-84e1-bd8f89bccab7", "type": "String", "value": "test 6", "name": "majorDescription" }, { "attributeValueId": "aa95ca28-8a2f-4b99-bd6d-23d32fd4aefb", "type": "long", "value": "1", "name": "count" } ], "remoteStorage": false, "imageURL": "https://storage.cloud.google.com/rmaas-us-dit1/company/2001/...", "imageDownloadURL": "https://storage.googleapis.com/rmaas-us-dit1/company/2001/...", "imageUploadURL": "https://storage.googleapis.com/rmaas-us-dit1/company/2001/...", "imageContentType": "application/pdf" }





  • Basic data fields documentTypeId and fileName are required. See below for the requirement of fileName.

  • Basic data fields mlPipeline, barcode, facility are optional.

  • name and value are required for each attributeValue.

  • Available documentTypeId is defined in rmaas_document_type table and attribute names are defined in rmaas_attribute table.

  • If the value is invalid for the attribute type defined for the attribute name, the API returns an exception. For a Date type, the value must be in the format of defined patterns.

  • fileName and size will be updated once the image file is uploaded via the Upload/Update an Image API.

  • The server can accept a documentGUID generated by the client

  • To enable the remote storage, please specify remoteStorage, connectorConfigId and externalDocumentId (as Global URL)

  • retentionCalculationStatus=null







  • An authenticated user with the following permissions:

    • assets.use

Update Asset Document & Attribute Values *

PUT /companies/{companyId}/documents/{documentGUID}

Request Body: AssetDocument

  1. Update basic data fields and attribute values in a Document

{ "state": "METADATA_UPLOADED", "fileName": "test.pdf", "mlPipeline": "ml1", "facility": "test", "barcode": "20011122334455", "attributeValues":[ { "name": "departmentId", "value": "2222" }, { "name": "divisionId", "value": "1111" }, { "name": "majorDescription", "value": "updated description" }, { "name": "count", "value": "1" } ] }
  1. Update basic fields only

{ "state": "METADATA_UPLOADED", "fileName": "test.pdf", "mlPipeline": "ml1", "facility": "test", "barcode": "20011122334455" }



Response: AssetDocument

{ "createdDate": "2018-07-30T17:49:10.042+00:00", "createdUserId": "gateway", "companyId": 2001, "documentGUID": "c29d43fe-06a4-400e-9166-eb15f865d3b5", "documentTypeId": "00000000-0000-0000-0000-000000000001", "size": 400, "state": "METADATA_UPLOADED", "facility": "test", "fileName": "test.pdf", "filePath": "/", "fileStorageId": "00000000-0000-0000-0000-000000000001", "deleted": false, "lastAccessDate": "2018-07-30T18:19:22.219+00:00", "lastAccessUserId": "gateway", "mlPipeline": "ml1", "pageCount": 1, "barcode": "20011122334455", "attributeValues": [ { "attributeValueId": "39056acf-0810-4b7a-bb29-039aee57efbd", "type": "long", "value": "2222", "name": "departmentId" }, { "attributeValueId": "83d0d652-670a-4d92-afcf-cdc3d098b57b", "type": "long", "value": "1111", "name": "divisionId" }, { "attributeValueId": "7c6b05de-2258-4ce9-84e1-bd8f89bccab7", "type": "String", "value": "updated description", "name": "majorDescription" }, { "attributeValueId": "aa95ca28-8a2f-4b99-bd6d-23d32fd4aefb", "type": "long", "value": "1", "name": "count" } ], "imageURL": "https://storage.cloud.google.com/rmaas-us-dit1/company/2001/...", "imageDownloadURL": "https://storage.googleapis.com/rmaas-us-dit1/company/2001/...", "imageUploadURL": "https://storage.googleapis.com/rmaas-us-dit1/company/2001/...", "imageContentType": "application/pdf" }



  • Basic data fields state, fileName are required. fileName can be either the old name or a new one, but it must be non-blank. See below for the requirement of fileName.

  • Basic data fields mlPipeline, barcode, facility are optional.

  • name and value are required for each attributeValue.

  • Available attribute names are defined in rmaas_attribute table.

  • If the value is invalid for the attribute type defined for the attribute name, the API returns an exception. For a Date type, the value must be in the format of defined patterns.

  • The image file will be moved to the new name fileName. If the file with fileName is present in GCS, it will be override.

  • The name of an attributeValue should be already defined in the document type linked to the document.

  • If the name of an attributeValue is the trigger attribute name of the document type's retention rule, the document's retentionCalculationStatus is reset to RECALCULATE so that the backend calculation task to start the calculation.



  • An authenticated user with the following permissions:

    • assets.use

Update a document Attribute Values Only *

PUT /companies/{companyId}/documents/{documentGUID}/attributes

Request Body: List<AssetAttributeValue>

[ { "documentTypeId": "00000000-0000-0000-0000-000000000001", "name": "departmentId", "value": "3333" }, { "documentTypeId": "00000000-0000-0000-0000-000000000001", "name": "divisionId", "value": "1111" }, { "documentTypeId": "00000000-0000-0000-0000-000000000001", "name": "majorDescription", "value": "updated description 2" }, { "documentTypeId": "00000000-0000-0000-0000-000000000001", "name": "count", "value": "1" } ]

Response: List<AssetAttributeValue>

{ "data": [ { "attributeValueId": "39056acf-0810-4b7a-bb29-039aee57efbd", "documentTypeId": "00000000-0000-0000-0000-000000000001", "type": "long", "value": "3333", "name": "departmentId" }, { "attributeValueId": "83d0d652-670a-4d92-afcf-cdc3d098b57b", "documentTypeId": "00000000-0000-0000-0000-000000000001", "type": "long", "value": "1111", "name": "divisionId" }, { "attributeValueId": "7c6b05de-2258-4ce9-84e1-bd8f89bccab7", "documentTypeId": "00000000-0000-0000-0000-000000000001", "type": "String", "value": "updated description 2", "name": "majorDescription" }, { "attributeValueId": "aa95ca28-8a2f-4b99-bd6d-23d32fd4aefb", "documentTypeId": "00000000-0000-0000-0000-000000000001", "type": "long", "value": "1", "name": "count" } ], "count": 4 }



  • This API updates the values for the attributes already defined in the document type with the documentTypeId.

  • documentTypeId, name and value are required.

  • documentTypeId should be the same for all attribute values, and it must be the same one linked to the document.

  • Available documentTypeId is defined in rmaas_document_type table and attribute names are defined in rmaas_attribute table. For each company, a document type "DEFAULT" is pre-created.

  • If the value is invalid for the attribute type defined for the attribute name, the API returns an exception. For a Date type, the value must be in the format of defined patterns.

  • If the name of an attributeValue is the trigger attribute name of the document type's retention rule, the document's retentionCalculationStatus is reset to RECALCULATE so that the backend calculation task to start the calculation.





  • An authenticated user with the following permissions:

    • assets.use

Update Asset Document State Only

PUT /companies/{companyId}/documents/{documentGUID}/fields/state/{state}

Request Examples:

companies/2001/documents/c29d43fe-06a4-400e-9166-eb15f865d3b5/fields/state/DOCUMENT_UPLOADED

companies/2001/documents/c29d43fe-06a4-400e-9166-eb15f865d3b5/fields/state/METADATA_UPLOADED

Response: AssetDocument

{ "createdDate": "2018-07-30T17:49:10.042+00:00", "createdUserId": "gateway", "companyId": 2001, "documentGUID": "c29d43fe-06a4-400e-9166-eb15f865d3b5", "documentTypeId": "00000000-0000-0000-0000-000000000001", "size": 400, "state": "METADATA_UPLOADED", "facility": "test", "fileName": "test.pdf", "filePath": "/", "fileStorageId": "00000000-0000-0000-0000-000000000001", "deleted": false, "lastAccessDate": "2018-07-30T18:19:22.219+00:00", "lastAccessUserId": "gateway", "mlPipeline": "ml1", "pageCount": 1, "barcode": "20011122334455", "attributeValues": [ { "attributeValueId": "39056acf-0810-4b7a-bb29-039aee57efbd", "type": "long", "value": "2222", "name": "departmentId" }, { "attributeValueId": "83d0d652-670a-4d92-afcf-cdc3d098b57b", "type": "long", "value": "1111", "name": "divisionId" }, { "attributeValueId": "7c6b05de-2258-4ce9-84e1-bd8f89bccab7", "type": "String", "value": "updated description", "name": "majorDescription" }, { "attributeValueId": "aa95ca28-8a2f-4b99-bd6d-23d32fd4aefb", "type": "long", "value": "1", "name": "count" } ], "imageURL": "https://storage.cloud.google.com/rmaas-us-dit1/company/2001/...", "imageDownloadURL": "https://storage.googleapis.com/rmaas-us-dit1/company/2001/...", "imageUploadURL": "https://storage.googleapis.com/rmaas-us-dit1/company/2001/...", "imageContentType": "application/pdf" }



This API updates the document state only. The new state is passed in the URL. Available states are

  • METADATA_UPLOADED

  • DOCUMENT_UPLOADED

  • PROCESSED

  • INDEXED

  • REPROCESS

  • An authenticated user with the following permissions:

    • assets.use

Get Asset Document *

GET /companies/{companyId}/documents/{documentGUID}

Response: AssetDocument

{ "createdDate": "2018-07-30T17:49:10.042+00:00", "createdUserId": "gateway", "companyId": 2001, "documentGUID": "c29d43fe-06a4-400e-9166-eb15f865d3b5", "documentTypeId": "00000000-0000-0000-0000-000000000001", "size": 400, "state": "METADATA_UPLOADED", "facility": "test", "fileName": "test.pdf", "filePath": "/", "fileStorageId": "00000000-0000-0000-0000-000000000001", "deleted": false, "lastAccessDate": "2018-07-30T18:19:22.219+00:00", "lastAccessUserId": "gateway", "mlPipeline": "ml1", "pageCount": 1, "barcode": "20011122334455", "attributeValues": [ { "attributeValueId": "39056acf-0810-4b7a-bb29-039aee57efbd", "type": "long", "value": "3333", "name": "departmentId" }, { "attributeValueId": "7c6b05de-2258-4ce9-84e1-bd8f89bccab7", "type": "String", "value": "updated description 3", "name": "majorDescription" }, { "attributeValueId": "83d0d652-670a-4d92-afcf-cdc3d098b57b", "type": "long", "value": "2222", "name": "divisionId" }, { "attributeValueId": "aa95ca28-8a2f-4b99-bd6d-23d32fd4aefb", "type": "long", "value": "1", "name": "count" } ], "imageURL": "https://storage.cloud.google.com/rmaas-us-dit1/company/2001/...", "imageDownloadURL": "https://storage.googleapis.com/rmaas-us-dit1/company/2001/...", "imageUploadURL": "https://storage.googleapis.com/rmaas-us-dit1/company/2001/...", "imageContentType": "application/pdf" }



  • The following data fields are also returned as attribute values if retention destruction eilibility date is calculated.

    • DestructionEligibilityDate

    • RetentionTriggerDate

    • Jurisdiction

    • RetentionRecordClass

    • RetentionPeriod

    • RetentionPeriodUnits

    • RetentionTriggerField



  • An authenticated user with the following permissions:

    • assets.view

Delete Asset Document

DELETE /companies/{companyId}/documents/{documentGUID}?

Query Parameter: permanent is optional (true or false), requestId is optional (any string). if permanent=true, the document and its related data will be deleted permanently immediately.

Response: 1

document and attribute values are deleted

  • An authenticated user with the following permissions:

    • assets.manage

Restore/Undo-Delete Asset Document

PATCH /companies/{companyId}/documents/{documentGUID}

Response: AssetDocument



  • An authenticated user with the following permissions:

    • assets.manage

Query All documents *

GET /companies/{companyId}/documents

Query Parameter: deletedOnly is optional. Only soft-deleted documents returned if deletedOnly=true

Support Query Pagination, Sorting and Filtering

  • If companyId=0, then apply to all companies

  • The following data fields are also returned as attribute values if retention destruction eilibility date is calculated.

    • DestructionEligibilityDate

    • RetentionTriggerDate

    • Jurisdiction

    • RetentionRecordClass

    • RetentionPeriod

    • RetentionPeriodUnits

    • RetentionTriggerField

  • An authenticated user with the following permissions:

    • assets.view

Get attribute value histories for a Document

GET /companies/{companyId}/documents/{documentGUID}/histories

Response: List<AssetAttributeValueHist>

{ "count": 34, "data": [ { "createdDate": "2018-08-23T22:20:37.879+00:00", "createdUserId": "demoUploaderNew", "attributeValueHistId": "e88b2094-c630-4a07-8aa0-165db88060bb", "attributeValueId": "c7a89135-e207-4d59-a02a-7a94e0ffd74c", "attributeValue": "TT-N", "attributeValueBefore": "TT", "companyId": 100, "attributeName": "alphaTo", "documentGUID": "975970c7-e013-4b45-9da0-64f172458659" }, ....... { "createdDate": "2018-08-23T22:20:11.887+00:00", "createdUserId": "demoUploaderNew", "attributeValueHistId": "b9c70b88-6732-4c72-9d5d-a913cf87fb37", "attributeValue": "975970c7-e013-4b45-9da0-64f172458659", "companyId": 100, "attributeName": "documentGUID", "documentGUID": "975970c7-e013-4b45-9da0-64f172458659" } ] }







Get attribute value histories for a company

GET /companies/{companyId}/documents/histories

Response: List<AssetAttributeValueHist>

{ "count": 64, "data": [ { "createdDate": "2018-08-23T22:20:37.879+00:00", "createdUserId": "demoUploaderNew", "attributeValueHistId": "e88b2094-c630-4a07-8aa0-165db88060bb", "attributeValueId": "c7a89135-e207-4d59-a02a-7a94e0ffd74c", "attributeValue": "TT-N", "attributeValueBefore": "TT", "companyId": 100, "attributeName": "alphaTo", "documentGUID": "975970c7-e013-4b45-9da0-64f172458659" }, { "createdDate": "2018-08-23T21:51:19.725+00:00", "createdUserId": "gateway", "attributeValueHistId": "d50dc2b8-9c71-48db-926e-807f57e1d583", "attributeValueId": "b7961749-6f33-4dc7-9b4e-d0f72c606bbd", "attributeValue": "description 3", "companyId": 100, "attributeName": "description3", "documentGUID": "b6562d18-61a6-46eb-8c12-e8f698223e22" }, { "createdDate": "2018-08-23T21:51:19.626+00:00", "createdUserId": "gateway", "attributeValueHistId": "1852470c-1be7-4b9b-9277-dd64f105e478", "attributeValueId": "d2d0459e-75ec-452c-86ef-efd29ddb582d", "attributeValue": "description 2", "companyId": 100, "attributeName": "description2", "documentGUID": "b6562d18-61a6-46eb-8c12-e8f698223e22" }, ...... { "createdDate": "2018-08-23T21:50:43.090+00:00", "createdUserId": "gateway", "attributeValueHistId": "2aaafbaa-08ec-4a05-bf05-802dab99e5d3", "attributeValue": "b6562d18-61a6-46eb-8c12-e8f698223e22", "companyId": 100, "attributeName": "documentGUID", "documentGUID": "b6562d18-61a6-46eb-8c12-e8f698223e22" } ] }







Download the media File for a document

GET /companies/{companyId}/documents/{documentGUID}/media

Response: A file content



  • An authenticated user with the following permissions:

    • assets.view

Update document metadata in Batch mode

PUT companies/{companyId}/documents?state=<30 or 40>

Request: See document_batch_metadata_esMetaData.json

Response:



{ "count": 3, "total": 3, "status": "PASSED", "data": { "companyId": 25274, "updatedDocumentIds": [ "0000c353-5340-4e85-ae28-529e5e5e28f9", "000119e8-9738-462d-9a87-c29c48565674", "003d5de4-892d-4f40-9d99-fe1ab7f6d3fe" ], "errorDocumentIds": [ ], "skipDocumentIds": [ ] } }



Internal Use only



Trigger A Destruction Process for Documents, their attribute values and image/support files

DELETE: /companies/{companyId}/documents?requestId=<request id>

Request Body: List<String> documentGUIDs, List<String> emailTos.

{ "documentGUIDs": [ "0000c353-5340-4e85-ae28-529e5e5e28f9", "003d5de4-892d-4f40-9d99-fe1ab7f6d3fe" ], "emailTos": [ "huabei.yin@ironmountain.com" ] }



Response: 1, process is started successfully; 0 otherwise.

  • requestId can be any free text currently. The validation rule is TBD.

  • documentGUIDs is required and should at least include one documentGUID.

  • emailTos is optional. If it includes an email address, the destruction report will be sent to it as an attachment.

  • Documents, their attribute values and image/support files will be deleted immediately.

  • An authenticated user with the following permissions:

  • assets.manage

Download the Destruction Report for a request

GET: /companies/{companyId}/documents/destructionReport

Request Param: emailTos (optional), requestId (optional), fromDate (optional) - ISO date format, toDate (optional) - ISO date format

Response: a csv file

  • requestId can be any free text currently. The validation rule is TBD.

  • 0 or multiple emailTos can be sent in the request, for example:

    emailTos=email1,email2,email3



Calculate the Retention Destruction Eligibility Date for a Document *

Internal Use Only

PATCH: /companies/{companyId}/documents/{documentGUID}/retention/calculation

Response: AssetDocument with retention attribute values

  • Calculation is started for a document with retentionCalculationStatus=RECALCULATE or it is null (null pointer, not "NULL" status).

  • An authenticated user with the following permissions:

  • assets.manage

Trigger a Task to Calculate the Retention Destruction Eligibility Date for all Documents of a Company *

Internal Use Only

PATCH: /companies/{companyId}/documents/retention/calculation

Response: 1, the task is started successfully; 0 otherwise.



  • An authenticated user with the following permissions:

    • assets.manage

Trigger a Task to Calculate the Retention Destruction Eligibility Date for all Documents of a Document Type *

Internal Use Only

PATCH: /companies/{companyId}/documentTypes/{docTypeId}/documents/retention/calculation

Response: 1, the task is started successfully; 0 otherwise.

  • docTypeId is a valid document type id

  • An authenticated user with the following permissions:

    • assets.manage

Trigger a Task to Reset the Retention Calculation Status for all Documents of a Company *

PATCH: /companies/{companyId}/documents/retention/status

Response: 1, the task is started successfully; 0 otherwise.



  • An authenticated user with the following permissions:

  • assets.manage

Trigger a Task to Reset the Retention Calculation Status for all Documents of a Document Type *

PATCH: /companies/{companyId}/documentTypes/{docTypeId}/documents/retention/status

Response: 1, the task is started successfully; 0 otherwise.

  • docTypeId is a valid document type id

  • An authenticated user with the following permissions:

  • assets.manage



Example image URLs:

"imageURL": "https://storage.cloud.google.com/rmaas-us-dit1/company/2001/c29d43fe-06a4-400e-9166-eb15f865d3b5/image/test.pdf", "imageDownloadURL": "https://storage.googleapis.com/rmaas-us-dit1/company/2001/c29d43fe-06a4-400e-9166-eb15f865d3b5/image/test.pdf?GoogleAccessId=ramaas-sa-data-level-dit-1@rmaas-dit-1.iam.gserviceaccount.com&Expires=1533059353&Signature=ClBvtz2iCqOMYO%2BcO0%2BWNm18j69WWbEz%2BD7KxfeesU%2BGJca6OoFL1LlzcNGqltsqInrc7GFj%2FvYwl2JX0ZNkPhV3lZlVzX5WhK%2Bx%2BaAe%2BXPHRl8POZqxqVPntVpF4YkvBAvzO5pxfP5Sq2dJB%2BMQn1lojVN0K16TjthKWGN6RQnGp9MZ7YdsVA5dJKtfqP5lO%2FSxqah2O4Iu1HXnXuecJg8pafBYuZ1tCKwvulL5Ojzvp0C1VAnZAFqIBpoRbLk611SFhrwERUykIFinQQILnmuiTUMT3uGn6nAOt%2BtWrCJl1sp0N8kNhXFLsafO9rB9J%2BHbjyLuvYxgT7qJF%2FPDQg%3D%3D", "imageUploadURL": "https://storage.googleapis.com/rmaas-us-dit1/company/2001/c29d43fe-06a4-400e-9166-eb15f865d3b5/image/test.pdf?GoogleAccessId=ramaas-sa-data-level-dit-1@rmaas-dit-1.iam.gserviceaccount.com&Expires=1533059353&Signature=OuFx%2BI81fOVHL%2BAPXh1P0tGnaIFhOTC4Eke3zj4WPv9Njsw8frI1F94MNz3fPWzzxHxeYM46wEQoxaqzJhFWszp9mIwvbwzcAoJ%2FMb0usu9KOfq1%2FLhtsHDQEL3OEhA5SgbHvImD0gym4oeKETcWM8k4gFMENw2pFYJ174%2FPeJwoyhph2VT9HY0MCLIURANF70SQvIOSCf9hqjyqrzL5vOdK1quD67raaRrNFS03JDAP3YBXl7YEAu9TZMcGMUwX30p4lMAhqgK7BbrAnxNdh7UIl6oSyEl1TWm2D4VoP0llOMZUFxkMhdSdz%2FTHnHfzveRe4mQkPwwUu9%2B7nyfDvA%3D%3D",


Document State Mappings

State Text in Request/Response

State Value

State Text in Request/Response

State Value

METADATA_UPLOADED

10

DOCUMENT_UPLOADED

20

PROCESSED

30

INDEXED

40

REPROCESS

50

Retention Calculation Status 

Retention Calculation Status



Retention Calculation Status



RECALCULATE

ready for calculation

CALCULATING

in the process of calculation

DONE

calculation is finished with RetentionErrorCode (see below table).

Retention Error Code

Retention error code



Retention error code



SUCCESS

Retention eligibility date is calculated successfully.

RETENTION_PERIOD_MISSING

There is no retention period.

RETENTION_PERIOD_UNIT_MISSING

There is no retention period unit. Usually it is years, months, days for PCS retention rules.

RETENTION_PERIOD_UNIT_INVALID

The retention period unit is not either of years, months, days.

DOCUMENT_TYPE_MISSING

There is no document type id for the document.

RULE_MISSING

There is no retention rule for the document type of the document.

RETENTION_TRIGGER_ATTRIBUTE_MISSING

There is no retention trigger attribute id (name) for the retention rule of the document type of the document.

RETENTION_TRIGGER_DATE_MISSING

There is no attribute value for the document for the retention trigger attribute.

RETENTION_TRIGGER_DATE_INVALID_TYPE

The attribute value is not a "Date" type.

RETENTION_TRIGGER_DATE_INVALID

The attribute value (string presentation) cannot be parsed as a Date.

NO_RETENTION_TYPE

The company is neither CUSTOMER nor PCS retention type.

EXCEPTION

Runtime exception(s) occur during the calculation.

Document Images / Files APIs

ES stands for ElasticSearch

Service Name

API Contracts

Note

Permissions Required

Service Name

API Contracts

Note

Permissions Required

Update ES metadata only

PUT /companies/{companyId}/documents/{documentGUID}/es

Request Body: text



  • An authenticated user with the following permissions:

    • assets.use

Get ES metadata

GET /companies/{companyId}/documents/{documentGUID}/es

Response : text



  • An authenticated user with the following permissions:

    • assets.view

Upload/Update an Image

POST /companies/{companyId}/documents/{documentGUID}/image

Request Body: multipart/form-data (file & fileName)

  • file and fileName (or filename) are required. The field fileName (or filename) is the name of the uploaded file in the GCS folder. It can be different from the name of the file. See below for the requirements of fileName and filename.

  • An authenticated user with the following permissions:

    • assets.use

Upload/Update an Image by resource

PUT /companies/{companyId}/documents/{documentGUID}/image

Request Body: ResourceUploadInfo

{ "resourceLocation": "gs://rmaas-dit2-us/company/...", "md5": null, "size": 0, "connectorType": "GCS", "connectorConfigId": "b6562d18-61a6-46eb-8c12-e8f698223e11" }



  • connectorType is required. It must be one of the connector types listed on the Connector Config APIs page.

  • resourceLocation is required.

  • An authenticated user with the following permissions:

    • assets.use

Download an Image

GET /companies/{companyId}/documents/{documentGUID}/image

Response: URL



  • An authenticated user with the following permissions:

    • assets.view

Upload/Update a Support File

POST /companies/{companyId}/documents/{documentGUID}/files

Request Body: multipart/form-data (file & fileName)

  • file and fileName (or filename) are required. The field fileName (or filename) is the name of the uploaded file in the GCS folder. It can be different from the name of the file. See below for the requirements of fileName and filename.

  • An authenticated user with the following permissions:

    • assets.use

Download a Support File

GET /companies/{companyId}/documents/{documentGUID}/files/{fileName}

Response: URL



  • An authenticated user with the following permissions:

    • assets.view

Delete a Support File

DELETE /companies/{companyId}/documents/{documentGUID}/files/{fileName}



  • An authenticated user with the following permissions:

    • assets.manage

Delete all of Support Files

DELETE /companies/{companyId}/documents/{documentGUID}/files



  • An authenticated user with the following permissions:

    • assets.manage

List all of Support Files

GET /companies/{companyId}/documents/{documentGUID}/files
Response: a list of support file names.



  • An authenticated user with the following permissions:

    • assets.view

Requirements for a file name

fileName and filename must be less than 950 characters. They can not contain the following characters. 

#, [, ], *, ?, Carriage Return (\r) Line Feed characters (\n) control characters that are illegal in XML 1.0 (#x7F–#x84 and #x86–#x9F)

 

Attributes / Metadata Fields APIs

Service Name

API Contracts

Note

Permissions Required

Service Name

API Contracts

Note

Permissions Required

Get metadata fields Data Type Mapping

GET /companies/{companyId}/attributes/dataTypes

Response : AssetMetadataTypeListResponse

{ "count":5, "total":5, "status":"PASSED", "data":[ { "type":"boolean", "searchIndexFields":[ "common.boolean" ], "companyId":25274 }, { "type":"String", "searchIndexFields":[ "common.String" ], "companyId":25274 }, { "type":"int", "searchIndexFields":[ "common.int" ], "companyId":25274 }, { "type":"long", "searchIndexFields":[ "common.long" ], "companyId":25274 }, { "type":"Date", "searchIndexFields":[ "common.Date" ], "companyId":25274 } ] }







Get Asset Attribute

GET /companies/{companyId}/attributes/{attributeId}

Request Body: None

Response : AssetAttribute

{ "createdDate": "2019-08-28T12:25:54.254-04:00", "createdUserId": "IRMUSER_SUPPORT", "attributeId": "137d8d38-d7e3-4195-9b68-127b992d6a7a", "type": "String", "name": "SingleAttribute", "displayable": true, "mandatory": false, "searchable": true, "encrypted": false, "companyId": 715224 }





An authenticated user with the following permissions:

  • classification_doc_types.manage

OR

  • classification_doc_types.view

Query Asset Attributes

GET /companies/{companyId}/attributes

Support Query Pagination, Sorting and Filtering



Response: List<AssetAttribute>

{ "count":4, "total":0, "status":"PASSED", "data":[ { "createdDate":"2019-03-07T10:24:07.007Z", "createdUserId":"gateway", "documentTypeId":"0b250d28-6750-4319-ac10-1c3215813c3f", "documentTypeIds":[ "0b250d28-6750-4319-ac10-1c3215813c3f" ], "attributeId":"016bbd04-07f1-4d6d-88c9-042913da4e96", "type":"String", "name":"attr1", "category":"Custom Metadata", "label":"attr1", "searchIndexField":"irm.attr1", "displayable":true, "mandatory":false, "searchable":true, "validationRegex":"null", "encrypted":false, "companyId":25274 }, { "createdDate":"2019-03-07T10:24:07.073Z", "createdUserId":"gateway", "documentTypeId":"0b250d28-6750-4319-ac10-1c3215813c3f", "documentTypeIds":[ "0b250d28-6750-4319-ac10-1c3215813c3f" ], "attributeId":"09693336-6dbb-4568-91e4-0c18c21992c4", "type":"long", "name":"attr3", "category":"Custom Metadata", "label":"attr3", "searchIndexField":"irm.attr3", "displayable":true, "mandatory":false, "searchable":true, "encrypted":false, "companyId":25274 }, { "createdDate":"2019-03-07T10:24:07.041Z", "createdUserId":"gateway", "documentTypeId":"0b250d28-6750-4319-ac10-1c3215813c3f", "documentTypeIds":[ "0b250d28-6750-4319-ac10-1c3215813c3f" ], "attributeId":"65d60b92-86e4-4857-bba3-422df48576d2", "type":"int", "name":"attr2", "category":"Custom Metadata", "label":"attr2", "searchIndexField":"irm.attr2", "displayable":true, "mandatory":true, "searchable":true, "encrypted":false, "companyId":25274 }, { "createdDate":"2019-03-07T10:24:07.105Z", "createdUserId":"gateway", "documentTypeId":"0b250d28-6750-4319-ac10-1c3215813c3f", "documentTypeIds":[ "0b250d28-6750-4319-ac10-1c3215813c3f" ], "attributeId":"9e2f2034-f262-4cef-b308-65012bb0eb5f", "type":"Date", "name":"attr4", "category":"Custom Metadata", "label":"attr4", "searchIndexField":"irm.attr4", "displayable":true, "mandatory":false, "searchable":true, "encrypted":false, "companyId":25274 } ] }



Find all attributes with documentTypeIds contains 9e2f2034-f262-4cef-b308-65012bb0eb5f companies/25274/attributes?filter=documentTypeIds:CONTAINS:0b250d28-6750-4319-ac10-1c3215813c3f Find all attributes with documentTypeIds contains 9e2f2034-f262-4cef-b308-65012bb0eb5f or 0e1052c3-f7e9-4670-b62b-e7262a56ec2a companies/25274/attributes?filter=documentTypeIds:CONTAINS_ANY:0b250d28-6750-4319-ac10-1c3215813c3f;0e1052c3-f7e9-4670-b62b-e7262a56ec2a"









Create Attribute

POST /companies/{companyId}/attributes

Request Body: List<AssetAttribute>

[ { "name": "SingleAttribute", "type": "String", "category": "Custom Metadata", "displayable": true, "mandatory": false, "searchable": true, "label": "Owners", "name": "SingleAttribute", "validationRegex": null } ]

Response: AssetAttribute

{ "createdDate": "2019-08-28T12:25:54.254-04:00", "createdUserId": "IRMUSER_SUPPORT", "attributeId": "137d8d38-d7e3-4195-9b68-127b992d6a7a", "type": "String", "name": "SingleAttribute", "displayable": true, "mandatory": false, "searchable": true, "encrypted": false, "companyId": 715224 }



  • name, type, displayable, mandatory, searchable, and encrypted are required for each attribute. validationRegex is optional.

  • For each attribute, type must be one of "String", "Date", "int", "long", and "boolean". For "String" type, "validationRegex" must follow Java regex Pattern definitions. For "Date" type, "validationRegex" must follow pattern definitions on Java SimpleDateFormat.

An authenticated user with the following permissions:

  • classification_doc_types.manage

Update Asset Attribute

PUT /companies/{companyId}/attributes/{attributeId}

Request Body: AssetAttribute

{ "displayable": true, "mandatory": false, "searchable": true, "validationRegex": null }

Response : AssetAttribute

{ "createdDate": "2019-08-28T12:25:54.254-04:00", "createdUserId": "IRMUSER_SUPPORT", "attributeId": "137d8d38-d7e3-4195-9b68-127b992d6a7a", "type": "String", "name": "SingleAttribute", "displayable": true, "mandatory": false, "searchable": true, "encrypted": false, "companyId": 715224 }





An authenticated user with the following permissions:

  • classification_doc_types.manage

Update Asset Attributes

PUT /companies/{companyId}/attributes

Request Body: List<AssetAttribute>

[ { "attributeId": "962ebde2-27e0-4cb8-a624-07081059660c", "displayable": true, "mandatory": false, "searchable": true, "validationRegex": null }, { "attributeId": "84a00e36-c4d9-437a-84f7-eef5d08bcacf", "displayable": true, "mandatory": false, "searchable": true, "validationRegex": null } ]

Response: AssetAttributeListResponse

{ "count": 2, "total": 0, "status": "PASSED", "data": [ { "createdDate": "2019-08-28T12:48:31.679-04:00", "createdUserId": "IRMUSER_SUPPORT", "attributeId": "1992d955-a78e-40c5-9735-44c45292456c", "type": "String", "name": "ListTest1", "displayable": true, "mandatory": false, "searchable": true, "encrypted": false, "companyId": 715224 }, { "createdDate": "2019-08-28T12:48:31.874-04:00", "createdUserId": "IRMUSER_SUPPORT", "attributeId": "960e84dd-2626-43ea-b7a2-0a40b6c9a81b", "type": "int", "name": "ListTest2", "displayable": true, "mandatory": false, "searchable": true, "encrypted": false, "companyId": 715224 } ] }





An authenticated user with the following permissions:

  • classification_doc_types.manage

Delete Asset Attribute

DELETE /companies/{companyId}/attributes/{attributeId}

Request Body: None

Response : ServiceResponse<Integer>

{ "count": 1, "total": 1, "status": "PASSED" }





An authenticated user with the following permissions:

  • classification_doc_types.manage

Delete Asset Attributes

DELETE /companies/{companyId}/attributes

Request Body: List<String> - a list of attributeId's

["962ebde2-27e0-4cb8-a624-07081059660c", "84a00e36-c4d9-437a-84f7-eef5d08bcacf"]

Response : ServiceResponse<Integer>

{ "count": 2, "total": 2, "status": "PASSED" }





An authenticated user with the following permissions:

  • classification_doc_types.manage

Assign/Unassign/Override an attribute Id to document type ids *

PUT /companies/{companyId}/attributes/{attributeId}/documentTypes?action=<ASSIGN,UNASSIGN or OVERRIDE>

Request Body: documentTypeIds

{ "documentTypeIds": [ "deb5a437-b4a1-4e7e-a288-3c0883d4d16a", "4874d344-d6f6-48a5-81b4-b492e9dcab9e" ] }

Response: AssetAttribute

  • documentTypeIds

    is not empty to assign/unassign to an attribute. But it can be empty array/list to override document type ids, in this case, the current document type ids will be totally cleared. Each item must be a valid company document type id.

  • A RmaasPreconditionException is returned if action=UNASSIGN and the attribute is the retention trigger attribute of the document type.

An authenticated user with the following permissions:

  • classification_doc_types.manage

© 2020 Iron Mountain Incorporated. All Rights Reserved.